步骤
想要写出一个完整的可以运行的程序可以分成三步。
1.配置时钟;
2.配置端口模式;
3.设置端口的高低点平来点灯;
下面来详细说明每个步骤。
在配置时钟前必须先在代码开头包含头文件,头文件为#include"STM32f10x.h"以1系列32芯片为例。然后再是主函数,文件的执行都是从主函数int main(void)开始执行的。
第一步,配置时钟:
首先,输入RCC_APB2PeriphClockCmd(,然后右键点击 go to definition of RCC_APB2PeriphClockCmd就会跳转到GPIO_Init的定义,如下图所示
可以看到RCC_APB2PeriphClockCmd有两个参数,第一个是从这7个里面选一个,以点亮小灯用pc13端口为例,选择RCC_APB2Periph_GPIOC,然后复制RCC_APB2Periph_GPIOC回到主函数粘贴,第二个参数是一个规定的状态在ENABLE和DISABLE中选择,我们选择ENABLE就可以了。
第二步,配置端口模式
首先,输入GPIO_Init(,然后右键点击 go to definition of GPIO_Init就会跳转到GPIO_Init的定义,如下图所示
可以看到GPIO_Init有两个参量(param),第一个是GPIOx,x在A到G中选一个,这个根据端口选择,以小灯点亮端口pc13为例,应该选GPIOC,第二个参数是指向GPIO_InitTypeDef结构体的指针,该结构体包含指定GPIO外设的配置信息,在这一步中我们首先要在GPIO_Init前定义一个GPIO_InitTypeDef类型的指针,定义方式为GPIO_InitTypeDef GPIO_Initstructure,其中GPIO_Initstructure为名字,就像c语言中的int a中的a。
然后再复制这个名字再在后面加上“.",如下图所示,这三个模式,引脚和速度都要依次选择。
然后再加上等号,给他们赋值,如下图所示
接下来又是 go to definition of GPIO_Mode,可以看到如下图所示
选中GPIOMode_TypeDef,点击CTRL+f进行查找,就会到如下图的一个枚举里
选择GPIO_Mode_Out_PP进行复制然后粘贴到主函数的GPIO_Mode=后面,以此类推下面的pin和speed 分别选择GPIO_Pin_13和GPIO_Speed_50MHz,需要说明的是pin的选择太多还需额外在左下角窗口选择remember那一栏即可(如下图所示)。
配置完这三个后,我们需要复制GPIO_Initstructure,回到GPIO_Init(GPIOC,加上&符号粘贴,结果为GPIO_Init(GPIOC,&GPIO_Initstructure);这样第二步就配置完了。
第三步,设置端口的高低点平来点灯
这一步很简单,我们输入GPIO_SetBits(,再 go to definition of GPIO_SetBits跳转到他的定义,来选择两个参数,GPIO_SetBits(GPIOC, GPIO_Pin_13);这是设置输出为高电平,输出为低电平则是GPIO_ResetBits (GPIOC ,GPIO_Pin_13);选择你想要输出的高低电平来点亮小灯。
最后加一个while(1)死循环,小灯就能亮或灭。
整体代码如下所示: