1. 程式人生 > >【解決】關於藍芽模組串列埠設定總是錯誤的問題

【解決】關於藍芽模組串列埠設定總是錯誤的問題

困擾了我老半天啊,也在網上找了好久的解決方案,居然又不是我這邊的技術問題。。。深深感覺每次遇到問題沒解決時就像是要設計一個類比電路一樣難,而解決問題後卻發現又是如此的傻逼。。。

好了,說正事了。。。

話說,我希望做一個用藍芽來控制Arduino的串列埠通訊裝置,來實現Arduino與PC的分離,於是乎我便找學校老師借了塊藍芽模組,問老師型號,老師說就是那最普通的那種。。。嗯最普通的那種,然後我到現在都沒能找到它究竟是什麼型號。。。HC05又感覺不像,因為有些AT指令它還識別不了。不過好在一些關鍵的,驗證性的指令還是比較通用,然後我就在這樣摸索的過程中找到了解決方案。

嗯我遇到問題是:無論怎麼傳送指令,藍芽模組貌似都只能被啟用一次的樣子,也就是在我用ATSetTool的“自動找模組”時能偶爾檢測到模組,然後至於寫啊讀啊什麼的命令就一直返回error(0)錯誤了,開始我也不知道為什麼,因為我完全是按照操作大多數藍芽模組那樣執行指令的。直到我看到了這個帖子http://bbs.elecfans.com/jishu_464744_1_1.html

上面說可能是串列埠助手的原因讓\r\n當成字元來發送了。老實說,我並不懂藍芽通訊協議裡面的事,但是既然人家這樣說了,那就表明在AT命令裡是必須嚴格按照它的指令來的,不能多一個字元或少一個字元,因此我按建議用十六進位制的進行傳送,然後終於成功了!


另外,在設定主從時,我的這款藍芽模組需要的命令是AT+ROLE:0(從),特別注意到那個英文的冒號,不然的話也會返回error(0)的

所以說,鑑於串列埠助手的bug,碰到了我這個問題的童鞋們,就需要把我們每一行命令轉換成十六進位制的字串,在此推薦個線上轉換器吧,免得人工地找把眼睛都找花。。。O__O "…

http://www.mokuge.com/tool/asciito16/