找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:495676 發(fā)表于 2019-11-3 20:11 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
我懷疑可能是數(shù)據(jù)沒有傳輸?shù)絾纹瑱C中,但卻不知道如何解決,而且當按下開發(fā)板的復位按鍵時電機會轉(zhuǎn)動
連接如下   波特率已經(jīng)設置為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)   //當硬件接收到一個數(shù)據(jù)時,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;        
}



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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

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

使用道具 舉報

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

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

使用道具 舉報

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

使用道具 舉報

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

本版積分規(guī)則

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

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

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