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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3317|回復: 3
打印 上一主題 下一主題
收起左側

關于串口收發多字節

[復制鏈接]
跳轉到指定樓層
樓主
ID:305998 發表于 2018-6-6 15:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

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

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

使用道具 舉報

沙發
ID:305998 發表于 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)//當接收到數據
                {
                        ES = 0;//關閉串口中斷
                        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;

        

}
回復

使用道具 舉報

板凳
ID:346225 發表于 2018-6-6 16:17 | 只看該作者
串口接收,必須把緩存的數據讀出,然后下個數據才能發送, 你可以有數據發送過來就直接接收,然后數據滿4個再進行數據處理
回復

使用道具 舉報

地板
ID:213173 發表于 2018-6-6 21:11 | 只看該作者
yzcook 發表于 2018-6-6 15:17
程序如下  麻煩大神幫我想想

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

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


回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕在线免费观看 | 国产精品夜夜夜一区二区三区尤 | 另类视频在线 | 日韩免费视频一区二区 | 国产精品美女一区二区 | 国产精品无码专区在线观看 | 亚州精品天堂中文字幕 | 国产91在线播放 | 日本欧美在线 | 日韩欧美一区在线 | 精品美女视频在免费观看 | 欧美九九| 欧美舔穴 | www.国产91| 久久久久久亚洲精品 | 久视频在线观看 | 久久成人一区 | av喷水| 欧美日韩不卡 | 日韩欧美手机在线 | 国产精品2区 | 一二三四在线视频观看社区 | 久久久av | 国产在线精品一区二区 | 国产亚洲一区二区精品 | 99国产视频 | 中文字幕在线第二页 | 国产精品日韩在线观看一区二区 | 午夜视频网站 | 久久小视频 | 欧美性大战久久久久久久蜜臀 | 国产影音先锋 | 狠狠的干 | 国产高清在线观看 | 久久国产日本 | 中文字幕精品一区久久久久 | 自拍视频在线观看 | 国产精品成人在线 | 免费在线视频精品 | 日韩精品在线视频 | 亚洲综合视频 |