久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5211|回復(fù): 30
打印 上一主題 下一主題
收起左側(cè)

串口問題求解

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:171584 發(fā)表于 2017-4-7 20:50 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit led=P2^0;
uchar flag=0,a=0;
void init()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xf9;
TR1=1;
SM0=0;
SM1=1;
REN=1;
EA=1;
ES=1;
}
void main()//&Ouml;÷&sup3;&Igrave;&ETH;ò
{
init();
while(1)
{
  if(flag==1)
  {
   ES=0;
   if(a==0x01)
   {
    led=0;
   }
   if(a==0x02)
   {
    led=1;
   }
   flag=0;
   ES=1;
  }

}  
}
void chuan() interrupt 4
{
RI=0;
a=SBUF;
flag=1;

}


為什么我把主函數(shù)里的0x02改成0x11之類的就無法實現(xiàn)led亮滅的效果

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

使用道具 舉報

沙發(fā)
ID:151348 發(fā)表于 2017-4-7 21:47 | 只看該作者
你發(fā)送端發(fā)送的是什么
回復(fù)

使用道具 舉報

板凳
ID:187200 發(fā)表于 2017-4-8 08:36 | 只看該作者
0X02二進(jìn)制是0X00000010改成0X11就是0X00000011了,位不同
回復(fù)

使用道具 舉報

地板
ID:187200 發(fā)表于 2017-4-8 08:37 | 只看該作者
0x02改成0x11的二進(jìn)制位不同

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

5#
ID:171584 發(fā)表于 2017-4-8 11:42 來自手機 | 只看該作者
我把0x02改成0x11就不行了
回復(fù)

使用道具 舉報

6#
ID:171584 發(fā)表于 2017-4-8 11:43 來自手機 | 只看該作者
imxuheng 發(fā)表于 2017-4-7 21:47
你發(fā)送端發(fā)送的是什么

我把0x02改成0x11或0x3f之類的就不行了,這是為什么?
回復(fù)

使用道具 舉報

7#
ID:171584 發(fā)表于 2017-4-8 13:12 | 只看該作者
imxuheng 發(fā)表于 2017-4-7 21:47
你發(fā)送端發(fā)送的是什么

我把0x02改成0x11和0x3f之類的就不行了,這是為什么
回復(fù)

使用道具 舉報

8#
ID:187428 發(fā)表于 2017-4-8 14:44 | 只看該作者
我也想知道·····同求
回復(fù)

使用道具 舉報

9#
ID:151348 發(fā)表于 2017-4-8 19:33 | 只看該作者
xcj 發(fā)表于 2017-4-8 11:43
我把0x02改成0x11或0x3f之類的就不行了,這是為什么?

沒問啊,我試了,可以
回復(fù)

使用道具 舉報

10#
ID:171584 發(fā)表于 2017-4-8 21:52 | 只看該作者
你就修改了
if(a==0x02)    if(a==0x3f)
這個地方嗎?
回復(fù)

使用道具 舉報

11#
ID:171584 發(fā)表于 2017-4-8 21:53 | 只看該作者
imxuheng 發(fā)表于 2017-4-8 19:33
沒問啊,我試了,可以

你就修改了
if(a==0x02)    if(a==0x3f)
這個地方嗎?
回復(fù)

使用道具 舉報

12#
ID:171584 發(fā)表于 2017-4-8 21:54 | 只看該作者
我把這個改了再下載程序串口輸入0x01可以電燈但是輸入0x3f等卻不滅
回復(fù)

使用道具 舉報

13#
ID:47286 發(fā)表于 2017-4-9 02:39 | 只看該作者
xcj 發(fā)表于 2017-4-8 21:54
我把這個改了再下載程序串口輸入0x01可以電燈但是輸入0x3f等卻不滅

只修改 if(a==0x02)  成  if(a==0x3f)沒問題 你發(fā)0x3f就可以

這個程序 先初始化串口  然后主程序不斷掃描接收標(biāo)記是否置1 接收標(biāo)記由串口服務(wù)在接收到數(shù)據(jù)后置1 每次接收到數(shù)據(jù) 服務(wù)程序把標(biāo)記置1表示有數(shù)據(jù)需要處理 主程序發(fā)現(xiàn)有要處理的就去比較是什么 如果和if后邊的一樣 就動作 然后把標(biāo)記清零 否則丟棄

你改成什么 就要給它發(fā)什么 比如02改3f 就得發(fā)3f

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

14#
ID:187614 發(fā)表于 2017-4-9 08:54 | 只看該作者
串口初始化有點小問題,燈亮與滅受控于串口接收數(shù)據(jù)

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

15#
ID:151348 發(fā)表于 2017-4-9 09:05 | 只看該作者
xcj 發(fā)表于 2017-4-8 21:53
你就修改了
if(a==0x02)    if(a==0x3f)
這個地方嗎?

是的,改成什么數(shù),就發(fā)什么數(shù),發(fā)送模式是16進(jìn)制模式
回復(fù)

使用道具 舉報

16#
ID:171584 發(fā)表于 2017-4-9 10:08 | 只看該作者
dzbj 發(fā)表于 2017-4-9 02:39
只修改 if(a==0x02)  成  if(a==0x3f)沒問題 你發(fā)0x3f就可以

這個程序 先初始化串口  然后主程序不 ...

但我試了下好像只能00到0f可以實現(xiàn)功能
超過了15就無效
回復(fù)

使用道具 舉報

17#
ID:171584 發(fā)表于 2017-4-9 10:11 | 只看該作者
dzbj 發(fā)表于 2017-4-9 02:39
只修改 if(a==0x02)  成  if(a==0x3f)沒問題 你發(fā)0x3f就可以

這個程序 先初始化串口  然后主程序不 ...

但我這里好像只能實現(xiàn)16進(jìn)制的0-15
超了就無法實現(xiàn)了
回復(fù)

使用道具 舉報

18#
ID:171584 發(fā)表于 2017-4-9 10:16 | 只看該作者
dzbj 發(fā)表于 2017-4-9 02:39
只修改 if(a==0x02)  成  if(a==0x3f)沒問題 你發(fā)0x3f就可以

這個程序 先初始化串口  然后主程序不 ...

我只有16進(jìn)制0到15實現(xiàn)功能超過了就不行想0x10就沒反應(yīng)了這是為什么
回復(fù)

使用道具 舉報

19#
ID:18297 發(fā)表于 2017-4-9 10:26 | 只看該作者
估計串口上位機設(shè)置不對,沒有發(fā)送對應(yīng)的碼,如選擇十六進(jìn)制數(shù)還是ascii碼,這個接收到的數(shù)據(jù)就不一樣的。
最直接的方法是不要考慮燈是否亮滅,直接將單片機接收到的數(shù)據(jù)輸出到端口,看是否接收正確。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

20#
ID:171584 發(fā)表于 2017-4-9 10:52 | 只看該作者
qinyike51 發(fā)表于 2017-4-8 08:37
0x02改成0x11的二進(jìn)制位不同

那要怎么才能發(fā)送超過16的16進(jìn)制才能有效
回復(fù)

使用道具 舉報

21#
ID:171584 發(fā)表于 2017-4-9 11:40 | 只看該作者
qinyike51 發(fā)表于 2017-4-8 08:36
0X02二進(jìn)制是0X00000010改成0X11就是0X00000011了,位不同

0x11不是00010001嗎?
回復(fù)

使用道具 舉報

22#
ID:187674 發(fā)表于 2017-4-9 12:53 來自手機 | 只看該作者
0x是十六進(jìn)制,后面兩個數(shù)字是十六進(jìn)制,你可以寫成二進(jìn)制一位一位的對比一下喃!

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

23#
ID:47286 發(fā)表于 2017-4-9 13:12 | 只看該作者
xcj 發(fā)表于 2017-4-8 21:54
我把這個改了再下載程序串口輸入0x01可以電燈但是輸入0x3f等卻不滅

我實測了 沒問題(為了降低工作時的功耗 我把led調(diào)的特暗 陽光下不太明顯)
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit led=P1^4;                        //端口改成我的模塊上電源燈口了
uchar flag=0,a=0;

void init()        //這孩紙寫程序怎么不標(biāo)注呢
{
        TMOD=0x20;
        TH1=0xfd;
        TL1=0xf9;
        TR1=1;
        SM0=0;
        SM1=1;
        REN=1;
        EA=1;
        ES=1;
}

void main()
{
        init();                //串口初始化

        while(1)        //循環(huán)
        {
                if(flag==1)                //如果 接收標(biāo)記為1
                {
                        ES=0;                        //關(guān)串口中斷
                        if(a==0x01)                //如果接受位是0x01
                        {
                                led=0;                        //開led
                        }
                        if(a==0x3f)                //如果接受位是0x3f
                        {
                                led=1;                        //關(guān)led
                        }
                        flag=0;                        //接收標(biāo)記清零
                        ES=1;                        //開串口中斷
                }
        }  
}

void chuan() interrupt 4        //中斷服務(wù)
{
        RI=0;                //RI位清零
        a=SBUF;                //負(fù)值 變量a值為接收緩沖區(qū)
        flag=1;                //接收標(biāo)記置1
}


發(fā)01開



發(fā)02關(guān)



發(fā)01再開我沒截圖 反正都一樣

發(fā)3f關(guān)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

24#
ID:171584 發(fā)表于 2017-4-9 13:37 | 只看該作者
dzbj 發(fā)表于 2017-4-9 13:12
我實測了 沒問題(為了降低工作時的功耗 我把led調(diào)的特暗 陽光下不太明顯)
#include
#define uchar unsi ...

難道我板子問題?
那藍(lán)牙模塊我把tx,rx,gnd,vcc連上后與手機連接怎么操控這段代碼
是直接輸就可以實現(xiàn)還是要做其他的步奏
回復(fù)

使用道具 舉報

25#
ID:187691 發(fā)表于 2017-4-9 13:51 | 只看該作者
你的位設(shè)置不同
回復(fù)

使用道具 舉報

26#
ID:171584 發(fā)表于 2017-4-9 14:03 | 只看該作者
jeffjiang 發(fā)表于 2017-4-9 13:51
你的位設(shè)置不同



哪里不對?
回復(fù)

使用道具 舉報

27#
ID:171584 發(fā)表于 2017-4-9 14:25 | 只看該作者
zjjhtony 發(fā)表于 2017-4-9 10:26
估計串口上位機設(shè)置不對,沒有發(fā)送對應(yīng)的碼,如選擇十六進(jìn)制數(shù)還是ascii碼,這個接收到的數(shù)據(jù)就不一樣的。
...

那程序要怎么寫,剛學(xué)搞不清楚
回復(fù)

使用道具 舉報

28#
ID:18297 發(fā)表于 2017-4-9 16:15 | 只看該作者

void chuan() interrupt 4
{
RI=0;
a=SBUF;
flag=1;
}
改成void chuan() interrupt 4
{
RI=0;
P1=SBUF;
flag=1;
}
1)這樣每次串口調(diào)試軟件發(fā)送后,就能看到你的芯片接收到啊的數(shù)據(jù)是否正常;
看proteus的芯片的P1輸出是多少,就是你的接收到的;
2)串口調(diào)試軟件有設(shè)置如文本模式,hex模式,一定要設(shè)置清楚,不同的設(shè)置接收到的數(shù)值會不同的。
回復(fù)

使用道具 舉報

29#
ID:187758 發(fā)表于 2017-4-9 16:33 | 只看該作者
xcj 發(fā)表于 2017-4-8 11:43
我把0x02改成0x11或0x3f之類的就不行了,這是為什么?

百度一下?
回復(fù)

使用道具 舉報

30#
ID:171584 發(fā)表于 2017-4-9 19:00 | 只看該作者
zjjhtony 發(fā)表于 2017-4-9 16:15

void chuan() interrupt 4
{

像這樣是不是led只會閃一下
回復(fù)

使用道具 舉報

31#
ID:171584 發(fā)表于 2017-4-9 19:29 | 只看該作者
zjjhtony 發(fā)表于 2017-4-9 16:15

void chuan() interrupt 4
{

還有我想問下HC-05藍(lán)牙模塊與手機連接后是不是直接可以發(fā)送指令
需要別的什么操作嗎?

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品视频在线看 | 亚洲福利免费 | 精品一区二区三区在线播放 | 亚洲国产视频一区二区 | 91免费在线视频 | 日日摸夜夜添夜夜添特色大片 | 毛片免费在线观看 | 午夜影院在线观看免费 | 国产黄色大片网站 | 中文字字幕一区二区三区四区五区 | 欧美aaaaaaaa| 黄色毛片免费 | 日本在线一区二区 | 国产精彩视频 | 黄色三级在线播放 | 亚洲一区二区在线播放 | 欧美成人激情 | 午夜理伦三级理论三级在线观看 | a级毛片基地 | 午夜国产一级片 | 亚洲成av人片在线观看无码 | 国产中文 | 久久久123| 天天澡天天操 | 久久久久久久久久爱 | 亚洲一av | 欧美日韩成人影院 | 日本一区不卡 | 久久精品国产一区 | 日一区二区 | 久久9精品 | 日本三级做a全过程在线观看 | 久久成人综合 | 成人av网站在线观看 | 日韩快播电影 | 成人av电影在线观看 | 一区二区三区免费网站 | 亚洲香蕉| 亚洲国产成人在线视频 | 国产一级免费视频 | 国产乱码精品一品二品 |