ldkp2017106 发表于 2023-9-13 16:08:48

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:00


ldkp2017106 发表于 2023-9-14 16:41:04

神农鼎 发表于 2023-9-13 16:18


大佬,能说明白些么?两三个小时就不行了,但是今天8个小时了,没有出现这个现象了

WangChong 发表于 2023-9-24 02:06:48

LAOXU 发表于 2023-9-24 09:23:24

估计是串口缓冲区溢出, 重点查这一块程序

zhx 发表于 2023-11-5 11:00:31

先分清是串口的问题,还是数据的问题,有固定的值代替数据,看看3个小时后还变化不,
一个人不能走路,不一定是脚的问题,还可能脑袋没了.

lijun4545 发表于 2023-11-5 14:42:11

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;

如果不行就加延时

_奶咖君_ 发表于 2023-12-11 17:47:29

lijun4545 发表于 2023-11-5 14:42
uar3_tx(0x88);               //0
while(TI == 0);
TI = 0;


人家这个用的不是串口3么....你等待串口1的TI干啥
页: [1]
查看完整版本: S急急急 急急急 急急急 TC15W4K48S4,串口数据发送异常,各位大佬指导下哈