【求助】用库函数操作GPIO时,GPIO某个位的取反怎么做?
新手求助、用库函数操作GPIO,按键按下LED灯亮、再按下LED灯灭,如此反复,用库函数能实现吗?RE:【求助】用库函数操作GPIO时,GPIO某个位的取反怎么做?
能。可以直接对PIN引脚操作。详细情况参见:void GPIO_SetBits(GPIO_TypeDef* GPIOx, u16 GPIO_Pin);
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, u16 GPIO_Pin);
回复:【求助】用库函数操作GPIO时,GPIO某个位的取反怎么做?
回复第 2 楼 于2011-10-10 09:23:13发表:能。可以直接对PIN引脚操作。详细情况参见:
void GPIO_SetBits(GPIO_TypeDef* GPIOx, u16 GPIO_Pin);
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, u16 GPIO_Pi
GPIO_SetBits、GPIO_ResetBits 不能取反啊 因为我是要在每次按键按下后,灯由亮到灭或由灭到亮
RE:【求助】用库函数操作GPIO时,GPIO某个位的取反怎么做?
if(GPIO_ReadOutputDataBit(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) == Bit_SET)GPIO_ResetBits (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
else
GPIO_SetBits (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
RE:【求助】用库函数操作GPIO时,GPIO某个位的取反怎么做?
一般read GPIO的状态时要设置成input模式,,否则读出来的不一定准。所以最好是用一个变量记录GPIO的状态,根据次变量去改变状态。。回复:【求助】用库函数操作GPIO时,GPIO某个位的取反怎么做?
回复第 4 楼 于2011-10-11 03:47:10发表:if(GPIO_ReadOutputDataBit(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) == Bit_SET)
GPIO_ResetBits (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
else
GPIO_SetBits (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
这种方法不可以的、只在按键按下的时候会变化,那么按键松开就又还原了对吧。我要实现的是,按键每按一次,LED的状态变化一次
回复:【求助】用库函数操作GPIO时,GPIO某个位的取反怎么做?
回复第 5 楼 于2011-10-11 04:25:34发表:一般read GPIO的状态时要设置成input模式,,否则读出来的不一定准。所以最好是用一个变量记录GPIO的状态,根据次变量去改变状态。。
那是不是用库函数操作的时候,无法做到直接取反?
RE:【求助】用库函数操作GPIO时,GPIO某个位的取反怎么做?
可以,通过GPIO-BSRR,和BRR来控制。RE:【求助】用库函数操作GPIO时,GPIO某个位的取反怎么做?
最好是用变量记录LED的状态,然后再在按下时根据变量的值取反控制,。每次按键按下的时候去读LED的状态也可以,但不一定读的准。。 GPIO_ToggleBits(GPIOx, GPIO_Pin_x);
页:
[1]