RF_PHY例程問題

extern bStatus_t RF_Rx( uint8_t *txBuf, uint8_t txLen, uint8_t pktRxType, uint8_t pktTxType );

extern bStatus_t RF_Tx( uint8_t *txBuf, uint8_t txLen, uint8_t pktTxType, uint8_t pktRxType );

這兩個(gè)函數(shù)有什么區(qū)別,看起來怎么都可以發(fā)送,那么RX模式下的TX和TX模式下的TX有啥區(qū)別呢?

另外,我想實(shí)現(xiàn)2.4G通信和藍(lán)牙并存,也就是說外設(shè)設(shè)備能同時(shí)獲取藍(lán)牙協(xié)議棧的數(shù)據(jù)和沒有藍(lán)牙協(xié)議的數(shù)據(jù)這樣子可以實(shí)現(xiàn)嗎?謝謝


熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

簡單理解手動(dòng)模式下? RF_Rx 就是接收; RF_Tx就是發(fā)送


如果是自動(dòng)模式,RF_Rx 可以接收后自動(dòng)啟動(dòng)發(fā)送。

2.4G可以和BLE共存 ?https://www.cnblogs.com/debugdabiaoge/p/16149660.html



謝謝,還有幾個(gè)問題

1、extern bStatus_t RF_Rx( uint8_t *txBuf, uint8_t txLen, uint8_t pktRxType, uint8_t pktTxType );中pktRxType和pktTxType,有哪些消息類型,有什么資料嗎?

2、ch573例程中,在回調(diào)函數(shù)里面也調(diào)用了RF_Shut(),博客里的那篇文章里卻沒有,應(yīng)該用哪個(gè)?是不是在收發(fā)之前都調(diào)用一下RF_Shut(),來確保都能順利進(jìn)入收發(fā)模式

void?RF_2G4StatusCallBack(uint8_t?sta,?uint8_t?crc,?uint8_t?*rxBuf)
{
????switch(sta)
????{
????????case?TX_MODE_TX_FINISH:
????????{
????????????break;
????????}
????????case?TX_MODE_TX_FAIL:
????????{
????????????break;
????????}
????????case?TX_MODE_RX_DATA:
????????{
????????????RF_Shut();
????????????if(crc?==?1)
????????????{
????????????????PRINT("crc?error\n");
????????????}
????????????else?if(crc?==?2)
????????????{
????????????????PRINT("match?type?error\n");
????????????}
????????????else
????????????{
????????????????uint8_t?i;
????????????????PRINT("tx?recv,rssi:%d\n",?(int8_t)rxBuf[0]);
????????????????PRINT("len:%d-",?rxBuf[1]);
????????????????for(i?=?0;?i?<?rxBuf[1];?i++)
????????????????????PRINT("%x?",?rxBuf[i?+?2]);
????????????????PRINT("\n");
????????????}
????????????break;
????????}
????????case?TX_MODE_RX_TIMEOUT:?//?Timeout?is?about?200us
????????{
????????????break;
????????}
????????case?RX_MODE_RX_DATA:
????????{
????????????if(crc?==?1)
????????????{
????????????????PRINT("crc?error\n");
????????????}
????????????else?if(crc?==?2)
????????????{
????????????????PRINT("match?type?error\n");
????????????}
????????????else
????????????{
????????????????uint8_t?i;
????????????????PRINT("rx?recv,?rssi:?%d\n",?(int8_t)rxBuf[0]);
????????????????PRINT("len:?%d-",?rxBuf[1]);
????????????????for(i?=?0;?i?<?rxBuf[1];?i++)
????????????????????PRINT("%x?",?rxBuf[i?+?2]);
????????????????PRINT("\n");
????????????}
????????????tmos_set_event(taskID,?SBP_RF_RF_RX_EVT);
????????????break;
????????}
????????case?RX_MODE_TX_FINISH:
????????{
????????????tmos_set_event(taskID,?SBP_RF_RF_RX_EVT);
????????????break;
????????}
????????case?RX_MODE_TX_FAIL:
????????{
????????????break;
????????}
????}
????PRINT("STA:?%x\n",?sta);
}

3、

bStatus_t?RF_RoleInit(?void?);

在并存的時(shí)候需要調(diào)用嗎?


image.png

除了FF其他都是自定義類型,收發(fā)類型要一致,否則無法匹配就不能收到彼此的包。

是的,在不確定RF狀態(tài)的時(shí)候,shut可以保證開啟你需要的收發(fā)狀態(tài)。


也順便問一下,BLE和RF可以正常兼容運(yùn)行了,但是我在RF發(fā)送完就進(jìn)入休眠狀態(tài),按鍵喚醒后,卻發(fā)不出RF數(shù)據(jù),難道要重新初始化RF?


你怎么開啟休眠的?是開啟了HAL-SLEEP嗎?還是自己調(diào)用的休眠。
正常如果休眠的話,就開啟HAL-SLEEP即可


你怎么開啟休眠的?是開啟了HAL-SLEEP嗎?還是自己調(diào)用的休眠。
正常如果休眠的話,就開啟HAL-SLEEP即可


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

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