WCH沁恒单片机
直播中

王飞

7年用户 1110经验值
私信 关注
[问答]

CH395网络芯片发送数据太慢是什么原因?如何解决?

大家好,我使用CH395的UDP发送数据时,如果我直接发送一个数组,每秒发送15次,最多能成功2两次。如果我直接发送一个字符串,每秒可以发送15次,都能成功。这是为什么啊?下面红色框中的就是两个代码。求大神们指点,感谢感谢

这里CH395芯片使用的是UDP协议,用的SPI通信方式。下面是发送字符串时,网络抓包的结果。每秒十几条没问题。

最后这里是发送数组,同样每秒调用十几次,但是数据只能成功发送2两次,剩下的数据就丢失了。下面是抓包的结果。

求助这个问题该怎么解决啊?现在需要将串口接收到的数据,转发到网络中,每秒数据来7个数据帧。或者CH395发送字符串和和发送数组有什么本质区别啊?感谢感谢大家
  

回帖(2)

刘瑞

2022-10-12 10:59:41
CH395SendData(0,"342sadfg3sa342sadfg3s342sadfg3sa342sadfg3saa342sadfg3sa342sadfg3sa",100);上面成功发送。下面会丢数据,只能成功一两次
CH395SendData(0, Com_Msg.net_tx_buf, Com_Msg.net_tx_cnt);
举报

余少华

2022-10-12 11:00:07
  
  您好,如果您觉得同样的调用函数而效果不一样,您需要查一下是否有差异点:
(1)函数调用的时机,两种状态下CH395SENDDATA调用前后环境堆栈是否一样,大致上您就调试一下查看一下CPU内部寄存器的值是否一样,和调用前的步骤和使能条件是否一致
(2)CH395SendData调用的参数类型是否能和规定的一致,您查看一下您结构体参数的参数类型是否能和函数对应上
(3)您发送字符串抓的数据包数据长度都是100,发送数组抓的包数据长度有206,有29,有67,这些数据是什么您看您能否对应上。
  
举报

更多回帖

发帖
×
20
完善资料,
赚取积分