寄存器操作 8、stm32F103入门学习--点亮LED(向库函数操作迈进!)

有的型号引脚多,可以多达144! 。所以进一步优化程序 。思路:把跟引脚操作功能相关的函数专门放到“.h”和“.c”这两个函数里 。有点像模块化编程,大家可以参考视频 。
所以我们又要新建两个文件,放进文件夹即可 。
再添加到keil工程中,这边添加有个小技巧 。首先添加“.c”,方式跟添加“.h”一样,然后在“.c”编写如下程序 。
编译一下,发现左侧出现了“.h”文件!
现在就是开始要在这两个新添加的文件中写程序 。
我们对引脚的操作无非是控制输出、输入,输出的话控制输出高电平还是低电平 。以LED为例的话,我们控制输出高低电平 。那么可以将函数具体的实现方式在写“.c”文件中 。
首先看两个寄存器,第一个BSRR,这个寄存器上节看到过,没用过 。我们具体来看下,回顾下之前输出高低电平采用的是ODR寄存器,其实也可以采用BSRR 。BSRR可分为高16位和低16位,在低16位中如果某个位设置为1,相当于ODR操作1;如果设置某个位为0,则忽视!在高16位中,如果某个位设置为1,相当于ODR操作0;如果设置某个位为0,则忽视!
对于BRR寄存器操作类似!具体看下图 。
【寄存器操作8、stm32F103入门学习--点亮LED(向库函数操作迈进!)】先看一个函数:
void GPIO_SetBits(GPIO_typeDef *GPIOx,uint16_t GPIO_Pin){GPIOx->BSRR |= GPIO_Pin;}
这个函数需要填写两个参数,一个是GPIOx,一个是 。从名字看出一个是确定引脚所在的组,一个是确定第几个引脚 。以点亮我们的led为例PC13,则需要传进去的参数是GPIOC和(1