CH395網(wǎng)絡(luò)芯片發(fā)送數(shù)據(jù)太慢,求大神指點(diǎn)

大家好,我使用CH395的UDP發(fā)送數(shù)據(jù)時(shí),如果我直接發(fā)送一個(gè)數(shù)組,每秒發(fā)送15次,最多能成功2兩次。如果我直接發(fā)送一個(gè)字符串,每秒可以發(fā)送15次,都能成功。這是為什么???下面紅色框中的就是兩個(gè)代碼。求大神們指點(diǎn),感謝感謝

Snipaste_2022-08-04_10-40-10.png

這里CH395芯片使用的是UDP協(xié)議,用的SPI通信方式。下面是發(fā)送字符串時(shí),網(wǎng)絡(luò)抓包的結(jié)果。每秒十幾條沒問題。
Snipaste_2022-08-04_10-33-28.png

最后這里是發(fā)送數(shù)組,同樣每秒調(diào)用十幾次,但是數(shù)據(jù)只能成功發(fā)送2兩次,剩下的數(shù)據(jù)就丟失了。下面是抓包的結(jié)果。

Snipaste_2022-08-03_15-27-09.png

求助這個(gè)問題該怎么解決?。楷F(xiàn)在需要將串口接收到的數(shù)據(jù),轉(zhuǎn)發(fā)到網(wǎng)絡(luò)中,每秒數(shù)據(jù)來7個(gè)數(shù)據(jù)幀?;蛘逤H395發(fā)送字符串和和發(fā)送數(shù)組有什么本質(zhì)區(qū)別?。扛兄x感謝大家

CH395SendData(0,"342sadfg3sa342sadfg3s342sadfg3sa342sadfg3saa342sadfg3sa342sadfg3sa",100);

上面成功發(fā)送。下面會丟數(shù)據(jù),只能成功一兩次

CH395SendData(0,?Com_Msg.net_tx_buf,?Com_Msg.net_tx_cnt);



您好,如果您覺得同樣的調(diào)用函數(shù)而效果不一樣,您需要查一下是否有差異點(diǎn):

(1)函數(shù)調(diào)用的時(shí)機(jī),兩種狀態(tài)下CH395SENDDATA調(diào)用前后環(huán)境堆棧是否一樣,大致上您就調(diào)試一下查看一下CPU內(nèi)部寄存器的值是否一樣,和調(diào)用前的步驟和使能條件是否一致

(2)CH395SendData調(diào)用的參數(shù)類型是否能和規(guī)定的一致,您查看一下您結(jié)構(gòu)體參數(shù)的參數(shù)類型是否能和函數(shù)對應(yīng)上

(3)您發(fā)送字符串抓的數(shù)據(jù)包數(shù)據(jù)長度都是100,發(fā)送數(shù)組抓的包數(shù)據(jù)長度有206,有29,有67,這些數(shù)據(jù)是什么您看您能否對應(yīng)上。


非常感謝大神的指點(diǎn),我再排查排查,再次感謝


非常感謝指點(diǎn)!

首先我可以確定,我在程序中同一個(gè)地方調(diào)用發(fā)送函數(shù),發(fā)送數(shù)組和發(fā)送字符串結(jié)果是不一樣的。發(fā)送字符串每秒15次左右;發(fā)送數(shù)組每秒只能成功兩次。

其次,字符串發(fā)送長度100,是我指定的長度就是100,它每秒15次發(fā)送都能成功。而發(fā)送數(shù)組的長度206、29、67等這些長度,是根據(jù)真實(shí)協(xié)議,接收到不同的一組完整數(shù)據(jù)幀,接收完成立馬發(fā)送,就是發(fā)送這個(gè)數(shù)組時(shí),每秒只能成功兩次左右的樣子。真實(shí)協(xié)議數(shù)據(jù)幀每秒6條,四條長度為29,一條長度為67,還有一條為206,但是抓包結(jié)果只能收到一條29長度的數(shù)據(jù),剩下3條都丟失了。


您好,注意下,每次調(diào)用發(fā)送函數(shù)前,查詢下send_buf_free標(biāo)志,為1可發(fā)送,否則會出現(xiàn)UDP粘包或者丟包情況。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频