背景
stm32g071的pd0,pd2作为外部中断使用,外部接10k上拉电阻拉到3.3v。外部设备被触发后电平变为低电平,平常保持高电平信号。
问题
在以上背景下,按道理外部设备正常时(未触发中断),io口输入电平应该是3.3v。但是实际上测量到的却是0.9v,这跟触发后的0v,同样会被单片机识别为低电平,故无法产生电平跳变而触发中断。
分析解决
查阅stm32g0数据手册可知:
这个引脚的电平类型为ft_c,我们知道ft是容忍5v的意思,那么ft_c是什么意思?不妨看看说明:
然后去用户手册查看gpio相关说明,找到以下内容:
基本上了解状况了,再看一下相关寄存器说明:
具体说明:
看了以上说明,基本明白怎么操作了。在初始化io的时候,应该把syscfg registers的ucpd2_strobe位设置一下就ok了。
hal库操作:hal_syscfg_strobedbattpinsconfig(syscfg_cfgr1_ucpd2_strobe);
ll库操作:modify_reg(syscfg->cfgr1, (syscfg_cfgr1_ucpd1_strobe | syscfg_cfgr1_ucpd2_strobe), syscfg_cfgr1_ucpd2_strobe);
再提醒下,其实pa8和pa15也是这样的。如果我们不需要这个下拉电阻,需要按照上面的操作调整一下。
那么为什么stm32g071有这样的设置呢?看下面io功能即可知道,这几个引脚其实是下面几个管脚的复用脚。
手机出货量出货量下滑,到底怎么样才能挽救衰落的智能手机市场?
开关和传感器推动工厂自动化技术发展
从架构到RTOS详解DSP和MCU的区别和联系
选择医疗设备连接器的注意事项
闪光电子陀螺电路图
一文知道STM32G071 PD0 PD2引脚使用注意事项
智能感知技术之基于SD4101R的人体热释电应用方案
三菱3U和5U的PLC如何通讯
微生物快速检测仪的应用及特性
制造企业在“科技智造”这条路上不断开拓
浅谈FPC软板的基本测试标准
智能健康传感器可以为我们带来什么
常见LED应用封装要素
基于MB86H61+iPanel3.0的高清整转方案
“AI+医疗”AI影像出难题,各企业做好长期战斗准备
!销售HP8920A HP8920A射频通信测试HP8920
浅析CWT系列大电流柔性交流探头的特点及应用
最别致、最令人赞叹和最昂贵的扫地机器人Roomba i7 +
深度数据见解驱动的智能企业的新时代
利用迟滞降压转换器中的旁路模式增强PA性能和系统效率