欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1764|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

stm32 SubGHz_Phy_PingPong(點(diǎn)對(duì)點(diǎn)通信)例程無線收發(fā)數(shù)據(jù)問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1078076 發(fā)表于 2023-5-17 15:53 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
官方程序的邏輯是,主設(shè)備發(fā)送PING給從設(shè)備,從設(shè)備回復(fù)PONG給主設(shè)備,一直重復(fù)這個(gè)過程。在官方程序中,每次發(fā)送PING(PONG)都發(fā)送了32字節(jié)的數(shù)據(jù),但是實(shí)際上PING(PONG)只需要4個(gè)字節(jié),剩下28個(gè)字節(jié)都是0。
現(xiàn)在需要將幾十K的數(shù)據(jù)發(fā)送給從設(shè)備。
軟件邏輯是,從設(shè)備收到PING,發(fā)送PONG給主設(shè)備,主設(shè)備收到PONG開始數(shù)據(jù)收發(fā)過程。主設(shè)備每發(fā)送一個(gè)數(shù)據(jù)包,就會(huì)進(jìn)入接收模式,直到接收到下一個(gè)pong。從設(shè)備接收到數(shù)據(jù),就發(fā)送一個(gè)pong給主設(shè)備。

官方程序設(shè)定最大有效負(fù)載長度為256字節(jié)   函數(shù)原型void    ( *SetMaxPayloadLength )( RadioModems_t modem, uint8_t max );

第一次實(shí)驗(yàn),每次發(fā)送8字節(jié)數(shù)據(jù),代碼運(yùn)行成功,耗時(shí)2.5小時(shí)
第二次實(shí)驗(yàn),每次發(fā)送32字節(jié)數(shù)據(jù),代碼運(yùn)行成功,耗時(shí)0.5小時(shí)
第三次實(shí)驗(yàn),每次發(fā)送64字節(jié)數(shù)據(jù),代碼運(yùn)行結(jié)束,數(shù)據(jù)有丟失
第四次實(shí)驗(yàn),每次發(fā)送40字節(jié)數(shù)據(jù),代碼運(yùn)行結(jié)束,數(shù)據(jù)有丟失
發(fā)現(xiàn)只要超過官方例程的32字節(jié)就會(huì)有數(shù)據(jù)丟失,上位機(jī)軟件會(huì)打印IRQ_CRC_ERROR,這個(gè)信息好像是硬件中斷函數(shù)打印的,但是我沒找到中斷回調(diào)函數(shù)在哪
//設(shè)置發(fā)送參數(shù)

  Radio.SetTxConfig(MODEM_LORA, TX_OUTPUT_POWER, 0, LORA_BANDWIDTH,//模式LoRa,發(fā)送功率14dbm,0 FSK模式下頻移參數(shù),信號(hào)帶寬124KHz
                    LORA_SPREADING_FACTOR, LORA_CODINGRATE,           //數(shù)據(jù)傳輸速率1024bps,編碼率
                    LORA_PREAMBLE_LENGTH, LORA_FIX_LENGTH_PAYLOAD_ON, //前導(dǎo)長度8、是否固定數(shù)據(jù)包長度(否)
                    true, 0, 0, LORA_IQ_INVERSION_ON, TX_TIMEOUT_VALUE);//是否CRC校驗(yàn)(是),是否頻率跳變,頻率跳變周期,IQ采樣反轉(zhuǎn)大多數(shù)情況為0,發(fā)送超時(shí)時(shí)間3秒


//設(shè)置接收參數(shù)

  Radio.SetRxConfig(MODEM_LORA, LORA_BANDWIDTH, LORA_SPREADING_FACTOR, //模式,信號(hào)帶寬,數(shù)據(jù)傳輸速率
                    LORA_CODINGRATE, 0, LORA_PREAMBLE_LENGTH,     //編碼率,0設(shè)置FSK的AFC自動(dòng)頻率控制,前導(dǎo)長度
                    LORA_SYMBOL_TIMEOUT, LORA_FIX_LENGTH_PAYLOAD_ON, //超時(shí)符號(hào)數(shù),是否固定數(shù)據(jù)包長度
                    0, true, 0, 0, LORA_IQ_INVERSION_ON, true);  //0若為固定數(shù)據(jù)包則有這個(gè)參數(shù)設(shè)置長度,CRC校驗(yàn)true,是否頻率跳變0,頻率跳變周期0,IQ采樣反轉(zhuǎn)大多數(shù)情況為0,true


  Radio.SetMaxPayloadLength(MODEM_LORA, MAX_APP_BUFFER_SIZE); //設(shè)置最大負(fù)載長度255

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1078076 發(fā)表于 2023-5-17 22:03 | 只看該作者
問題已經(jīng)得到解決。STM32 Pingpong 收發(fā)例程是基于串口通信的,如果你遇到了數(shù)據(jù)丟失的問題,很可能是因?yàn)閿?shù)據(jù)傳輸速率過快導(dǎo)致。你可以嘗試調(diào)整波特率降低傳輸速率并重新測(cè)試。

IRQ_CRC_ERROR 表示接收到的數(shù)據(jù)在 CRC 校驗(yàn)時(shí)出錯(cuò),這可能是由于信號(hào)干擾、噪聲或者其他原因?qū)е碌。你可以檢查一下你的硬件連接是否穩(wěn)定,并且確認(rèn)發(fā)送端和接收端設(shè)置的參數(shù)是否匹配。

此外,如果你使用的是 DMA 方式進(jìn)行傳輸,也有可能是 DMA 緩沖區(qū)溢出導(dǎo)致的數(shù)據(jù)丟失。你可以查看 DMA 配置以確認(rèn)是否存在這種情況。

最后,如果你無法確定具體的問題所在,可以嘗試?yán)谜{(diào)試工具(如邏輯分析儀)來對(duì)串口通信進(jìn)行抓包分析,以便更好地定位問題。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表