STM32 GPIO 库函数:GPIO_SetBits、GPIO_ResetBits、GPIO_WriteBit 和 GPIO_Write 的区别

问题:当我使用STM32库函数对 I/O 口进行赋值时,在头文件中发现有四个相关的函数可以做这个操作,那么它们有什么区别呢?

一、GPIO_SetBits

GPIO_SetBits

//eg:
GPIO_SetBits(GPIOA, GPIO_Pin_1 | GPIO_Pin_2);

解释:置位(置1)选择的数据端口位,可以选同端口多位

二、GPIO_ResetBits

GPIO_ResetBits

//eg:
GPIO_ResetBits(GPIOA, GPIO_Pin_1 | GPIO_Pin_2);

解释:复位(置0)选择的数据端口位,可以选同端口多位

三、GPIO_WriteBit

GPIO_WriteBit

//eg:
GPIO_WriteBit(GPIOA, GPIO_Pin_1 | GPIO_Pin_2, BIT_SET);

解释:对端口位进行写操作,支持BIT_SET/BIT_RESET,写1或写0,可以选同端口多位

四、GPIO_Write

GPIO_Write

//eg:
GPIO_Write(GPIOA, 0XFFFF);

解释:对整个端口直接进行写操作,0XFFFF代表16位全部写入1

五、总结:

函数 说明
GPIO_SetBits 对 IO进行置位操作,也就是将IO口拉高为1
GPIO_ResetBits 对 IO进行复位操作,也就是将IO口拉低为0
GPIO_WriteBit 对 IO进行写操作,仅可以自定义设置写0或写1,都0或都1
GPIO_Write 对整个IO端口进行写操作,0xFFFF 对应 0-15 PIN全部置为1;0x0000全部置为0
物联沃分享整理
物联沃-IOTWORD物联网 » STM32 GPIO 库函数:GPIO_SetBits、GPIO_ResetBits、GPIO_WriteBit 和 GPIO_Write 的区别

发表评论