历史上的今天
今天是:2025年02月08日(星期六)
2020年02月08日 | STM8S库文件判断指定IO输入引脚电平GPIO_ReadInputPin有问题
2020-02-08 来源:eefocus
/**
* @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);
}
上一篇:STM8 GPIO输入输出模式
史海拾趣
|
现在手机中的射频信号通道越来越拥挤。蜂窝电话已经从双频向三频甚至四频快速发展。这些复杂手机还需要处理来自外围无线设备的各种信号,如蓝牙、Wi-Fi和GPS。而随着WiMAX和LTE(4G)的加入,这种复杂度将越来越高。在移动电话中,天线开关控制着天线 ...… 查看全部问答> |
|
我用这个方法,但是好像获取的大小有问题,不知道这个方法是不是正确的方法,还没有更好的办法? DDCAPS ddcaps; ddcaps.dwSize = sizeof DDCAPS; lpdd ...… 查看全部问答> |
|
大型ARM+linux+android嵌入式技术专题公益讲座 华清远见武汉华嵌中心将于2010年4月24日下午1:00-5:00在武汉大学联手ARM中国公司,开展“基于ARM平台的嵌入式系统设计专题讲座”。 详情请点击: http://www.embedhq.org/html/mianfei/2010/0408/382.html… 查看全部问答> |
|
LPCWSTR strDrvName=L\"\"; strDrvName=TEXT(\"NDS0:\"); HANDLE hHandle; hHandle ...… 查看全部问答> |
|
请问有人做过误码仪吗?最近在做一个误码仪,有个问题卡在那边,问题是要我产生误码,之后就是让我检测误码,码型为NRZ,RZ,AMI,HDB3码,关于NRZ,RZ码我就不知道了,这种码还能判断误码?… 查看全部问答> |
|
128M扩到512M,我用的是uboot+NK.nb0,uboot已经改好ram初始化部分,没有开mmu,在uboot下测试512内存读写正常,wince改了config.bib中ram大小,oemtable也改了内存映射,但是现在内核跑到oeminit跑完就死了,不好调试。试着用oemgetextensiondram( ...… 查看全部问答> |
|
渥瑞达“3G移动开发”免费试听课于北京交通大学举行,欢迎大家光临! 渥瑞达“3G移动开发”免费试听课于北京交通大学举行,欢迎大家光临! 渥瑞达“3G移动开发”免费试听课于北京交通大学举行,欢迎大家光临! 详情请参见 www.neworigin.net 同时欢迎大家与我们的609期学员交流!这期学员已与2月11日毕业 ...… 查看全部问答> |
|
【连载】【ALIENTEK MiniSTM32 开发板】STM32不完全手册-内部温度传感器实验(14) 开发板购买地址:http://shop62103354.taobao.com [ 本帖最后由 正点原子 于 2010-9-7 09:45 编辑 ]… 查看全部问答> |
|
今天在看书时发现一点疑惑,问题大致是这样的: 一个电路网络,要对其中一个2输入与门的输出(定义为tmp吧,其实此处并不存在端口或变量)进行一些赋值操作,。在Verilog编程中按说是应该把其定义为wire型变量,可是今天看的一个例子却定义成了reg ...… 查看全部问答> |




