初始化
点亮LED需要首先初始化。这块STM32F4开发板的LED共有4个,都是链接到GPIO上的。具体原理图如下:
可以看到四个端口位置。再由芯片相关图纸可以查阅到LED0和LED1连接到了PF9和PF10
2和3链接到了PE13和PE14。
接着初始化。
STM对于GPIO的初始化提供了一套可以直接使用的初始化结构体。
使用前首先需要打开时钟:
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//使能 GPIOF 时钟
其中RCC_AHB1Periph_GPIOF的意思是AHB1上的GPIOF时钟。如果一行代码使能E和F时钟则如下所示:
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE | RCC_AHB1Periph_GPIOF, ENABLE);//使能GPIOE,GPIOF时钟
定义结构体,然后对于结构体内的各个数据进行定义,最后调用初始化函数,使所有设置生效。这样初始化就完成了
其中第一行中的_9和_10指的是后缀,也就是本组内所有以9和10结尾的IO口都会受影响。第7行中的GPIOF指的是第F组。也就是说,F组中的9,10口参数将被如上所示设置。至于怎么知道是第F或者第E组?我们可以查看pin口标号。PF9和PF10的意思就是GPIO第F组第9个pin和第10个pin。同理PE13和14也是类似的
使用GPIO点亮LED
初始化完成后,想要点亮只需使用GPIO_SetBits函数和GPIO_ResetBits函数即可。前者将指定GPIO口设为低电平,后者设为高电平。使用如下:
GPIO_SetBits(GPIOF,GPIO_Pin_10);
GPIO_ResetBits(GPIOE,GPIO_Pin_14);