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

標(biāo)題: 關(guān)于串口傳輸?shù)囊恍﹩栴} [打印本頁]

作者: poseidon    時間: 2017-4-15 11:49
標(biāo)題: 關(guān)于串口傳輸?shù)囊恍﹩栴}
在使用串口調(diào)試軟件時,發(fā)送數(shù)據(jù)后會不斷重復(fù)數(shù)據(jù)的最后一個字符,如下圖。波特率一致,為4800bps,程序如下,我檢查了很多次也不知道什么原因,故發(fā)帖專心請教。
程序:
#include<reg51.h>
void comsetting();        //串口設(shè)置程序

void main()
{
        comsetting();
        while(1)
        {
        }
}

void comsetting()
{
        SCON=0x50;          //串口工作方式1
        TMOD=0x20;          //定時器工作方式2
        PCON=0x80;          //波特率加倍
        TH1=0xf4;          //定時器設(shè)置初值,波特率為4800(已加倍)
        TL1=0xf4;
        ES=1;                //允許串行中斷
        EA=1;                //打開總中斷
        TR1=1;                //打開定時器1
}

void comint() interrupt 4                //中斷服務(wù)程序
{
        unsigned char rdata; //定義變量為接收的數(shù)據(jù)receive data
        rdata=SBUF;                         //把接收緩沖器接收的數(shù)據(jù)賦給變量
        RI=0;                                //接收中斷標(biāo)志,接收結(jié)束,硬件自動置1,用軟件復(fù)位
        SBUF=rdata;                        //把變量的數(shù)據(jù)賦給發(fā)送緩沖器
        while(!TI)                    //等待數(shù)據(jù)發(fā)送完成
        TI=0;                                //發(fā)送結(jié)束,軟件復(fù)位
}



調(diào)試圖片:



作者: poseidon    時間: 2017-4-15 12:22
應(yīng)該是TH1=0xf3;TL1=0xf3
作者: yzwzfyz    時間: 2017-4-16 06:56
每次串口中斷后,你都會從SBUF中取一個數(shù)字發(fā)出;
收到最后一個時SBUF讀到“o”,你發(fā)“o”。
注意:串口中斷響應(yīng)是不管收還是發(fā),都會發(fā)生中斷,所以發(fā)完最后一個“o”后,也會生產(chǎn)中斷,當(dāng)然你取到的SBUF一定是上次的SBUF也就是“o”,所以你又發(fā)一次“o”,發(fā)生后還會再中斷(發(fā)送中斷)……
實際上,當(dāng)你收到“h”時,在發(fā)出“h”后也會產(chǎn)生發(fā)送中斷,但這個中斷不會被立即響應(yīng),因為這時程序還在中斷服務(wù)程序中尚未返回,當(dāng)你中斷返回后,響應(yīng)發(fā)送中斷時,接收中斷也收到了,新發(fā)來了下一個“e”(接收中斷與發(fā)送中斷幾乎同時到達(dá)),所以你并未再發(fā)一次“h”,而是新收到的“e”。也就是說你已丟了一次中斷,但丟掉的洽洽是重復(fù)的那一個!
讀懂以上后,程序修改一下就好了,應(yīng)當(dāng)很簡單了!
作者: 不懂程序的小孩    時間: 2019-3-28 17:47
poseidon 發(fā)表于 2017-4-15 12:22
應(yīng)該是TH1=0xf3;TL1=0xf3

TH1=0xf3;TL1=0xf3和TH1=0xf4;TL1=0xf4有什么差別嗎!




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 在线播放国产一区二区三区 | 国产精品污www在线观看 | 91精品久久久久久久久久入口 | 亚洲成人一区二区 | 国产日韩欧美在线 | 天堂久| 国产午夜精品久久久 | 91xx在线观看 | 久久久久久久一区 | 国产精品国产成人国产三级 | 一级做a爰片性色毛片16 | 在线免费毛片 | 人人九九精 | 一级黄色绿像片 | 国产成人在线视频免费观看 | 99视频在线看 | 国产精品视频yy9299一区 | 亚洲精品一区二区三区中文字幕 | aaaaaaa片毛片免费观看 | 日韩在线视频网址 | 99热精品国产 | 色综合久久天天综合网 | 中文字幕一区在线观看视频 | 亚洲天堂一区二区 | 久久精品亚洲成在人线av网址 | 久久新 | 亚洲一区中文字幕 | 午夜寂寞影院列表 | 久久久久久蜜桃一区二区 | 九九热免费视频在线观看 | 国产在线精品一区二区 | 牛牛热在线视频 | 91玖玖| 美女福利网站 | 日韩高清一区 | 国产美女永久免费无遮挡 | 成在线人视频免费视频 | www.国产精 | 亚洲一区在线日韩在线深爱 | 久久久91精品国产一区二区精品 | 天天久|