STM8函数GPIO_ReadInputPin(GPIOA, GPIO_PIN_0)的问题

更新时间:2024-05-29 01:34:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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以外的值

本文来源:https://www.bwwdw.com/article/qku7.html

Top