欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3849|回復: 11
收起左側

手機通過藍牙來控制電機轉動,但藍牙能接收到數據,單片機卻不能驅動電機

[復制鏈接]
ID:495676 發表于 2019-11-3 20:11 | 顯示全部樓層 |閱讀模式
我懷疑可能是數據沒有傳輸到單片機中,但卻不知道如何解決,而且當按下開發板的復位按鍵時電機會轉動
連接如下   波特率已經設置為4800

IMG_20191103_200230.jpg

源代碼如下
#include <reg52.h>
typedef unsigned char uchar;
typedef unsigned int uint;
sbit M1 = P1^0;                     // M1接在P1.0
uchar Buffer;
void UartIsr(void);
void UartInit(void);
void main(void)
{
    uchar time = 0;
       M1 = 0;
    UartInit();   
      while(1)
        {
            switch(Buffer)
            {
                case 1:
                    M1=1;
                break;
                case 2:
                    M1=0;
                break;
                default:
                break;               
            }
        }
}   
void UartIsr(void) interrupt 4      //串口中斷處理程序
{
    if(RI == 1)   //當硬件接收到一個數據時,RI會置位
    {
        RI = 0;
        Buffer = SBUF;//將接收到的字符放入Buffer      
    }
}
void UartInit(void)          //串口初始化,4800
{
    TMOD = 0x20;
    SCON = 0x50;
    TH1 = 0xF3;
    TL1 = TH1;
    PCON = 0x80;
    EA = 1;
    ES = 1;
    TR1 = 1;        
}



回復

使用道具 舉報

ID:94031 發表于 2019-11-4 09:26 | 顯示全部樓層
用萬用表測量電機兩端電壓,看有電壓變化沒,電壓是多少,再考慮原因。
回復

使用道具 舉報

ID:94031 發表于 2019-11-4 09:29 | 顯示全部樓層
電機最好用繼電器模塊來驅動。
回復

使用道具 舉報

ID:635207 發表于 2019-11-4 10:43 | 顯示全部樓層
可以在串口中斷中下個斷電,在ram監視器中添加Buffer變量觀察接收到的值。有可能接收到的藍牙數據的編碼格式不對
回復

使用道具 舉報

ID:495676 發表于 2019-11-4 22:22 | 顯示全部樓層
xuyaqi 發表于 2019-11-4 09:26
用萬用表測量電機兩端電壓,看有電壓變化沒,電壓是多少,再考慮原因。

那個電機兩端的電壓是零  按一下復位按鍵   電機兩端就有電壓了  電機就轉了
回復

使用道具 舉報

ID:91899 發表于 2019-11-4 23:47 | 顯示全部樓層
最好就是 有一個數碼管顯示你收到的命令確定是否收到命令 然后確定能夠控制電機
回復

使用道具 舉報

ID:495676 發表于 2019-11-5 15:16 | 顯示全部樓層
我覺得可能是數據沒有傳到單片機中,但想知道為什么按復位鍵的時候電機又轉動了
回復

使用道具 舉報

ID:560467 發表于 2019-11-8 14:51 | 顯示全部樓層
你試一下如果單片機接受到數據后回應手機,既向手機發送一個數,就知道單片機有沒有接受到。而且很重要一點就是12m晶振對于產生波特率并不好,最好就是有11.。。。。的晶振,很可能是做波特率問題
回復

使用道具 舉報

ID:555092 發表于 2019-11-10 16:00 | 顯示全部樓層
你復位的時候單片機p1^0;應該是高電平,所以就動了,你設置的m0=低電平寫在串口初始化下試試
回復

使用道具 舉報

ID:315264 發表于 2019-11-11 16:01 | 顯示全部樓層
囡嬅 發表于 2019-11-5 15:16
我覺得可能是數據沒有傳到單片機中,但想知道為什么按復位鍵的時候電機又轉動了

51單片機所有引腳在復位期間都為高電平,如果你設置電機為低電平驅動則是上電一瞬間電機動一下就停
回復

使用道具 舉報

ID:495676 發表于 2019-11-12 08:34 | 顯示全部樓層
最美不過初 發表于 2019-11-10 16:00
你復位的時候單片機p1^0;應該是高電平,所以就動了,你設置的m0=低電平寫在串口初始化下試試

低電平試過了  也還是不行
回復

使用道具 舉報

ID:661768 發表于 2019-12-11 17:55 來自觸屏版 | 顯示全部樓層
我最近也遇到這個問題,很多嘗試都不行,改了晶振就行了,你把12MHz的改為11.0592MHz應該就可以
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表