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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3959|回復(fù): 9
收起左側(cè)

單片機(jī)串口SBUF數(shù)據(jù)接收問題,如何判斷接受程序?yàn)?111?

[復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 20 黑幣 回復(fù)本帖可獲得 20 黑幣獎(jiǎng)勵(lì)! 每人限 1 次
ID:661664 發(fā)表于 2020-7-15 14:59 | 顯示全部樓層 |閱讀模式
你好 想向你請(qǐng)教一個(gè)問題 就是我想判斷接收的數(shù)據(jù)為1111應(yīng)該怎么做?現(xiàn)在只能接收判斷一個(gè)字符,自己改過(guò)用字符數(shù)組接收但還是不能實(shí)現(xiàn)

void Usart() interrupt 4   //串口相應(yīng)中斷

{
  char buf;
  
        if(RI == 1 && receiveFlag == 0)
        {
                RI = 0;//清除接收中斷標(biāo)志位
                buf = SBUF;
                if(buf =='1')
                {
                 receiveFlag = ’1‘;                                                                                                                                                                                                                                          
                }
  }
回復(fù)

使用道具 舉報(bào)

ID:332444 發(fā)表于 2020-7-16 08:55 | 顯示全部樓層
char接收1111已經(jīng)超范圍了,用int變量接收。
回復(fù)

使用道具 舉報(bào)

ID:332444 發(fā)表于 2020-7-16 08:58 | 顯示全部樓層
本帖最后由 xianfajushi 于 2020-7-17 06:42 編輯

驗(yàn)證一個(gè)串口能接受的數(shù)據(jù)范圍有多種方法,比如我寫的發(fā)送251-255的值,接收端判斷是否大于250是就取余顯示數(shù)碼。
錄像15_轉(zhuǎn).gif
51hei.png
回復(fù)

使用道具 舉報(bào)

ID:661664 發(fā)表于 2020-7-16 09:10 | 顯示全部樓層
xianfajushi 發(fā)表于 2020-7-16 08:55
char接收1111已經(jīng)超范圍了,用int變量接收。

我試過(guò)用int 類型 還是不行啊
回復(fù)

使用道具 舉報(bào)

ID:267719 發(fā)表于 2020-7-16 09:23 | 顯示全部樓層
#define MaxReceiveLen 100
unsigned int ReceiveCount=0;
unsigned char ReceiveDat[MaxReceiveLen];
void Usart() interrupt 4   //串口相應(yīng)中斷
{
        if(RI == 1 && receiveFlag == 0)
        {
                RI = 0;//清除接收中斷標(biāo)志位
                ReceiveDat[ReceiveCount]= SBUF;                ReceiveCount++;
                if (ReceiveCount>=MaxReceiveLen)
                {
                   //接收緩存溢出處理
                   ReceiveCount=0;
                }
                if (ReceiveCount>=4)
                {
                    if (memcmp(&ReceiveDat[ReceiveCount-4],"1111",4)==0)
                    {
                          receiveFlag =1;
                          ReceiveCount=0;
                    }
                }
        }
}

回復(fù)

使用道具 舉報(bào)

ID:332444 發(fā)表于 2020-7-16 13:54 | 顯示全部樓層
更正一下,剛研究了一下串口一次能接收的數(shù)據(jù)范圍應(yīng)從0-255這個(gè)值范圍,因此是無(wú)法使用int類型接收的。
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2020-7-17 07:01 | 顯示全部樓層
//數(shù)據(jù)格式 A 1 1 1 1

unsigned char buf[5];
bit flag=0;

void Usart() interrupt 4
{
        static unsigned char num=0;        //靜態(tài)變量
        RI=0;                                                //接收中斷請(qǐng)求標(biāo)志位清0
        buf[num]=SBUF;                                  //保存SBUF接收到的數(shù)據(jù)
        if(buf[0]=='A')                                //驗(yàn)證數(shù)據(jù)頭 OK-繼續(xù)接收 NO-被下一個(gè)數(shù)據(jù)覆蓋
        {
                num++;
                if(num>=5)
                {
                        num=0;
                        flag=1;                                //接收完成標(biāo)志置1
                }
        }
}

void parsing()//在主函數(shù)中調(diào)用
{
        unsigned char i;
        if(flag==1)
        {
                flag=0;
                if(buf[1]=='1' && buf[2]=='1' && buf[3]=='1' && buf[4]=='1')
                {
                        //任務(wù)
                }
                for(i=0;i<5;i++)
                        buf[i]=0x00;//清除緩存
        }
}


回復(fù)

使用道具 舉報(bào)

ID:801878 發(fā)表于 2020-7-28 09:59 | 顯示全部樓層
定義的變量超過(guò)量程,建議用long
回復(fù)

使用道具 舉報(bào)

ID:367460 發(fā)表于 2020-7-28 10:15 | 顯示全部樓層
BUF是一個(gè)8位的寄存器,你的1111超了, 你要么先發(fā)高八位,再發(fā)低八位試試
回復(fù)

使用道具 舉報(bào)

ID:808700 發(fā)表于 2020-7-28 10:22 | 顯示全部樓層
你可以加個(gè)變量K,判斷值為1時(shí),k+1,對(duì)K進(jìn)行判斷,k=4時(shí),說(shuō)明接受到了1111,其后清零,這個(gè)過(guò)程中有一次接受到0.   k也直接清零
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 97影院在线午夜 | 精品福利视频一区二区三区 | 中文字幕二区三区 | 亚洲九色| 国产精品1 | 国产亚洲高清视频 | 国产精品久久久久久 | 奇米久久久 | 四虎影视1304t | 亚洲精品99999 | 日本a网站| 国产视频在线观看一区二区三区 | 四虎最新视频 | 久久视频免费看 | 91精品国产一二三 | 国产精品国产a | 色婷婷国产精品 | 精品在线看 | 日韩免费成人av | 国产不卡在线观看 | 欧美成人a∨高清免费观看 老司机午夜性大片 | 日本视频免费观看 | 一区二区成人 | 国产精品亚洲一区二区三区在线 | 国产一二三区免费视频 | 日韩综合在线 | 中文字幕视频在线 | av资源网站 | 日韩中文不卡 | 婷婷国产一区二区三区 | 久久精品电影 | 欧美性tv| 91视频在线| 亚洲高清视频在线观看 | 超碰人人做 | 天天草狠狠干 | 天天爽夜夜爽精品视频婷婷 | 男女污污网站 | 国产一级片网站 | 国产午夜精品一区二区三区嫩草 | 欧美在线视频网 |