历史上的今天
今天是:2024年09月05日(星期四)
2019年09月05日 | 判断STM32 GPIO输入口的输入状态(高电平或低电平)
2019-09-05 来源:eefocus
以PE2和PE4为例:
① 判断单个端口是否为高电平:
if(GPIOE->IDR& GPIO_IDR_IDR2)
{
函数体;
}
当PE2端口为高电平时,if条件为真;当PE2口为低电平时,if条件为假;
② 判断单个端口是否为低电平:
if((~GPIOE->IDR)& GPIO_IDR_IDR2)
{
函数体;
}
分析:首先通过 &GPIO_IDR_IDR屏蔽掉PE2之外的其他PE口。当PE2为高电平时,GPIO-〉IDR的bit2为‘1’,取反后为‘0’,因此条件为假;当PE2为低电平时,GPIO-〉IDR的bit2为‘0’,取反后为‘1’,因此条件为真;通过此方法可以同时判断PE2或PE4(甚至更多PE口)是否为低电平(如按键被按下)
③ 判断多个端口中是否有低电平:
if((~GPIOE->IDR)& (GPIO_IDR_IDR2 | GPIO_IDR_IDR4))
{
函数体;
}
分析:首先通过 & (GPIO_IDR_IDR2| GPIO_IDR_IDR4)屏蔽掉PE2和PE4之外的其他PE口。当PE2或(和)PE4中为低电平时,GPIO-〉IDR的bit2或(和)bit4为‘0’,取反后为‘1’,因此条件为真;
注:此方法并不是用来判断stm32 IO口状态的最好和最直接的方法,但对于理解位操作会有帮助。
史海拾趣
|
网上搜索,基本上讲的都是通过虚拟机VM进行调试,比如这篇借助VMware实现单机使用WinDbg 但是具体两台电脑使用串口连接之后,如何在host电脑上使用windbg调试Target电脑的驱动呢? 眼下参考借助VMware实现单机使用WinDbg 目标电脑我添加了debug ...… 查看全部问答> |
|
求助各位高手!关于EBOOT和OAL衔接问题!依然没搞定!急请paul_chao大侠帮忙看看!谢谢啦! 1、config.bib中我已经加了 ELSE ;IMGFLASH #define NKSTART 9CA80000(flash的虚拟起始地址(0x9ca00000)+ EBOOT_OFFSET(0x80000)) #define NKLEN &n ...… 查看全部问答> |
|
最近在网上下了一个USBSWITCH代码,修改了一下,要实现我调的一个USBFN的驱动STD和系统的驱动MASS_STORAGE在系统跑起来后进行动态切换,让主机电脑把板子识别成不同的设备。 因为USBSWITCH所实现的是RNDIS、MASS_STOR ...… 查看全部问答> |
|
display 驱动加载中 调用文件系统中的图片显示出来 就是在 display 驱动完成后 想 把 //system1//xxxx.bmp 图片掉出来并显示 有没有朋友做过 给点提示好吗 谢谢… 查看全部问答> |
|
出租车计费系统有顶层模块,速度模块,计程模块,计时模块,计费模块,用Quartus仿真时,为什么只能顶层模块课速度模块能有结果出来,到后面几个模块仿真时没有结果,而且像输入端口在仿真结果中没有了,郁闷,一直在纠结中~~~帮忙解答一下,如果要 ...… 查看全部问答> |
|
例如EMW3161的资料: http://www.joinmx.com/product.php?class_id=15&id=2 EMW3161是一种基于MX1081的超小型,超低功耗的嵌入式Wi-Fi模块。MX1081是一款超高集成度的Wi-Fi微控制器,集成了IEEE 802.11 M ...… 查看全部问答> |




