前面我们完成了对寄存器点灯方法的操作,可见查手册是很麻烦的,所以我们这节来学习库函数。
1.APB2外设时钟函数void RCC_APB2PeriphClockCmd();
学习库函数我们可以右键点击选择"GO to Define..."
即可跳转到库函数的内容介绍@brief,重点查看库函数的参数@param内容填什么
下图可知我们要填的两个参数分别是RCC_APB2Periph_GPIOC,ENABLE
(即使能开启GPIOC的时钟)
然后调用库函数:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//开启时钟函数
2.接下来要初始化GPIO
我们要用到的库函数为
void GPIO_Init();
同样右键点击函数,然后选择“GO To Defnition to"GPIO_Init"”,这节会用到很多这样的右键点击函数名查找函数定义的操作,有的还要在函数定义的注释进一步用Ctrl+f键查找。多操作几遍就熟了
下面是跳转页面函数定义的内容,同样看看要填的参数有:GPIOX, &GPIO_InitStruct
调用函数:
GPIO_Init(GPIOC,&GPIO_InitStruct);//GPIO初始化
这里提示错误是因为GPIO_InitStruct是个结构体,我们还没有定义它,所以接下来我们要定义结构体,然后配置GPIO的三种模式;如下所示:
GPIO_InitTypeDef GPIO_InitStruct; //定义结构体类型 结构体名称
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP; //输出模式为通用推免输出
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_13; //配置管脚
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; //输出模式的最大速度
技巧1:在写完第一句代码后下句写GPIO_InitStruct加个小数点符号后就会出现提示框,点击就可以选择相应的类型。
技巧2:在写完类型后=等号后面的内容可以用右键点击跳转到函数定义页面的方法来直接拷贝复制,详细可看B站这个视频里的。
https://www.bilibili.com/video/BV1th411z7sn?p=6&share_source=copy_web
写好就这样:
3.接下来要用到GPIO电平输出函数
GPIO_SetBits(GPIOC,GPIO_Pin_13);//GPIO置高电平
GPIO_ResetBits(GPIOC,GPIO_Pin_13);//GPIO置低电平
这些函数里面的参数同样都可以通过右键点击函数名跳转到函数定义页面来查看
也可以查STM32的固件库函数手册。
4.完整工程如下
把上一章的寄存器点灯的代码也放在一起了