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

標題: 求教串口模塊 [打印本頁]

作者: 13152174087    時間: 2015-5-13 23:45
標題: 求教串口模塊
我想用51的串口通訊,例程上給的是用的串口中斷,我沒有用中斷,想直接提取串口寄存器里的數據,但是程序一寫進去,單片機就飛了~~,想問問大家這樣的編程想法能實現嗎?
作者: 13152174087    時間: 2015-5-13 23:52
請大家幫幫忙,謝謝啦
作者: admin    時間: 2015-5-14 00:34
把你的程序發上來看一下
作者: 13152174087    時間: 2015-5-14 00:54
admin 發表于 2015-5-14 00:34
把你的程序發上來看一下

#include<reg52.h>
#include"bstv51.h"
void UartConfiguration();

void main()
{
        uchar date=1;
    bstv51_init();
        UartConfiguration();

        while(1)
        {         
                if(RI)
                {       
                        RI=0;
                        date=SBUF;        //取出接受到的數據
                        RI=0;                          //清除接受中斷標志位
                        SBUF=0x7b;          //接收到的數據放入發送緩存器發送
                        while(!TI);        //等待發送數據完成
                        TI=0;                                //清除發送完成標志位
                }
        }

}

void UartConfiguration()
{
    TMOD=0x20;      //設置計數器1的工作方式2
        TH1=0xfd;                        //設置計數器1的初值,決定波特率
        TL1=0xfd;                        //設置計數器1的初值,決定波特率
        PCON=0x00;      // 波特率倍增0x00不加倍         0x80加倍
        SCON=0x50;                //設置工作方式1 開啟接受允許
        EA=1;                    //開啟總中斷
        ES=0;                        //關閉串口接受中斷
        TR1=1;                        //計數器1開始運行
}



作者: 13152174087    時間: 2015-5-14 00:56
我要是給SBUF寄存器里寫了date接收端就只能接受到0
作者: 13152174087    時間: 2015-5-14 01:22
在線等,謝謝先
作者: 13152174087    時間: 2015-5-14 16:32




#include<reg52.h>
#include"bstv51.h"
void UartConfiguration();

void main()
{
        uchar date=1;
    bstv51_init();
        UartConfiguration();

        while(1)
        {         
                if(RI)
                {       
                        RI=0;
                        date=SBUF;        //取出接受到的數據
                        RI=0;                          //清除接受中斷標志位
                        SBUF=date;          //接收到的數據放入發送緩存器發送
                        while(!TI);        //等待發送數據完成
                        TI=0;                                //清除發送完成標志位
                }
        }

}

void UartConfiguration()
{
    TMOD=0x20;      //設置計數器1的工作方式2
        TH1=0xfd;                        //設置計數器1的初值,決定波特率
        TL1=0xfd;                        //設置計數器1的初值,決定波特率
        PCON=0x00;      // 波特率倍增0x00不加倍         0x80加倍
        SCON=0x50;                //設置工作方式1 開啟接受允許
        EA=1;                    //開啟總中斷
        ES=0;                        //關閉串口接受中斷
        TR1=1;                        //計數器1開始運行
}

作者: husir    時間: 2015-5-14 18:19
一種是查詢  一種是中斷  你二個都不用, 那你搞什么?
作者: 13152174087    時間: 2015-5-14 19:40
husir 發表于 2015-5-14 18:19
一種是查詢  一種是中斷  你二個都不用, 那你搞什么?

我的if函數不算查詢嗎?那查詢的代碼應該怎么寫,求教
作者: 13152174087    時間: 2015-5-14 23:29
大家幫幫忙想象辦法,問了好多人了都不知道咋回事
作者: yuexin9311    時間: 2015-5-15 09:16
你用雙串口么
作者: 13152174087    時間: 2015-5-15 18:11
沒有,就用了一個
作者: 13152174087    時間: 2015-5-16 02:48
親們幫幫忙啦,瓶頸問題
作者: ahshmj    時間: 2015-5-17 19:53
"bstv51.h"這個頭文件存在哪兒?

“uchar” keil是不認識的。
應先定義:
#define uchar unsigned char
作者: fsnhjjj    時間: 2015-5-17 20:01
新人同問
作者: 13152174087    時間: 2015-5-18 19:06
終于解決了,程序是沒有問題的是把keil了的晶振頻率沒有改

作者: 13152174087    時間: 2015-5-18 19:06
希望這次的經驗可以幫到更多的人
作者: gsprest    時間: 2017-7-19 20:47
學習了




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日本在线精品视频 | 隔壁老王国产在线精品 | 天天干天天操天天看 | 毛片视频免费观看 | 日韩精品1区2区 | 国产中文字幕在线观看 | 国产综合欧美 | 日韩一区二区三区av | 久久视频一区 | 91se在线| av入口 | 国产精品2区 | 国产高清久久 | 国产人成在线观看 | 日韩一区二区在线看 | 国产精品夜色一区二区三区 | 亚洲欧美男人天堂 | 97超碰成人 | 国产福利小视频 | 日本韩国欧美在线观看 | 欧美一区二区三区精品免费 | 久久久精品影院 | 91pao对白在线播放 | 人人擦人人 | 亚洲狠狠 | 国产美女特级嫩嫩嫩bbb片 | www.9191.com| 精品久久国产 | 一区二区三区在线看 | 亚洲精品一区二区三区在线 | 81精品国产乱码久久久久久 | 国产一级大片 | 欧美九九九| 亚洲精品国产第一综合99久久 | 亚洲一区二区三区免费在线观看 | 精品av天堂毛片久久久借种 | 亚洲综合区 | 国产在线精品一区二区三区 | 国产馆| 97精品超碰一区二区三区 | 日韩av免费在线电影 |