STM32 库函数 初学笔记
-
寄存器结构体定义
偏移量:4字节,因此用unsigned int声明结构体内每个元素。定义GPIOB为以GPIOB_BASE为基址的结构体指针。
-
编写库函数
编写库函数文件:
main函数中调用:
-
构建库函数雏形
参照下表:
main()中:
-
STM32固件库文件分析
-
GPIO_ReadOutputDataBit
函数解释:读取io输出管脚的值
参数: (1)GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。
(2) GPIO_Pin:指定具体的io脚,如GPIO_Pin_0,GPIO_Pin_1这样的宏定义。
返回值:输出管脚的值 Bit_SET(高电平),Bit_RESET(低电平)
-
GPIO_WriteBit(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin,BitActionBitVal)
函数解释:对某一位进行写入操作。
参数: (1)GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。
(2)GPIO_Pin:指定具体的io脚,如GPIO_Pin_0,GPIO_Pin_1这样的宏定义。
(3)BitVal:写入高电平或者低电平(Bit_RESET:写入低电平 Bit_SET:写入高电平)
-
(BitAction)
BitAction是将操作对象转换为位域的意思。
如果操作对象本身就是位变量,加不加没什么区别;可如果操作对象是8/16或32位的时候,则是有区别的。
IO翻转操作:
GPIO_WriteBit(GPIOB, GPIO_Pin_5, (BitAction)(1 - GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_5)));