找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4797|回復(fù): 21
收起左側(cè)

用手機(jī)通過藍(lán)牙HC-08發(fā)數(shù)據(jù)給51單片機(jī),不知道為什么不行,不知道是不是波特率的問題

  [復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 10 黑幣 回復(fù)本帖可獲得 2 黑幣獎(jiǎng)勵(lì)! 每人限 1 次
ID:484491 發(fā)表于 2020-5-17 23:53 | 顯示全部樓層 |閱讀模式
我的單片機(jī)是用12M的晶振,
程序在下,用到單片機(jī)中可以進(jìn)行串口通信控制流水燈,藍(lán)牙HC-08測(cè)試過可以和手機(jī)電腦進(jìn)行通信,但用手機(jī)通過藍(lán)牙HC-08發(fā)數(shù)據(jù)給51單片機(jī),不知道為什么不行,不知道是不是波特率的問題,希望大家?guī)蛶兔?/font>
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
void main()
{
TMOD=0x20;
SM0=0;
SM1=1;
TH1=0xf9;
TL1=0xf9;
TR1=1;
REN=1;
while(1)
{
  if(RI==1)
  {
   RI=0;  
   P0=SBUF;
  }
}
}

回復(fù)

使用道具 舉報(bào)

ID:484491 發(fā)表于 2020-8-1 00:46 | 顯示全部樓層
問題已解決,謝謝各位的解答。
1、晶振為11.0592,串口波特率9600,TH0=TL0=0xfd,波特率不加倍,沒有誤差
2、晶振為12.000,串口波特率4800,TH0=TL0=0xf3,波特率加倍,有誤差0.16%,但不影響通信,能正常收發(fā)信息
回復(fù)

使用道具 舉報(bào)

ID:283908 發(fā)表于 2020-5-18 04:48 | 顯示全部樓層
  最好把全部程序發(fā)出來。
        看看是不是要打開 中斷  
          EA = 1;           //打開總中斷
          ES = 1;     //打開串口中斷
       
回復(fù)

使用道具 舉報(bào)

ID:482935 發(fā)表于 2020-5-18 06:45 | 顯示全部樓層
你用那個(gè)藍(lán)牙SSP助手試試看,我記得HC-08是藍(lán)牙4.0的協(xié)議。那些應(yīng)用商店里的藍(lán)牙串口APP很多是藍(lán)牙2.0協(xié)議(HC-05和HC-06)。首先你單片機(jī)串口波特率需要=藍(lán)牙串口模塊的波特率,否則出現(xiàn)亂碼。 至于手機(jī)上藍(lán)牙的波特率是否需要和藍(lán)牙串口模塊的波特率相同我就不知道了,應(yīng)該是自適應(yīng)的我覺得。(我自己用SSP助手做藍(lán)牙實(shí)驗(yàn)反正沒有關(guān)注手機(jī)的藍(lán)牙波特率,只要單片機(jī)和藍(lán)牙串口模塊的波特率就行了)
回復(fù)

使用道具 舉報(bào)

ID:494559 發(fā)表于 2020-5-18 08:02 | 顯示全部樓層
hc-08是4.0吧?要用廠家的串口軟件測(cè)試。先保證(手機(jī)--HC08--電腦串口)成功。
回復(fù)

使用道具 舉報(bào)

ID:65956 發(fā)表于 2020-5-18 08:18 | 顯示全部樓層
沒有串口中斷入口定義當(dāng)然不行了,單片機(jī)要先有中斷,然后再進(jìn)行接收及數(shù)據(jù)分析,這樣才是個(gè)完整的過程
回復(fù)

使用道具 舉報(bào)

ID:754502 發(fā)表于 2020-5-18 09:35 | 顯示全部樓層
jituo 發(fā)表于 2020-5-18 08:02
hc-08是4.0吧?要用廠家的串口軟件測(cè)試。先保證(手機(jī)--HC08--電腦串口)成功。

我的也是跟樓主同樣的問題,程序沒問題,單片機(jī)和電腦能正常接受,9600波特率。藍(lán)牙模塊也能手機(jī)和pc正常通信,但是藍(lán)牙接在單片機(jī)上就不行
回復(fù)

使用道具 舉報(bào)

ID:600952 發(fā)表于 2020-5-18 10:27 | 顯示全部樓層
藍(lán)牙HC-08和手機(jī)電腦進(jìn)行通信,手機(jī)通過藍(lán)牙HC-08發(fā)數(shù)據(jù)給51單片機(jī),不都得有11.0592MHz晶振嗎?12MHz的計(jì)算準(zhǔn)確嗎?
回復(fù)

使用道具 舉報(bào)

ID:484491 發(fā)表于 2020-5-18 10:32 | 顯示全部樓層
13681878016 發(fā)表于 2020-5-18 06:45
你用那個(gè)藍(lán)牙SSP助手試試看,我記得HC-08是藍(lán)牙4.0的協(xié)議。那些應(yīng)用商店里的藍(lán)牙串口APP很多是藍(lán)牙2.0協(xié)議 ...

嗯嗯,那比如藍(lán)牙的波特率為9600,單片機(jī)的晶振為12M,SMOD=1;經(jīng)過計(jì)算,TH1=TL1=0xf9,誤差為-6.99%,是這樣嗎?如果要消除誤差是不是就要換晶振為11.0592才行,有沒有其他方法消除誤差。
回復(fù)

使用道具 舉報(bào)

ID:494559 發(fā)表于 2020-5-18 10:47 | 顯示全部樓層
韓冰samuel 發(fā)表于 2020-5-18 09:35
我的也是跟樓主同樣的問題,程序沒問題,單片機(jī)和電腦能正常接受,9600波特率。藍(lán)牙模塊也能手機(jī)和pc正常 ...

數(shù)據(jù)未轉(zhuǎn)換,16進(jìn)制轉(zhuǎn)ascii, 如手機(jī)發(fā)ascii,單片機(jī)收到的是16進(jìn)制。不是你發(fā)“a”收到的就是"a".
回復(fù)

使用道具 舉報(bào)

ID:754502 發(fā)表于 2020-5-19 07:28 | 顯示全部樓層
jituo 發(fā)表于 2020-5-18 10:47
數(shù)據(jù)未轉(zhuǎn)換,16進(jìn)制轉(zhuǎn)ascii, 如手機(jī)發(fā)ascii,單片機(jī)收到的是16進(jìn)制。不是你發(fā)“a”收到的就是"a".

發(fā)的也是16進(jìn)制,電腦端能正常接收。用萬用表也測(cè)過,藍(lán)牙模塊接在電腦串口和單片機(jī)串口,各針腳電壓也都相同,就是不知道問題在哪,換了兩個(gè)藍(lán)牙模塊都不行。但是單片機(jī)本身串口也能和電腦相連,正常使用
回復(fù)

使用道具 舉報(bào)

ID:755472 發(fā)表于 2020-5-21 15:29 | 顯示全部樓層
沒有串口中斷入口定義
回復(fù)

使用道具 舉報(bào)

ID:745743 發(fā)表于 2020-6-10 00:07 來自手機(jī) | 顯示全部樓層
神蜂 發(fā)表于 2020-5-18 04:48
最好把全部程序發(fā)出來。
        看看是不是要打開 中斷  
          EA = 1;           //打開總中斷

他這是查詢方式,不用中斷
回復(fù)

使用道具 舉報(bào)

ID:776366 發(fā)表于 2020-6-12 09:49 | 顯示全部樓層
需要打開中斷才能查詢吧,我也是小白
回復(fù)

使用道具 舉報(bào)

ID:777581 發(fā)表于 2020-6-12 19:53 | 顯示全部樓層
串口中斷入口定義有沒
回復(fù)

使用道具 舉報(bào)

ID:778735 發(fā)表于 2020-6-14 10:14 | 顯示全部樓層
打開中斷查詢下吧,具體啥的也不是很清楚
回復(fù)

使用道具 舉報(bào)

ID:484491 發(fā)表于 2020-7-15 02:45 來自手機(jī) | 顯示全部樓層
qujiuhe 發(fā)表于 2020-5-18 10:27
藍(lán)牙HC-08和手機(jī)電腦進(jìn)行通信,手機(jī)通過藍(lán)牙HC-08發(fā)數(shù)據(jù)給51單片機(jī),不都得有11.0592MHz晶振嗎?12MHz的計(jì) ...

但我上網(wǎng)查了,12M的也可以用藍(lán)牙,不影響數(shù)據(jù)通信,但我沒找到解決辦法
回復(fù)

使用道具 舉報(bào)

ID:484491 發(fā)表于 2020-7-15 02:50 來自手機(jī) | 顯示全部樓層
神蜂 發(fā)表于 2020-5-18 04:48
最好把全部程序發(fā)出來。
        看看是不是要打開 中斷  
          EA = 1;           //打開總中斷

現(xiàn)在是可以通信,但是亂碼,不能正確接收數(shù)據(jù),雖然可以測(cè)試出亂碼規(guī)律,用來控制其他模塊,但我想把它搞明白,波特率難搞,不知怎么設(shè)置,設(shè)不正確
回復(fù)

使用道具 舉報(bào)

ID:484491 發(fā)表于 2020-7-15 02:55 來自手機(jī) | 顯示全部樓層
韓冰samuel 發(fā)表于 2020-5-19 07:28
發(fā)的也是16進(jìn)制,電腦端能正常接收。用萬用表也測(cè)過,藍(lán)牙模塊接在電腦串口和單片機(jī)串口,各針腳電壓也都 ...

我現(xiàn)在是能通信了,但接收到的數(shù)據(jù)不正確,是亂碼,雖然可以測(cè)出亂碼規(guī)律,用來控制其他模塊,但我想完成它能正常通信,數(shù)據(jù)正確。不知道你解決了嗎?
回復(fù)

使用道具 舉報(bào)

ID:484491 發(fā)表于 2020-7-15 03:02 來自手機(jī) | 顯示全部樓層
13681878016 發(fā)表于 2020-5-18 06:45
你用那個(gè)藍(lán)牙SSP助手試試看,我記得HC-08是藍(lán)牙4.0的協(xié)議。那些應(yīng)用商店里的藍(lán)牙串口APP很多是藍(lán)牙2.0協(xié)議 ...

問題就是波特率,怎么設(shè)都不對(duì),還是亂碼,還是有規(guī)律的亂碼,是只能用那11.0952的晶振了嗎?有沒有解決的辦法!
回復(fù)

使用道具 舉報(bào)

ID:420836 發(fā)表于 2020-7-15 08:30 | 顯示全部樓層
原因有很多,首先,您的配置正確嗎?
回復(fù)

使用道具 舉報(bào)

ID:484491 發(fā)表于 2020-8-1 00:47 | 顯示全部樓層
TTQ001 發(fā)表于 2020-7-15 08:30
原因有很多,首先,您的配置正確嗎?

已解決,謝謝你
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表