使用固件库点亮LED灯
你好! 这是我第一篇博文,不足之处多多包涵。
一、什么是固件库
固件库是ST公司推出的,固件库是将最底层的驱动函数封装成库函数,在开发时可根据固件库手册了解库函数的作用。
二、开发步骤
1.引入库
要将库函数添加进工程文件
2.LED初始化
代码如下:
void LEDInit(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11 | GPIO_Pin_13 | GPIO_Pin_14 |GPIO_Pin_15 ;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOD, &GPIO_InitStructure);
LEDOff(0);
}
3.LED驱动代码
代码如下:
void LEDToggle(void)
{
if(GPIO_ReadOutputDataBit(GPIOD, GPIO_Pin_11)){
GPIO_ResetBits(GPIOD, GPIO_Pin_11);
}else{
GPIO_SetBits(GPIOD, GPIO_Pin_11);
}
if(GPIO_ReadOutputDataBit(GPIOD, GPIO_Pin_13)){
GPIO_ResetBits(GPIOD, GPIO_Pin_13);
}else{
GPIO_SetBits(GPIOD, GPIO_Pin_13);
}
if(GPIO_ReadOutputDataBit(GPIOD, GPIO_Pin_14)){
GPIO_ResetBits(GPIOD, GPIO_Pin_14);
}else{
GPIO_SetBits(GPIOD, GPIO_Pin_14);
}
if(GPIO_ReadOutputDataBit(GPIOD, GPIO_Pin_15)){
GPIO_ResetBits(GPIOD, GPIO_Pin_15);
}else{
GPIO_SetBits(GPIOD, GPIO_Pin_15);
}
}
2.main函数
main函数代码:
void DelayMs(unsigned long n)
{
unsigned long i = 0;
while(n--)
{
i=8000;
while(i--);
}
}
int main(void)
{
LEDInit();
while(1)
{
LEDToggle();
DelayMs(1000);
}
}
总结
对于刚入门STM32的同学来说,库函数开发有点懵懵懂懂,其实认真看固件库手册,把固件库的大概框架了解一下,固件库大概就分初始化函数和功能函数。
|