我們現(xiàn)在用CH582+一個SPI的攝像頭通訊,通訊的時候不能停直到讀完攝像頭的圖片數(shù)據,整個時間差不多要2S多,藍牙要么收不到廣播或藍牙斷開連接,手機要一直跟CH582通訊的
你的這個問題可能是藍牙的連接間隔過小導致的,由于其間隔過小,而你的任務過長,導致藍牙本身任務受到阻礙被打斷
因此,
1、拆分你的任務,縮短你的任務長
2、調整連接間隔,這里所提供的是連接間隔的范圍(間隔時間:6~3200,單位是1.25ms,所以實際的連接間隔時間是6*1.25~3200*1.25ms),你可以將它適當增大一些,然后觀察一下打印的信息,查看具體連接間隔。
因為發(fā)送的是圖片數(shù)據,數(shù)據有點大,如果改小連接間隔是不是發(fā)送就會慢一點了,讀數(shù)據是要連續(xù)的,拆分了圖片數(shù)據就會不完整,如果用定時器中斷去處理藍牙事件可以嗎
不可以
這里使用單芯片就不合適了,建議使用兩個芯片,一個作為MCU,一個使用BLE功能,通過①芯片MCU讀取圖片數(shù)據,然后通過②芯片BLE發(fā)送。
你好, 我也遇到類似問題。?
// Minimum connection interval (units of 1.25ms, 20=25ms)?
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL? ? ?20
//最大可以調整為3200=4000ms
// Maximum connection interval (units of 1.25ms, 100=125ms)
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL? ? ?100
這兩個宏只是定義了一個參考范圍,但是 在哪里具體定義 實際的連接間隔時間的呢?
還是說 通過調整這兩個宏,有ble庫,或者主機來決定最終的連接間隔呢??
?
最終的連接間隔是通過主機與從機的協(xié)商來決定的,也許你定義了范圍,但是實際連接間隔仍然不一定在這范圍以內。
這里是原本打印實際連接間隔的地方,你可以寫一個多次協(xié)商的函數(shù),這里提供的函數(shù)供參考。
感謝!?的確可以調整間隔了