如何在BLE\Peripheral工程和RF_phy工程結(jié)合的工程下開啟HAL_SLEEP時通過TOMS事件喚醒后讓CH57X_LowPower及時退出?

@TECH_Rzz@TECH13@TECH_JW您好!

在做RF通訊時,開啟HAL_SLEEP時通過TOMS事件喚醒后,無法保證通訊正常運行(會出現(xiàn)CRC error)。

已排除通訊窗口期問題。

使用RF通訊,發(fā)送端可以直接調(diào)用協(xié)議棧的睡眠,即將HAL_SLEEP設(shè)置為true,使用tmos調(diào)用發(fā)送函數(shù),

而接受端,是不可以這樣使用的,接收端最好是保持接收狀態(tài)。


@TECH_Hy非常感謝您的回復(fù)。

1、接收端也要保持低功耗的,接收端到約定時間點通過TMOS提前喚醒開啟接收狀態(tài),接收完每個從設(shè)備發(fā)過來的數(shù)據(jù)后(假設(shè)2min)再次通過TMOS進行睡眠模式不可以嗎?

2、是不是設(shè)備從sleep模式醒來進行RF通訊需要一定的時間,ms級的?

3、現(xiàn)已在最新CH579例程進行測試,將\BLE\RF_PHY移植到\BLE\Peripheral工程下,打開sleep,通過tmos喚醒設(shè)備來進行兩個設(shè)備間相互通訊,會出現(xiàn)CRC error。任意一方出現(xiàn)CRC error后通訊不能再次接收數(shù)據(jù)。

通訊過程為:b設(shè)備先設(shè)置為RX-MODE,a設(shè)備為TX-mode發(fā)送數(shù)據(jù)給b設(shè)備,a設(shè)備發(fā)送完成后設(shè)置為接收,b設(shè)備收到a設(shè)備數(shù)據(jù)后轉(zhuǎn)為TX-MODE給a設(shè)備回應(yīng)。

已在CH57X_LowPower()里設(shè)置標(biāo)志位來退出sleep。



HAL_SLEEP設(shè)置為true,并在CH57X_LowPower函數(shù)中設(shè)置sleep退出標(biāo)志

image.png

通過藍牙下發(fā)指令開啟接收,并退出sleep

image.pngimage.png


在睡眠函數(shù)中置flag的方法是可以實現(xiàn)的,如果僅是A和B通訊,可以使用auto模式,無需手動切換收發(fā),出現(xiàn)crc后不再通訊顯然是不合理的,可以檢查下代碼,是否是出現(xiàn)crc之后并沒有再次打開發(fā)送或接收。


1、是一接收,多發(fā)送,采用的BASIC模式。

2、出現(xiàn)crc之后,再次打開接收或發(fā)送也是不行,只有重啟設(shè)備



調(diào)用發(fā)送或接收之前是否調(diào)用了?RF_Shut();?


調(diào)用了


如果方便的話,可以將你的代碼發(fā)送到hy@wch.cn,我們來幫你看看,另外在郵件中也將你具體怎么測試的描述下。


已發(fā)送


問題已解決,上述功能可實現(xiàn)。


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

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