cc2541+cc2591 藍芽停止廣播
在使用cc2541+cc2591時,
使用一陣子後, 偶爾會突然發生手機完全掃描不到藍芽裝置,
這時如果用藍芽裝置的按鈕去控制藍芽裝置上的LED是會正常閃爍的,
所以cc2541應該還正常的在運作,
只是沒有廣播,
請問有人遇過類似的情形嗎?
或是有什麼方法可以去找出問題的原因?
请问您的板子是自己制作的吗? 建议您将广播模式设置为无限制广播试试还会出现您现在的情况
另外您现在使用的协议栈版本是怎样的?
謝謝您的回覆
目前我是使用1.4.0
我的板子是自己做的
廣播模式已經是無限制廣播
Susan Yang
另外您现在使用的协议栈版本是怎样的?
聽說有可能是被外設佔用
請問我該如何驗證是否被外設佔用
出现这种情况重新上电或者复位能否正常广播?
大秦正声
出现这种情况重新上电或者复位能否正常广播?
重新上電後就會正常廣播了
通信距离有多远?采用啥电源?工作环境如何?多试几块板子。
手机上的app退出,然后重新启动app,再看
大秦正声
通信距离有多远?采用啥电源?工作环境如何?多试几块板子。
有三塊板子都發生這種情形
手機和藍芽裝置通信距離約2米
兩台用1.5v*2的電池供電, 一台用5v USB電源供電
環境中有近十台BLE
大话西游
手机上的app退出,然后重新启动app,再看
確實有遇過類似的情形,
是在iphone4s上,
手機藍芽重啟就恢復正常了,
但是我遇到的情形是
發生問題的藍芽裝置, 我手上的每一台手機都掃不到
用debug mode來測試,
當停止廣播的時候,
我執行break指令去讀取static
發現gapProfileState = GAPROLE_WAITING,
接著在執行Go指令後,
就恢復廣播了
請問這個是哪裡出問題,
相關的代碼如下
static void peripheralStateNotificationCB( gaprole_States_t newState ) { // ... case GAPROLE_WAITING: case GAPROLE_WAITING_AFTER_TIMEOUT: { osal_stop_timerEx( simpleBLEPeripheral_TaskID, PAIRING_BUTTON_COUNTER_EVT); osal_memset( charValue2, 0, (sizeof( charValue2 ))); SimpleProfile_SetParameter( SIMPLEPROFILE_CHAR2, SIMPLEPROFILE_CHAR2_LEN, charValue2 ); } break; //... }
David Hsueh
用debug mode來測試,
當停止廣播的時候,
我執行break指令去讀取static
發現gapProfileState = GAPROLE_WAITING,
接著在執行Go指令後,
就恢復廣播了
請問這個是哪裡出問題,
相關的代碼如下
static void peripheralStateNotificationCB( gaprole_States_t newState ) { // ... case GAPROLE_WAITING: case GAPROLE_WAITING_AFTER_TIMEOUT: { osal_stop_timerEx( simpleBLEPeripheral_TaskID, PAIRING_BUTTON_COUNTER_EVT); osal_memset( charValue2, 0, (sizeof( charValue2 ))); SimpleProfile_SetParameter( SIMPLEPROFILE_CHAR2, SIMPLEPROFILE_CHAR2_LEN, charValue2 ); } break; //... }
我剛剛忘記把watch dog timer關掉,
所以才會在break後再go可以修復問題
我剛重新實驗發現程式跑到這裡了
else if ( pPkt->hdr.status == bleGAPConnNotAcceptable ) { // Set enabler to FALSE; device will become discoverable again when // this value gets set to TRUE gapRole_AdvEnabled = FALSE; // Go to WAITING state, and then start advertising gapRole_state = GAPROLE_WAITING; }
請問有人知道為什麼會進來這裡嗎?