![]() |
發布時間: 2020-7-27 16:54
正文摘要:貼出我的藍牙串口程序,HC-05藍牙配置圖以及藍牙串口通信界面,我用的是晶振頻率是12MHz的stc89C52RC開發板,led的IO口是P1端,用此程序可以通過串口通信點燈,但用藍牙通信就是點不了燈(附:藍牙可連接,就是接收 ... |
別著急,慢慢來, 如果我沒猜錯的話,你的系統應該是:電腦軟件sscom---USB轉TTL(串口)---HC-05主設備-----藍牙無線連接-----HC-05從設備-----串口連接到stc89C52RC-----與單片機IO口連接的LED燈。 是這樣吧? 首先,根據你的描述:(附:藍牙可連接,就是接收不了數據),所以我建議你改成這樣的系統測試串口接收:電腦軟件sscom1---USB轉TTL(串口)---HC-05主設備-----藍牙無線連接-----HC-05從設備-----USB轉串口接電腦----sscom2,如果sscom1發送數據,sscom2可以正常接收(按照hex顯示),則說明這個系統正常,注意波特率要按照你AT指令配置的進行。如果不正常,你就得再找找藍牙模塊方面的問題了,HC-05的模塊的配置應該比較簡單,我看網上資料一大堆;如果你實在不知道怎么配置,我們可以再討論。 其次,如果上面的系統正常,構建下面的系統:電腦sscom1---USB轉TTL(串口)---串口連接到stc89C52RC-----與單片機IO口連接的LED燈。 然后通過電腦按照上個系統的sscom2一樣的波特率發送收到的一樣的數據給stc單片機,看看燈是不是亮滅變化,如果可以就沒問題,如果不行,那么你就要看下單片機串口接收的驅動代碼或者led燈的控制代碼,看你上面的代碼沒找到問題。 一般如果上面兩個系統正常的話,那么你的系統就沒理由不正常。 如果是接起來不行的話,可能是: 1. 電平匹配問題,比如3.3V的TX電平發送給5V供電的RX會有電平不匹配的問題,可能收不到數據。 2. 波特率精度匹配太差,可以通過同時更換波特率試試,優先試試9600; 另外還有一些小細節: 例如,你判斷的是0x01,那么你應該發送hex的01,而不是1,盡量嚴禁;若發送字符1,則接收要判斷0x31等等;還有TX要接RX,反之亦然,但是有些模塊是TX接TX,看標注的是對方還是自身,這個要弄清楚。 好了就說這么多,祝你好運!有問題再溝通。 |
藍牙配置如下: AT AT+NAME=mc123 AT+PSWD=123456 AT+UART=2400,1,0 |
其實我后來才發現適合藍牙串口通信的晶振頻率是11.0592MHz,12MHz只是用來精確定時 |
燊燊 發表于 2020-7-27 21:50 你是說藍牙的波特率還是串口發送的波特率? |
1692483014 發表于 2020-7-27 22:31 感謝解答,第一個測試確實不行,第一個互相都確實接收不到信息,第二個可以,但我感覺藍牙配置沒啥問題啊 |
囡嬅 發表于 2020-7-27 21:48 沒錯,我都搞了好幾天了 ![]() |
囡嬅 發表于 2020-7-27 20:41 默認9600,我改成了2400,照片上有 |
波特率115200試試 |
然后檢查一下RXD和TXD有沒有接錯 單片機的TXD接藍牙的RXD 藍牙的TXD接單片機的RXD |
你有改過藍牙的默認波特率嗎 首先你得確定這個藍牙模塊的默認波特率是不是2400 |