迪文科技论坛

 找回密码
 立即注册
搜索
查看: 209|回复: 5

【提问】发送一帧数据问题,请问各位大哥

[复制链接]

2

主题

5

回帖

45

积分

新手上路

Rank: 1

积分
45
发表于 2023-11-21 11:49:24 | 显示全部楼层 |阅读模式
问题描述 本人做modbus协议,使用串口5,迪文屏做主机,下发一帧报文发现,报文错误,进行数据发送测试,发现以下三种现象,没有头绪,希望各位大哥帮忙看看。

1.代码1 发数组
u8 testbuff[8]={0x01,0x04,0x00,0x00,0x00,0x03,0xB0,0x0B};
void main(void)
{      
    u8 len2 = 0;  
    sys_init();
    //系统初始化  
    uart_init();  
    u5_send_byte(1);  
    while(1)  
    {      
        sys_delay_ms(1000);//精确延时1秒   
        u5_send_byte(0x55);   
       for(len2=0;len2<8;len2++)   
       {        
            u5_send_byte(testbuff[len2]);   
       }   
    u5_send_byte(0x5A);
    }
}
发送报文:55 F2 1E E6 2E 76 A0 20 44 5A
只有头和尾的数据正确,其他数据错误。

2.代码2发间隔数组
u8 testbuff[8]={0x01,0x04,0x00,0x00,0x00,0x03,0xB0,0x0B};
void main(void)
{      
    u8 len2 = 0;   
   u8 testbuff[8]={1};   
   sys_init();//系统初始化   
   uart_init();   
   u5_send_byte(1);   
   while(1)   
   {           
        sys_delay_ms(1000);//精确延时1秒        
        for(len2=0;len2<8;len2++)        
        {            
            u5_send_byte(0x55);            
            u5_send_byte(testbuff[len2]);        
       }        u5_send_byte(0x5A);   
   }
}
发送报文:55 A6 55 2E 55 76 55 20 55 20 55 45 55 BC 55 28 5A
中间间隔发送固定0x55正确,数组其他数据错误。


3.代码3 用函数发送
void test(void)
{     
    u8 len;     
    u8 testbuff[8]={0x01,0x04,0x00,0x00,0x00,0x03,0xB0,0x0B};
    for(len=0;len<8;len++)   
   {        
        u5_send_byte(testbuff[len]);   
   }
}
void main(void)
{      
    sys_init();//系统初始化
    uart_init();
    num = 0;
    u5_send_byte(1);
    while(1)
    {
            sys_delay_ms(1000);//精确延时1秒
           u5_send_byte(0x55);
           test();
          u5_send_byte(0x5A);
    }
}
发送报文:55 01 04 00 00 00 03 B0 0B 5A
发送正确





回复

使用道具 举报

17

主题

114

回帖

1287

积分

金牌会员

Rank: 6Rank: 6

积分
1287
QQ
发表于 2023-11-21 11:54:39 | 显示全部楼层
发一下工程吧,感觉像testbuff数据出问题了。
二哲科技,欢迎联系,帮你解决问题,为你提供方案~
VX:erzhekeji
QQ:1002866443
回复

使用道具 举报

2

主题

5

回帖

45

积分

新手上路

Rank: 1

积分
45
 楼主| 发表于 2023-11-21 12:07:23 | 显示全部楼层
二哲科技 发表于 2023-11-21 11:54
发一下工程吧,感觉像testbuff数据出问题了。

谢谢啊。看一下,就是发送一帧数据有问题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

17

主题

114

回帖

1287

积分

金牌会员

Rank: 6Rank: 6

积分
1287
QQ
发表于 2023-11-21 12:58:41 | 显示全部楼层
zz1997 发表于 2023-11-21 12:07
谢谢啊。看一下,就是发送一帧数据有问题

代码1和代码2你把testbuff放在main里面试试呢。
二哲科技,欢迎联系,帮你解决问题,为你提供方案~
VX:erzhekeji
QQ:1002866443
回复

使用道具 举报

2

主题

5

回帖

45

积分

新手上路

Rank: 1

积分
45
 楼主| 发表于 2023-11-21 13:40:56 | 显示全部楼层
二哲科技 发表于 2023-11-21 12:58
代码1和代码2你把testbuff放在main里面试试呢。

报文:55 F2 1E A6 2A 76 24 20 45 5A
不太行,单独发送的两个字节是对的,testbuf里面的值还是不对
回复

使用道具 举报

17

主题

114

回帖

1287

积分

金牌会员

Rank: 6Rank: 6

积分
1287
QQ
发表于 2023-11-21 15:10:17 | 显示全部楼层
zz1997 发表于 2023-11-21 13:40
报文:55 F2 1E A6 2A 76 24 20 45 5A
不太行,单独发送的两个字节是对的,testbuf里面的值还是不对 ...

你把编译的优化等级调成0试试,如果还不行的话,我有时间帮你看看。
二哲科技,欢迎联系,帮你解决问题,为你提供方案~
VX:erzhekeji
QQ:1002866443
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-11-22 14:35 , Processed in 0.074590 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表