請(qǐng)問CH579使用USB通訊時(shí),如何開啟藍(lán)牙低功耗呢?

請(qǐng)問CH579使用USB通訊時(shí),如何開啟藍(lán)牙低功耗呢?

我們的低功耗是通過睡眠來(lái)實(shí)現(xiàn)的,單片機(jī)在進(jìn)入睡眠狀態(tài)時(shí),USB模塊是停止工作的,但是由于配置了RB_UC_DEV_PU_EN強(qiáng)制上拉,根集線器不會(huì)判斷為設(shè)備斷連,主機(jī)也就不會(huì)移除USB設(shè)備。若此時(shí)主機(jī)給USB設(shè)備發(fā)送數(shù)據(jù),而設(shè)備的USB模塊停止工作而不能及時(shí)應(yīng)答,主機(jī)可能會(huì)主動(dòng)移除USB設(shè)備導(dǎo)致斷連,設(shè)備需要再次經(jīng)過枚舉才能連上。

可以自行設(shè)置一個(gè)標(biāo)志,檢測(cè)USB模塊是否處于工作中。在即將進(jìn)入睡眠時(shí)判斷標(biāo)志,若仍在收發(fā)數(shù)據(jù),就跳出而不進(jìn)入睡眠狀態(tài)。


HAL_SLEEP是在宏定義開啟,如何在工作中關(guān)閉不進(jìn)入睡眠呢?


HAL_SLEEP只用于睡眠功能的使能,進(jìn)入睡眠需要調(diào)用進(jìn)入低功耗睡眠模式的函數(shù),對(duì)于58x系列的單片機(jī)函數(shù)名為CH58X_LowPower。

手動(dòng)設(shè)置一個(gè)flag標(biāo)志,在枚舉收到令牌包時(shí),這個(gè)flag置位,表示USB正在工作中。在調(diào)用CH58X_LowPower前或是在函數(shù)中添加對(duì)flag的判斷,若判斷為USB仍在工作中則直接return,不繼續(xù)執(zhí)行睡眠模式的啟動(dòng)。

當(dāng)USB數(shù)據(jù)傳輸完畢,用戶從USB接口拔掉設(shè)備時(shí),flag需要清除標(biāo)志位。可以向主機(jī)發(fā)個(gè)數(shù)據(jù)包看主機(jī)是否有應(yīng)答,或者是讀D+D-兩腳上的電壓是否都沒有上拉,來(lái)判斷設(shè)備是否手動(dòng)拔出。若已經(jīng)拔出,flag標(biāo)志清除,則可以進(jìn)入低功耗睡眠。


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

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