STC8H读取GPIO口出错
最近做个板子用STC8H芯片读取6IO口的状态时出错,搞半天没找到问题,请大神帮我看看软件采用定时器中断,每秒采集10次,通过串口输出端口状态
硬件部分采用817隔离高压部分,P21-P26口做采集,端口配置成高阻和准双向没有解决问题,输入口并接104电容也无效果
下面附图,请大神分析:
1.串口输出,会出现不明原因的跳变
2.硬件原理图
3.读取函数
有大佬能提供一点思路么 {:dizzy:} 1. 这个函数在中断里,还是中断外?
2. 不能简洁一点么?
status = (P2 >> 1) & 0x3F;
3. 串口发送在哪里? 为什么不直接读取P2值然后&操作像这样status=P2&0x3f; soma 发表于 2024-6-11 17:16
为什么不直接读取P2值然后&操作像这样status=P2&0x3f;
因为我实在找不到哪里出的问题 程序写了好几种demo 硬件也改了还几次
{:cry:}{:cry:} xiangzichen 发表于 2024-6-11 16:46
1. 这个函数在中断里,还是中断外?
2. 不能简洁一点么?
status = (P2 >> 1) & 0x3F;
time0中断里调用这个函数,中断频率50Hz
串口发送就是把这个state发送到UART0
先简单排查一下,EX1-EX6手动固定状态,读取看是否还有这种情况 测试一下串口直接送P2,长时间观察看看 波特率多少?晶振设了多少? 波特率多少?晶振设了多少?
页:
[1]