Part Number:LP-EM-CC2340R5Other Parts Discussed in Thread:SYSCONFIG
你好,
我使用 SDK_7_20_01_10 之 BASIC_BLE 專案範例來進行修改。
新增一TIMER TASK 如下:
再參考 官網 https://dev.ti.com/tirex/explore/node?node=A__AWGBpOjezYNvPbjzZTCkqw__SIMPLELINK-ACADEMY-CC23XX__gsUPh5j__LATEST
所介紹的章節 Advertising Task 2 – Change the Advertisement Data
修改了廣播封包。
並讓 TIMER CALL BACK, 每6秒鐘 , 執行 BLEAppUtil_advStart 呼叫。如下所示:
呈現的效果,確實是我所期望的。 ( 到這裡為止都沒爭議 )
但奇怪的是, 為何執行了18分鐘後, 就沒廣播了……多次測試都是一樣的結果。
我透過DEBUG模式來查模擬跑18分鐘後, 系統停在如下圖之迴圈。
我嘗試著將 Restart_Adv 涵式 裡的 "status = BLEAppUtil_advStart(peripheralAdvHandle_1, &advSetStartParamsSet_1); "
給MARK起來,替換成 UART 丟字串訊息. 跑了四個小時都還是正常狀態.
請問, 是否關於 "BLEAppUtil_advStart" 用法錯誤了,或著還需要注意甚麼要調整呢?
期待您的指導。 謝謝~~
Galaxy Yue:
您好,已经收到您的消息,需要时间来处理,麻烦您耐心等候。
,
Galaxy Yue:
您好,
我不确定 BLEAppUtil_advStart() 是否按预期方式使用。
我假设您尝试每 6 秒发送一次广告。 为什么不启用一次广告间隔设置为 6 秒的广告? 可以使用 SysConfig 更改广告间隔。
我建议您查看以下 SimpleLink 学院以获得更多指导:
https://dev.ti.com/tirex/explore/node?node=A__AWGBpOjezYNvPbjzZTCkqw__SIMPLELINK-ACADEMY-CC23XX__gsUPh5j__LATEST
,
March Yao:
Dear Galaxy:
謝謝你的回覆, 你建議的方法 我之前已試過了.
這樣修改,確實可以每六秒廣播的效果。
但是, 無法滿足我更新廣播封包內容。
比方說, 每6秒廣播封包中,其中有個BYTE是放流水號,每次加1。
若你確定是可以動態更新封包內容, 請指導我如何處理. 謝謝~
,
Galaxy Yue:
Hi March,
需要一些时间,有进展立即告诉您。
,
March Yao:
Dear Galaxy:
我嘗試你的建議, 由 SYSCONFIG 設定固定6 秒廣播。
,並順利改成能動態丟封包了. 但一樣….會經過約18分鐘後停在同一個死迴圈裡。
只是,他還有繼續在廣播同一筆舊封包。但所有動作都是停在 FaultISR() 迴圈裡‧
我改法如下下圖所示 :
新增一事件 " BLEAPPUTIL_ADV_START"
執行 Fornat_ADV();
此FUNCTION 就是 前文提到的 "Advertising Task 2 – Change the Advertisement Data"
所描述的 變更封包方法.
還請,協助提供解法. 謝謝~
,
Galaxy Yue:
Hi March,
明确您的需求,请等候一下
,
Galaxy Yue:
您能否提供有关“Format_Adv”函数的更多详细信息?
另请考虑查看以下文档
https://dev.ti.com/tirex/content/simplelink_academy_for_cc23xx_7_20_01_00/_build_simplelink_academy_for_cc23xx_7_20_01_00/source/cc2340rx_02_ble_scan_adv_basic.html#id7
另外,为了减少此问题可能的根本原因,我建议尝试仅启用广告(不更改数据)并查看是否在 18 分钟后发生崩溃。
,
March Yao:
嗨~ Galaxy:
我似乎找到問題了.
當我嘗試把 "uint8_t *advData2 = ICall_malloc(ADV_DATA2_LEN);"
宣告成固定的陣列變數後.就不會發生18分鐘崩潰的現象了.
謝謝你的協助。
,
Galaxy Yue:
非常感谢您的反馈,有问题欢迎随时来论坛交流。