STM32 学习笔记之(一)点亮一颗 LED 灯
一、初始化IO口
初始化IO口,就是使能时钟总线,设置好IO口的 具体的pin脚、输入输出、具体的模式、具体的速度等等
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//使能GPIOF的时钟
//GPIOF9,F10 IO口配置
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;//具体pin脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//输入输出
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//具体模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//频率
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//模式
GPIO_Init(GPIOF, &GPIO_InitStructure);//导入参数
GPIO_SetBits(GPIOF,GPIO_Pin_9|GPIO_Pin_10);
//确定GPIOF9,F10初始状态
二、编辑main函数
调用自己编写的LED灯的接口,先初始化,然后让两颗LED交替闪烁
int main(void)
{
delay_init(168); //初始化延时函数
LED_Init(); //初始化 LED 端口
while(1)
{
GPIO_ResetBits(GPIOA,GPIO_Pin_1);
GPIO_SetBits(GPIOA,GPIO_Pin_2);
delay_ms(500); //延时 500ms
GPIO_ResetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2);
delay_ms(500); //延时 500ms
GPIO_SetBits(GPIOA,GPIO_Pin_1);
GPIO_ResetBits(GPIOA,GPIO_Pin_2);
delay_ms(500); //延时 500ms
GPIO_ResetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2);
delay_ms(500); //延时 500ms
}
}
三、烧录程序
Jlink烧录,只要设置没问题就可以了。
感悟
这是我写的第一个程序,完全是仿照着例程写的,突然好迷茫!不懂得这么做的意义在哪里,不懂得为什么这么写,不懂得具体的格式规范,只是改例程的话,万一有一天没有例程了怎么办?
好吧,可能是我刚刚开始学习,道行太浅吧!且学且看吧!