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

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 3786|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

手機(jī)通過(guò)藍(lán)牙來(lái)控制電機(jī)轉(zhuǎn)動(dòng),但藍(lán)牙能接收到數(shù)據(jù),單片機(jī)卻不能驅(qū)動(dòng)電機(jī)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
我懷疑可能是數(shù)據(jù)沒(méi)有傳輸?shù)絾纹瑱C(jī)中,但卻不知道如何解決,而且當(dāng)按下開(kāi)發(fā)板的復(fù)位按鍵時(shí)電機(jī)會(huì)轉(zhuǎn)動(dòng)
連接如下   波特率已經(jīng)設(shè)置為4800



源代碼如下
#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)   //當(dāng)硬件接收到一個(gè)數(shù)據(jù)時(shí),RI會(huì)置位
    {
        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;        
}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:94031 發(fā)表于 2019-11-4 09:26 | 只看該作者
用萬(wàn)用表測(cè)量電機(jī)兩端電壓,看有電壓變化沒(méi),電壓是多少,再考慮原因。
回復(fù)

使用道具 舉報(bào)

板凳
ID:94031 發(fā)表于 2019-11-4 09:29 | 只看該作者
電機(jī)最好用繼電器模塊來(lái)驅(qū)動(dòng)。
回復(fù)

使用道具 舉報(bào)

地板
ID:635207 發(fā)表于 2019-11-4 10:43 | 只看該作者
可以在串口中斷中下個(gè)斷電,在ram監(jiān)視器中添加Buffer變量觀察接收到的值。有可能接收到的藍(lán)牙數(shù)據(jù)的編碼格式不對(duì)
回復(fù)

使用道具 舉報(bào)

5#
ID:495676 發(fā)表于 2019-11-4 22:22 | 只看該作者
xuyaqi 發(fā)表于 2019-11-4 09:26
用萬(wàn)用表測(cè)量電機(jī)兩端電壓,看有電壓變化沒(méi),電壓是多少,再考慮原因。

那個(gè)電機(jī)兩端的電壓是零  按一下復(fù)位按鍵   電機(jī)兩端就有電壓了  電機(jī)就轉(zhuǎn)了
回復(fù)

使用道具 舉報(bào)

6#
ID:91899 發(fā)表于 2019-11-4 23:47 | 只看該作者
最好就是 有一個(gè)數(shù)碼管顯示你收到的命令確定是否收到命令 然后確定能夠控制電機(jī)
回復(fù)

使用道具 舉報(bào)

7#
ID:495676 發(fā)表于 2019-11-5 15:16 | 只看該作者
我覺(jué)得可能是數(shù)據(jù)沒(méi)有傳到單片機(jī)中,但想知道為什么按復(fù)位鍵的時(shí)候電機(jī)又轉(zhuǎn)動(dòng)了
回復(fù)

使用道具 舉報(bào)

8#
ID:560467 發(fā)表于 2019-11-8 14:51 | 只看該作者
你試一下如果單片機(jī)接受到數(shù)據(jù)后回應(yīng)手機(jī),既向手機(jī)發(fā)送一個(gè)數(shù),就知道單片機(jī)有沒(méi)有接受到。而且很重要一點(diǎn)就是12m晶振對(duì)于產(chǎn)生波特率并不好,最好就是有11.。。。。的晶振,很可能是做波特率問(wèn)題
回復(fù)

使用道具 舉報(bào)

9#
ID:555092 發(fā)表于 2019-11-10 16:00 | 只看該作者
你復(fù)位的時(shí)候單片機(jī)p1^0;應(yīng)該是高電平,所以就動(dòng)了,你設(shè)置的m0=低電平寫(xiě)在串口初始化下試試
回復(fù)

使用道具 舉報(bào)

10#
ID:315264 發(fā)表于 2019-11-11 16:01 | 只看該作者
囡嬅 發(fā)表于 2019-11-5 15:16
我覺(jué)得可能是數(shù)據(jù)沒(méi)有傳到單片機(jī)中,但想知道為什么按復(fù)位鍵的時(shí)候電機(jī)又轉(zhuǎn)動(dòng)了

51單片機(jī)所有引腳在復(fù)位期間都為高電平,如果你設(shè)置電機(jī)為低電平驅(qū)動(dòng)則是上電一瞬間電機(jī)動(dòng)一下就停
回復(fù)

使用道具 舉報(bào)

11#
ID:495676 發(fā)表于 2019-11-12 08:34 | 只看該作者
最美不過(guò)初 發(fā)表于 2019-11-10 16:00
你復(fù)位的時(shí)候單片機(jī)p1^0;應(yīng)該是高電平,所以就動(dòng)了,你設(shè)置的m0=低電平寫(xiě)在串口初始化下試試

低電平試過(guò)了  也還是不行
回復(fù)

使用道具 舉報(bào)

12#
ID:661768 發(fā)表于 2019-12-11 17:55 來(lái)自觸屏版 | 只看該作者
我最近也遇到這個(gè)問(wèn)題,很多嘗試都不行,改了晶振就行了,你把12MHz的改為11.0592MHz應(yīng)該就可以
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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