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

標題: 關(guān)于串口收發(fā)多字節(jié) [打印本頁]

作者: yzcook    時間: 2018-6-6 15:16
標題: 關(guān)于串口收發(fā)多字節(jié)

我想把它改成 我在串口助手發(fā)多少個字節(jié) 它就接收多少個字節(jié)并返回到串口助手上 返回的格式為
發(fā)送 1 2 3  返回 31 32 33
現(xiàn)在這個程序是必須要每次發(fā)送四個字節(jié)才行,如果每次發(fā)送一個字節(jié) 則要發(fā)送四次才能接收


作者: yzcook    時間: 2018-6-6 15:17
程序如下  麻煩大神幫我想想


#include <stc12c5a32s2.h>
#include "usart.h"
#include "delay.h"

#include<intrins.h>
#define uchar unsigned char
#define uint  unsigned int


uchar num = 0;
uchar flag=0;
uchar i;
uchar n;
uchar RBuf[4];

/*------------------主程序--------------------*/
void main(void)
{        
//        uchar key ;
        Delay1ms();
        
        ConfigUART();
        lcd_init();
        lcd_clr();
//        key = Key_Scan();
        dprintf(16,0,"歡 迎 光 臨",0);
        

        while(1)
        {        

                if(flag == 1)//當接收到數(shù)據(jù)
                {
                        ES = 0;//關(guān)閉串口中斷
                        for(i=0;i<4;i++)
                        {
                                SBUF = RBuf[i];
                                while(!TI); TI = 0;
                        }                                                        
                        ES = 1;
                        flag = 0;
                        num = 0;

                }


}




void Uart_Isr() interrupt 4 using 1
{        
        if(RI)
        {        
          RBuf[num] = SBUF;
                while(!RI);
                RI = 0;
                num++;
        }
        if(num == 4)  flag = 1;

        

}
作者: liyu123    時間: 2018-6-6 16:17
串口接收,必須把緩存的數(shù)據(jù)讀出,然后下個數(shù)據(jù)才能發(fā)送, 你可以有數(shù)據(jù)發(fā)送過來就直接接收,然后數(shù)據(jù)滿4個再進行數(shù)據(jù)處理
作者: wulin    時間: 2018-6-6 21:11
yzcook 發(fā)表于 2018-6-6 15:17
程序如下  麻煩大神幫我想想

#include <AT89X52.H>
#define uint unsigned int
#define uchar unsigned char
uchar flag;                //接收完成標志,
uchar a;                //收發(fā)變量
void main()                                                       
{
        TMOD=0x20;//定時器1方式2(8位重載)
        TH1=0xfd; //波特率9600
        TL1=0xfd; //波特率9600
        TR1=1;        //開定時器1
        REN=1;        //允許串行接收
        SM0=0;        //設(shè)置串口方式1(8位UART波特率可變)
        SM1=1;        //設(shè)置串口方式1(8位UART波特率可變)
//        PCON=0x80;        //波特率加倍9600*2
        EA=1;        //總中斷開
        ES=1;        //串口中斷開
        while(1)
        {
                if(flag==1)                //接收完成標志為1
                {
                        ES=0;                //關(guān)串口中斷
                        flag=0;                //接收完成標志清0
                        SBUF=a+'0';                //發(fā)送數(shù)據(jù)
                        while(!TI);        //等待發(fā)送中斷請求標志位為1
                        TI=0;                //發(fā)送中斷請求標志位清0
                        ES=1;                //開串口中斷
                }
        }
}

void ser() interrupt 4
{                                //當接收完成發(fā)生中斷請求RI由硬件置1
                RI=0;        //接收中斷請求標志位清0,必須軟件清0
                a=SBUF;//獲取SBUF接收到的數(shù)據(jù)
                flag=1;//接收完成標志置1
}







歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美日韩理论 | 韩日在线 | 91久久久久久久久久久久久 | 久久久久精 | 精品一区二区久久久久久久网精 | 777zyz色资源站在线观看 | 亚洲综合视频一区 | 日韩在线中文 | 欧美a在线 | 国产男女视频网站 | 亚洲一区二区三区久久久 | 国产一区不卡 | 99亚洲精品 | 亚洲九九精品 | 国产福利91精品一区二区三区 | 成人亚洲网站 | 亚洲日本一区二区三区四区 | 精品久久网 | 成人免费在线小视频 | 国产精品美女在线观看 | 欧美日韩中文字幕在线 | 国产精品人人做人人爽 | 国产精品亚洲成在人线 | 91亚洲国产亚洲国产 | 日韩高清国产一区在线 | 久久国产日韩欧美 | 三区在线观看 | av手机在线播放 | 播放一级黄色片 | 中文字幕高清 | 国产女人与拘做视频免费 | 国产精品高清在线 | 天天干狠狠干 | 中文字幕国产精品 | 亚洲毛片| 久久99精品视频 | 精品视频久久久 | 久草中文在线观看 | 激情福利视频 | 在线视频91 | 国产精品久久久久久婷婷天堂 |