S急急急 急急急 急急急 TC15W4K48S4,串口数据发送异常,各位大佬指导下哈
本帖最后由 ldkp2017106 于 2023-9-13 16:12 编辑急急急急急急急急急
运行程序,前3个小时左右都是好的,以后的就不行了。断电重启之后就有可以正常运行了。
这段程序是采集其他设备的数据后再转发。JCHH,JCHL,JCGK这些数据不会变化,只有SU_DU和hm会变。正常运行3个多小时之后这样第9位数据(校验和)和第8位数据(hm)都变成0了
void LXJ(uc huamian)
{
uc jrc;
shoufa3=1;
jrc=0x88;
jrc+=0x55;
jrc+=0xAA;
jrc+=hm;
jrc+=SU_DU;
jrc+=JCHH;
jrc+=JCHL;
jrc+=JCGK;
uar3_tx(0x88); //0
uar3_tx(0x55); //1
uar3_tx(0xAA); //2
uar3_tx(0x00); //3 速度H
uar3_tx(SU_DU); //4 速度L
uar3_tx(JCGK); //5 前进后退
uar3_tx(JCHH); //6 高位 H
uar3_tx(JCHL); //7 低位L
uar3_tx(hm); //8 录像状态
uar3_tx(jrc); //9 校验和
uar3_tx('Z'); //10 结束符
uar3_tx('X'); //11 结束符
shoufa3=0;
}
数据异常截图
数据正常截图
神农鼎 发表于 2023-9-13 16:18
大佬,能说明白些么?两三个小时就不行了,但是今天8个小时了,没有出现这个现象了 估计是串口缓冲区溢出, 重点查这一块程序 先分清是串口的问题,还是数据的问题,有固定的值代替数据,看看3个小时后还变化不,
一个人不能走路,不一定是脚的问题,还可能脑袋没了. uar3_tx(0x88); //0
while(TI == 0);
TI = 0;
uar3_tx(0x55); //1
while(TI == 0);
TI = 0;
uar3_tx(0xAA); //2
while(TI == 0);
TI = 0;
如果不行就加延时 lijun4545 发表于 2023-11-5 14:42
uar3_tx(0x88); //0
while(TI == 0);
TI = 0;
人家这个用的不是串口3么....你等待串口1的TI干啥
页:
[1]