STM32 GPIO 库函数:GPIO_SetBits、GPIO_ResetBits、GPIO_WriteBit 和 GPIO_Write 的区别
问题:当我使用STM32库函数对 I/O 口进行赋值时,在头文件中发现有四个相关的函数可以做这个操作,那么它们有什么区别呢?
一、GPIO_SetBits
//eg:
GPIO_SetBits(GPIOA, GPIO_Pin_1 | GPIO_Pin_2);
解释:置位(置1)选择的数据端口位,可以选同端口多位
二、GPIO_ResetBits
//eg:
GPIO_ResetBits(GPIOA, GPIO_Pin_1 | GPIO_Pin_2);
解释:复位(置0)选择的数据端口位,可以选同端口多位
三、GPIO_WriteBit
//eg:
GPIO_WriteBit(GPIOA, GPIO_Pin_1 | GPIO_Pin_2, BIT_SET);
解释:对端口位进行写操作,支持BIT_SET/BIT_RESET,写1或写0,可以选同端口多位
四、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 |