STM8库文件判断指定IO输入引脚电平GPIO_ReadInputPin有问题
2017-06-07 10:55
281 查看
声明:本文转载自http://blog.csdn.net/lan120576664/article/details/24203639
/**
* @brief Reads the specified GPIO input data pin.
* @param GPIOx : Select the GPIO peripheral number (x = A to I).
* @param GPIO_Pin : Specifies the pin number.
* @retval BitStatus : GPIO input pin status.
*/
BitStatus GPIO_ReadInputPin(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin)
{
return ((BitStatus)(GPIOx->IDR & (uint8_t)GPIO_Pin));
}
以上是ST文件读取指定IO口电平原型。
如果你使用类似
if(GPIO_ReadInputPin(GPIO_ReadInputPin(GPIOC,GPIO_PIN_7) == SET)
{
.....
}
这样的判断代码,你会发现永远的不到你想要的。
原因是BitStatus是个enum类型,其实而enum从某个层面上说它是与int类型相似。
所以你用
BitStatus test = GPIO_ReadInputPin(GPIO_ReadInputPin(GPIOC,GPIO_PIN_7) ;
你会发现,test值是个8位的数,而非类似BOOL的0或1.
所以你可以考虑将代码修改为
BitStatus GPIO_ReadInputPin(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin)
{
return ((GPIOx->IDR & (uint8_t)GPIO_Pin) ? SET : RESET);
}
/**
* @brief Reads the specified GPIO input data pin.
* @param GPIOx : Select the GPIO peripheral number (x = A to I).
* @param GPIO_Pin : Specifies the pin number.
* @retval BitStatus : GPIO input pin status.
*/
BitStatus GPIO_ReadInputPin(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin)
{
return ((BitStatus)(GPIOx->IDR & (uint8_t)GPIO_Pin));
}
以上是ST文件读取指定IO口电平原型。
如果你使用类似
if(GPIO_ReadInputPin(GPIO_ReadInputPin(GPIOC,GPIO_PIN_7) == SET)
{
.....
}
这样的判断代码,你会发现永远的不到你想要的。
原因是BitStatus是个enum类型,其实而enum从某个层面上说它是与int类型相似。
所以你用
BitStatus test = GPIO_ReadInputPin(GPIO_ReadInputPin(GPIOC,GPIO_PIN_7) ;
你会发现,test值是个8位的数,而非类似BOOL的0或1.
所以你可以考虑将代码修改为
BitStatus GPIO_ReadInputPin(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin)
{
return ((GPIOx->IDR & (uint8_t)GPIO_Pin) ? SET : RESET);
}
相关文章推荐
- STM8S库文件判断指定IO输入引脚电平GPIO_ReadInputPin有问题
- 判断STM32 GPIO输入口的输入状态(高电平或低电平)
- STM8L15x系列单片机判断指定I/O引脚电平
- 关于html选择文件(input指定类型js判断)
- 检测input每次的输入是否合法遇到汉字输入就有问题,如何判断汉字是否已经输入到input内???
- [原创]MSP430FR4133练习(一):GPIO输入电平状态判断
- 黑马程序员高级学习视频IO输入输出流 将一个指定目录下的java文件的绝对路径,存储到一个文本文件中
- [原创]MSP430FR4133练习(一):GPIO输入电平状态判断
- STM32中GPIO_ReadOutputDataBit及GPIO_ReadInputDataBit区别;上拉输入_IPU,下拉输入_IPD,模拟输入_AIN ;开漏输出_Out_OD, 推挽输出_O
- Perl将文件前N行或后N行输入到指定文件中
- .C# 拷贝一个图片到指定文件夹下(IO文件操作实例)
- Inputstream读取文件,使用read()方法,判断尾标记需要注意的问题
- <input type="file" />浏览时只显示指定文件类型
- 输入一个文件路径判断是否存在,并统计文件的行数(不用wc命令统计)
- labview下关于文件输入输出io口的操作
- asp.net 判断指定路径指定文件夹下是否有图片文件存在
- 用VBA判断指定的文件夹或文件是否存在
- 交互式让用户输入一个文件路径,判断文件是否存在,若存在判断文件类型,若文件是普通文件,不能使用wc。
- io例子---实例116 显示文件的基本信息 , 实例117 显示目录的基本信息,实例118 在指定的目录下创建单个文件
- <input type="file" >判断上传的文件是zip和rar类型