STC15系列单片机是一种高性能、低功耗的单片机,被广泛应用于各种嵌入式设备中。在STC15的开发中,我们可以选择不同的库函数来进行开发,以达到不同的开发目标。目前主要有以下几种库函数:
1、标准库函数:
标准库函数是STC15默认提供的库函数,包括大部分C语言标准库函数,如stdio.h,math.h等。使用标准库函数可以方便的进行一些常规的数据处理和数据输出,但是功能相对简单,对于一些高级功能不支持或支持不完全。
2、STC官方库函数:
STC官方库函数是STC15官方提供的库函数,提供了更加丰富的功能和接口。STC官方库函数在标准库函数的基础上,增加了对STC15系列单片机独有的一些特性的支持。同时,STC官方库函数的兼容性更好,不同型号的STC15系列单片机都可以使用。
3、第三方库函数:
第三方库函数是由第三方开发者开发并提供的库函数。第三方库函数提供的功能丰富,支持的接口更加灵活,是一些特定应用场景下的不二选择。但是,由于第三方库函数的开发者不是STC官方,所以在兼容性和稳定性方面需要开发者自己进行评估。
使用标准库函数非常简单,只需要将相应的头文件包含到代码中即可。下面以输出数字为例进行说明:
#include <stdio.h>
void main(void){
int num = 1234;
printf("num=%d",num);
}
运行结果为:num=1234
STC官方库函数提供了更加丰富的功能和接口,下面以定时器为例进行说明:
#include "stc15.h"
void timer0_init(void){
TMOD &= 0xF0;
TMOD |= 0x01;
TH0 = 0xB1;
TL0 = 0xE0;
ET0 = 1;
EA = 1;
TR0 = 1;
}
以上代码实现了一个定时器,并在中断函数中输出一句话:
void timer0_isr(void) interrupt 1 using 1{
printf("hello world");
}
在主函数中,调用timer0_init()函数即可开启定时器,并在定时器周期中输出hello world。
在使用第三方库函数之前,需要先将库文件添加到工程中。以添加U8glib国内版库为例,先下载库文件,然后在keil的workspace视图中右键点击项目文件夹,选择add Existing Files to Group并选择下载好的库文件即可。
添加好库文件之后,就可以在代码中调用库函数了。以U8glib为例,在代码中引用库文件并完成一个简单的输出:
#include "u8g.h"
u8g_t u8g;
void oled_init(void){
u8g_Init(&u8g,&u8g_dev_ssd1306_128x64_i2c,u8g_i2c_opt_fast);
u8g_FirstPage(&u8g);
do{
u8g_SetFont(&u8g,u8g_font_unifont);
u8g_DrawStr(&u8g,0,20,"Hello World!");
}while(u8g_NextPage(&u8g));
}
以上代码使用U8glib库函数实现了通过OLED显示屏显示"Hello World!"的功能。