使用简单的adc采集,可以正常使用,但配合电机和舵机程序,放入中断中,就被莫名的拉高到vcc,直接导致通道不能正常使用,不知道是芯片本身的问题还是程序问题,问题和程序图片放在下方
1.检测一次核心板是否存在引脚短接的情况
2.检测一下代码里面是否有代码让引脚一直处于拉高状态
3.检测一下是否有外部VCC接到引脚上了
参考:
(1) 【STC32G12K128开发板】——STC32G12K128开发板介绍 https://blog.csdn.net/qq_36139768/article/details/126871050
(2) STC32G核心板电路原理分析 https://www.bilibili.com/read/cv15679263
(3) STM32配置GPIO的高低电平_keil如何让一个端口设置为高电平 https://blog.csdn.net/tanhaiyi/article/details/123688957
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
根据您的描述,可能有几个原因导致引脚被拉高到VCC:
芯片本身的问题:首先,您应该仔细检查您所使用的芯片数据手册,确认引脚是否具有内部上拉电阻或其他特殊设定。如果是,请确保这些设定已正确配置。
程序问题:您提到使用了电机和舵机程序,可能存在以下问题:
a. 中断处理函数:请确保在中断处理函数中正确处理了引脚状态,并且没有意外的改变引脚状态。可以尝试将中断处理函数的代码段提供给我进行检查。
b. 引脚冲突:如果电机和舵机程序使用了与ADC引脚相同的引脚,可能会导致冲突。请确保没有引脚冲突,并使用正确的IO口初始化和配置。
此外,请提供更多详细信息,如芯片型号,使用的开发板,以及电机和舵机程序的代码片段,这样我可以更好地帮助您解决问题。
如果我的回答解决了您的问题,请采纳!
在中断里改变的全局变量,加上volatile,否则可能因为优化,导致编译器认为数值没有变化,从而导致相关操作无法进行
检查电路连接: 首先,请检查与该引脚相关联的电路连接是否良好。确保没有松动或虚焊等问题,导致引脚始终保持高电平。
检查电源供电: 确保单片机和相关设备都有稳定的电源供应。过大的电流变化或电源波动可能导致引脚电平异常。
检查程序逻辑: 仔细检查您的程序逻辑,特别是与该引脚相关的代码部分。确保在正确的时间和条件下对该引脚进行状态设置。
排除其他干扰: 考虑可能的干扰源,例如电磁干扰、共地问题、引脚与其他信号线的干扰等。尽量将引脚与其他线路区分开来,避免互相干扰。
使用示波器或逻辑分析仪: 使用示波器或逻辑分析仪等仪器来监测引脚的电平变化情况,以便更好地分析问题所在。