STM8函数GPIO_ReadInputPin(GPIOA, GPIO_PIN_0)的问题,在使用时,会出现这样的问题: 如果定义 uchar i=0; i=GPIO_ReadInputPin(GPIOA, GPIO_PIN_0);在该位为低电平时,会得到 0 ,而在为高电平时,会收到0和1以外的数据。 解析如下:
GPIO_ReadInputPin(GPIOA, GPIO_PIN_0)的原型是
BitStatus GPIO_ReadInputPin(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin) {
return ((BitStatus)(GPIOx->IDR & (vu8)GPIO_Pin)); }
而BitStatus的原型是: typedef enum { RESET = 0, SET = !RESET }
在使用时尽量不如下使用:
if(GPIO_ReadInputPin(GPIOA, GPIO_PIN_0)==1) 尽量这样使用:
if(GPIO_ReadInputPin(GPIOA, GPIO_PIN_0) !=RESET) 这样,能防止读到0和1以外的值
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库STM8函数GPIO_ReadInputPin(GPIOA, GPIO_PIN_0)的问题在线全文阅读。
相关推荐: