历史上的今天
今天是:2024年11月23日(星期六)
2018年11月23日 | 单片机STM32的几种输入模式以及外部中断的配置
2018-11-23 来源:eefocus
最近做毕业设计,需要用按键来触发外部中断。实验的时候是正常的,但是换了个核心板以及用上自己做的PCB电路板后,出现了一些问题。问题如下:
要求:将连接按键的IO口配置为上拉输入,按键一端接IO口,一端接地,即当按键按下后,该IO口会产生一个下降沿,触发下降沿中断。
问题:将相应的IO口配置好后,测了引脚的的电压,并不是3.3V左右,而是0.1V左右。于是猜想:
1. 外围电路对IO口产生了影响。
2. STM32内部上拉能力较弱,一次只能上拉一个IO口。
于是开始从这两个想法着手解决。首先第一个,很容易就排除了。将外围电路撤掉,我用的是杜邦线,直接拔掉测量引脚上的电压,依然是0.1V左右,于是第1个猜想排除。
第二个,查看万能的参考手册,发现每一个IO口都是有独立的驱动电路,这样第2个也排除了。
最后各种纠结,然后发现:在主函数的开头部分初始化的时候,我把初始化的那个函数给注释掉了。低级错误,见笑了。
现在总结一下:
STM32的输入有4种输入模式:
模拟输入 GPIO_AIN
用于AD转换
浮空输入 GPIO_IN_FLOATING
引脚处于浮空模式,电平状态是不确定的。外部信号输入什么,IO口就是什么状态。
上拉输入 GPIO_IPU
防止IO口出现不确定的状态,比如,当IO口悬空时,就会通过内部的上拉电阻将该点钳位在高电平。
下拉输入 GPIO_IPD
功能与上拉电阻类似,防止IO口出现不确定的状态,比如,当IO口悬空时,就会通过内部的下拉电阻将该点钳位在低电平。
STM32中空的I/O管脚是高电平还是低电平取决于具体情况。
1、IO端口复位后处于浮空状态,也就是其电平状态由外围电路决定。
2、STM32上电复位瞬间I/O口的电平状态默认是浮空输入,因此是高阻。做到低功耗。
3、STM32的IO管脚配置口默认为浮空输入,把选择权留给用户,这是一个很大的优势:一方面浮空输入确保不会出现用户不希望的默认电平(此时电平取决于用户的外围电路);另一方面降低了功耗,因为不管是上拉还是下拉都会有电流消耗。从另一个角度来看,不管I/O管脚的默认配置如何,还是需要在输出的管脚外加上拉或下拉,这是为了保证芯片上电期间和复位时输出的管脚始终处于已知的电平。
4、在没有任何操作的情况下,STM32通用推挽输出模式的引脚默认低电平,也就是有电的状态。所以在配置的时候通常会先把引脚的电平设置拉高,让电路不产生电流。有电到没电这一过程也就是引脚电平从低到高的过程。
5、STM32的I/O管脚有两种:TTL和CMOS,所有管脚都兼容TTL和CMOS电平。也就是说从输入识别电压上看,所有管脚不管是TTL管脚还是CMOS管脚都可以识别TTL或CMOS电平。
史海拾趣
|
protel dxp中为什么没有intel的元件,到那可以下载到啊,谁能告诉我一下。 另外,在99se中有元件库Intel Databooks.ddb,怎么把他导入dxp中使用。… 查看全部问答> |
|
创意无限,只要你肯去做,水杯穿洞有点难度,需要家里电动工具齐全点就可以做,这个因该是最好看得一个,剩下的就比较简单,电子表的包装盒做大功率led外壳,散热真不错呢,至于汽车空气净化器不知大家见过没,像一个滚筒的芯,里面是纸地,外面是 ...… 查看全部问答> |
|
昨天看了一下电路图,发现内存(SDRAM)和2440接口有点不可思议(后来发现ATmel的ARM也是这么接的),后来仔细对比。 发现问题在LDQM,UDQM这两个引脚,他们接到2440的四个nWBE引脚。内存资料是这么说的:Data Input/Output Mask Controls output ...… 查看全部问答> |
|
公司现在高薪诚聘bss基站高级软件开发工程师(精通C++,两年以上C++研发经验,英语流利)! 工作地点:北京望京(爱立信总部) 可直接向我资讯 &nbs ...… 查看全部问答> |
|
请教PC主板关于BIOS的启动顺序??及如何在主板启动时屏蔽BIOS启动信息??? 请教PC主板关于BIOS的启动顺序??及如何在主板启动时屏蔽BIOS启动信息??? 本人现用PC104主板写DOS软件,但是主板启动后有自检信息,但是领导要求在主板启动时,不要显示主板自检信息,取代以LOGO,请个位多多赐教!!! ...… 查看全部问答> |
|
[color]第一步 打开一个ISE工程,随便哪一个有HDL组成的都可以,我打开的如下:第二步 进行综合,修改自己的错误。综合成功。 第三步,在区域2中点击区域3的选项运行,一定不要选择区域3上面的那个选项,出现如下界面:在 ...… 查看全部问答> |
|
vcredist_x86.exe 每次我一安装都出现这个提示,请问这是怎么回事,该怎么解决?谢谢 vcredist_x86.exe 每次我一安装都出现这个提示,请问这是怎么回事,该怎么解决?谢谢 无法访问 Windows Installer 服务 Windows Installer 没有正确安装时可能发生这种情况。 请与技术支持人员联系以获得帮助。… 查看全部问答> |
|
求教一个问题,我在写彩屏液晶的程序的时候,有16为驱动的程序有8位驱动的程序。有时候都能用,但有时候会就不能用,求分析哈。 TFT彩屏IC:9320 or 9325 接口声明: #define DATAOUT(x) GPIOB->ODR=x; //数据输出 #define DATAOUTH(x) GPIOB-> ...… 查看全部问答> |




