標題: 求助:52單片機藍牙接收數據后只發(fā)回0x82 是波特率錯了嗎? [打印本頁]

作者: czm23    時間: 2019-12-9 11:06
標題: 求助:52單片機藍牙接收數據后只發(fā)回0x82 是波特率錯了嗎?
最近在做的一個小玩意,基于單片機的智能光控系統(tǒng),老師要求加上藍牙控制,各位大佬幫我看看是不是模式和波特率設計出錯了

3.png (21.29 KB, 下載次數: 59)

3.png

2.jpg (120.14 KB, 下載次數: 57)

2.jpg

1.png (23.92 KB, 下載次數: 57)

1.png

作者: czm23    時間: 2019-12-15 09:45
后來發(fā)現晶振是12M的, 要如何修改程序  有沒有大佬啊
作者: wulin    時間: 2019-12-16 06:52
czm23 發(fā)表于 2019-12-15 09:45
后來發(fā)現晶振是12M的, 要如何修改程序  有沒有大佬啊

12M晶振的波特率不要超過2400,最高4800但要設置加倍,否則誤差太大不能正常通訊。
  1. void UartInit(void)        //2400bps@12.000MHz
  2. {
  3.         PCON= 0x00;                //波特率不倍速
  4.         SCON= 0x50;                //8位數據,可變波特率
  5.         TMOD= 0x20;                //設定定時器1為8位自動重裝方式
  6.         TL1 = 0xF3;                //設定定時初值
  7.         TH1 = 0xF3;                //設定定時器重裝值
  8.         ET1 = 0;                //禁止定時器1中斷
  9.         TR1 = 1;                //啟動定時器1
  10.     EA = 1;                        //使能總中斷
  11.     ES = 1;                        //使能串口中斷
  12. }
  13. void UartInit(void)        //4800bps@12.000MHz
  14. {
  15.         PCON= 0x80;                //使能波特率倍速位SMOD
  16.         SCON= 0x50;                //8位數據,可變波特率
  17.         TMOD= 0x20;                //設定定時器1為8位自動重裝方式
  18.         TL1 = 0xF3;                //設定定時初值
  19.         TH1 = 0xF3;                //設定定時器重裝值
  20.         TR1 = 1;                //啟動定時器1
  21.         ET1 = 0;                //禁止定時器1中斷
  22.     EA = 1;                        //使能總中斷
  23.     ES = 1;                        //使能串口中斷
  24. }
復制代碼





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1