以下圖所示,採用P0.02做爲PWM的輸出,在進行BLE鏈接的時候,發現開發板已經顯示connected,但手機可是一直在connecting當中,而後就斷開。android
先從android手機端查看緣由,發現手機是鏈接上了,但調用discoverServices()後沒有觸發到onServicesDiscovered()的callback,看來可能和開發板的配置有關。app
使用nRF sniffer抓包看了下開發
master發起了connect_req後,slave回了一個PDU後就再沒有數據,只有master每隔30ms進行一次Empty Data PDU傳輸。io
在DevZone上能夠看到這樣的回答:table
Connection drop problem was caused by Unstable LFCLK. After adjust LFCLK(32768), connection drop problem is disappearedast
最後我從示波器看了下32.768KHZ的波形,的確被PWM干擾的很嚴重。sed
個人解決方案:配置
1. 更換PWM輸出口im
2. 修改NRF_SDH_CLOCK_LF_SRC 時鐘源,能夠選擇內部RC(option 1),或者HFCLK分頻(option 3)call