欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
stm32 SubGHz_Phy_PingPong(點對點通信)例程無線收發數據問題
[打印本頁]
作者:
mqh123
時間:
2023-5-17 15:53
標題:
stm32 SubGHz_Phy_PingPong(點對點通信)例程無線收發數據問題
官方程序的邏輯是,主設備發送PING給從設備,從設備回復PONG給主設備,一直重復這個過程。在官方程序中,每次發送PING(PONG)都發送了32字節的數據,但是實際上PING(PONG)只需要4個字節,剩下28個字節都是0。
現在需要將幾十K的數據發送給從設備。
軟件邏輯是,從設備收到PING,發送PONG給主設備,主設備收到PONG開始數據收發過程。主設備每發送一個數據包,就會進入接收模式,直到接收到下一個pong。從設備接收到數據,就發送一個pong給主設備。
官方程序設定最大有效負載長度為256字節 函數原型void ( *SetMaxPayloadLength )( RadioModems_t modem, uint8_t max );
第一次實驗,每次發送8字節數據,代碼運行成功,耗時2.5小時
第二次實驗,每次發送32字節數據,代碼運行成功,耗時0.5小時
第三次實驗,每次發送64字節數據,代碼運行結束,數據有丟失
第四次實驗,每次發送40字節數據,代碼運行結束,數據有丟失
發現只要超過官方例程的32字節就會有數據丟失,上位機軟件會打印IRQ_CRC_ERROR,這個信息好像是硬件中斷函數打印的,但是我沒找到中斷回調函數在哪
//設置發送參數
Radio.SetTxConfig(MODEM_LORA, TX_OUTPUT_POWER, 0, LORA_BANDWIDTH,//模式LoRa,發送功率14dbm,0 FSK模式下頻移參數,信號帶寬124KHz
LORA_SPREADING_FACTOR, LORA_CODINGRATE, //數據傳輸速率1024bps,編碼率
LORA_PREAMBLE_LENGTH, LORA_FIX_LENGTH_PAYLOAD_ON, //前導長度8、是否固定數據包長度(否)
true, 0, 0, LORA_IQ_INVERSION_ON, TX_TIMEOUT_VALUE);//是否CRC校驗(是),是否頻率跳變,頻率跳變周期,IQ采樣反轉大多數情況為0,發送超時時間3秒
//設置接收參數
Radio.SetRxConfig(MODEM_LORA, LORA_BANDWIDTH, LORA_SPREADING_FACTOR, //模式,信號帶寬,數據傳輸速率
LORA_CODINGRATE, 0, LORA_PREAMBLE_LENGTH, //編碼率,0設置FSK的AFC自動頻率控制,前導長度
LORA_SYMBOL_TIMEOUT, LORA_FIX_LENGTH_PAYLOAD_ON, //超時符號數,是否固定數據包長度
0, true, 0, 0, LORA_IQ_INVERSION_ON, true); //0若為固定數據包則有這個參數設置長度,CRC校驗true,是否頻率跳變0,頻率跳變周期0,IQ采樣反轉大多數情況為0,true
Radio.SetMaxPayloadLength(MODEM_LORA, MAX_APP_BUFFER_SIZE); //設置最大負載長度255
作者:
mqh123
時間:
2023-5-17 22:03
問題已經得到解決。STM32 Pingpong 收發例程是基于串口通信的,如果你遇到了數據丟失的問題,很可能是因為數據傳輸速率過快導致。你可以嘗試調整波特率降低傳輸速率并重新測試。
IRQ_CRC_ERROR 表示接收到的數據在 CRC 校驗時出錯,這可能是由于信號干擾、噪聲或者其他原因導致的。你可以檢查一下你的硬件連接是否穩定,并且確認發送端和接收端設置的參數是否匹配。
此外,如果你使用的是 DMA 方式進行傳輸,也有可能是 DMA 緩沖區溢出導致的數據丟失。你可以查看 DMA 配置以確認是否存在這種情況。
最后,如果你無法確定具體的問題所在,可以嘗試利用調試工具(如邏輯分析儀)來對串口通信進行抓包分析,以便更好地定位問題。
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1