[STM32F1] io输入电平采集问题

[复制链接]
2594|19
 楼主| zhdjl 发表于 2025-3-20 10:39 来自手机 | 显示全部楼层 |阅读模式
外部输入一个1秒跳变的慢信号,万用表测最高3.3伏,io读取一直为低电平(程序读到低电平会刷新液晶显示,一直低电平会狂刷新液晶,应该是1秒才读到一次低电平),看了一个博客说输入要设置成下拉才能正确判断输入电平,上拉浮空都不行,我试了一下确实好了,一秒一刷,但是修改了后边几行显示代码后,屏幕又开始狂刷新了,测输入管脚还是最高3.3伏,大家有遇到这种情况吗?
jcky001 发表于 2025-3-20 10:43 | 显示全部楼层
IO引脚配置不当,导致信号读取错误。
elephant00 发表于 2025-3-20 10:45 | 显示全部楼层
将IO引脚配置为输入模式,并且下拉电阻配置正确。如果下拉电阻配置正确但问题依旧,尝试调整下拉电阻的阻值,看是否有改善。
 楼主| zhdjl 发表于 2025-3-20 11:59 来自手机 | 显示全部楼层
jcky001 发表于 2025-3-20 10:43
IO引脚配置不当,导致信号读取错误。

输入两路是ad给出来的,有问题的一路是ad转换完成的标志,另一路是ad串行输出(这一路数据显示正常)
cr315 发表于 2025-3-20 13:00 | 显示全部楼层
可能是程序中存在逻辑错误,导致液晶显示刷新控制不当。
jinyi7016 发表于 2025-3-20 17:44 | 显示全部楼层
屏幕 狂刷新应该与这个IO没有关系了,你代码逻辑问题
duo点 发表于 2025-3-20 19:00 | 显示全部楼层
可以考虑增加防抖处理。
 楼主| zhdjl 发表于 2025-3-20 20:29 来自手机 | 显示全部楼层
elephant00 发表于 2025-3-20 10:45
将IO引脚配置为输入模式,并且下拉电阻配置正确。如果下拉电阻配置正确但问题依旧,尝试调整下拉电阻的阻值 ...

程序比较简单,最后上焊膏加焊了一遍管脚,正常了
onlycook 发表于 2025-3-20 22:00 | 显示全部楼层
用示波器检测信号是否正常。
Wordsworth 发表于 2025-3-21 08:02 | 显示全部楼层
可以在输入引脚上加个小电容(比如10nF~100nF),过滤一下可能的高频干扰,看看会不会稳定一点。
Bblythe 发表于 2025-3-21 08:03 | 显示全部楼层
你这个信号是一秒跳变一次,读取逻辑有没有做去抖?如果边沿检测有抖动,可能会导致异常触发。
Pulitzer 发表于 2025-3-21 08:05 | 显示全部楼层
试试 GPIO_ReadInputDataBit() 读取后,打印一下输入值,看看是不是真的跟预期的一致,可能程序逻辑上有误。
Uriah 发表于 2025-3-21 08:06 | 显示全部楼层
你用的是什么库?HAL 还是标准库?有些库初始化时可能会自动配置IO模式,检查一下初始化代码。
Clyde011 发表于 2025-3-21 08:07 | 显示全部楼层
还有一种可能,你的液晶刷新逻辑里是不是用了 while 之类的死循环,导致误判时程序卡在刷新界面?
公羊子丹 发表于 2025-3-21 08:09 | 显示全部楼层
你这个问题听起来像是IO的输入模式影响了电平判断,可能跟信号源的驱动能力有关。加下拉能稳定输入,那信号是不是开路状态下浮动了?
周半梅 发表于 2025-3-21 08:10 | 显示全部楼层
你试过直接用示波器看看输入波形吗?万用表测的是均值,可能信号有抖动或者电平不稳定的瞬间状态。
帛灿灿 发表于 2025-3-21 08:11 | 显示全部楼层
STM32F1的输入模式有浮空、上拉、下拉,你之前用的是浮空吗?有些情况下浮空模式容易受到干扰,导致误判。
童雨竹 发表于 2025-3-21 08:13 | 显示全部楼层
你的信号是直接接到IO口,还是通过分压或者电阻网络?如果信号源阻抗比较大,可能需要外部拉低或拉高增强驱动能力。
万图 发表于 2025-3-21 08:14 | 显示全部楼层
修改代码后出现狂刷新,看看是不是IO配置又被改回去了,或者程序里有别的地方影响了IO读取?
xionghaoyun 发表于 2025-3-21 08:48 | 显示全部楼层
开了上拉没
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部