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

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

QQ登錄

只需一步,快速開始

搜索
查看: 1402|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)串口定時(shí)中斷超時(shí)接收 附源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:948358 發(fā)表于 2022-6-5 13:01 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
借助T0定時(shí)器,不斷的計(jì)數(shù)+1
    接收到一幀數(shù)據(jù)(1Byte)后,串口中斷服務(wù)函數(shù)將定時(shí)器T0計(jì)數(shù)清0(類似喂狗),并創(chuàng)建一個(gè)計(jì)數(shù)標(biāo)志
    一幀數(shù)據(jù)(1Byte)長度約為1.04ms[9600bps,1,0,1]。當(dāng)串口中斷數(shù)據(jù)接收完畢后,短時(shí)間無有效數(shù)據(jù)接收并進(jìn)入中斷服務(wù)函數(shù),此時(shí)T0計(jì)數(shù)器不被清0,不斷累加
    持續(xù)檢測(cè)到大于固定時(shí)間時(shí),認(rèn)為此刻一串?dāng)?shù)據(jù)已傳輸完畢。
    固定時(shí)間間隔一般設(shè)置3-5倍的一幀數(shù)據(jù)長度(1.04ms)

UART中斷服務(wù)函數(shù)處理:
    接收到一個(gè)字節(jié),打開T0計(jì)數(shù)軟件標(biāo)志,清一次計(jì)數(shù)器(計(jì)數(shù)器在T0定時(shí)器中一直在+1)
  1. void uart_ISR() interrupt 4
  2. {               
  3.         if(RI)
  4.         {
  5.                 RI = 0;
  6.                 timer_start = 1;                        //1. 接收到一幀數(shù)據(jù)時(shí),打開T0軟件計(jì)數(shù)器開始計(jì)數(shù)
  7.                 recv_buf[recv_Cnt] = SBUF;
  8.                 recv_Cnt++;               
  9.                 if(recv_Cnt >= MAX_LENGTH)                //超出開辟數(shù)組的保護(hù)處理,剩余掐斷
  10.                 {
  11.                         recv_Cnt = MAX_LENGTH;
  12.                 }
  13.                 ctimer_Cnt = 0;                                //3. 一幀數(shù)據(jù)接收完成后,將T0計(jì)數(shù)單元清0,類似喂狗。但T0一直累加        
  14.         }
  15. }
復(fù)制代碼

T0定時(shí)中斷服務(wù)函數(shù)處理:
接收到串口一個(gè)字節(jié)數(shù)據(jù)到達(dá)標(biāo)志,開始計(jì)數(shù)+1。判斷計(jì)數(shù)累計(jì)循環(huán)次數(shù),確定一串?dāng)?shù)據(jù)已發(fā)送完成

  1. void Timer0_ISR() interrupt 1
  2. {        
  3.         TR0 = 0;        //進(jìn)T0中斷首先關(guān)閉定時(shí)器
  4.         if(timer_start)
  5.         {
  6.                 ctimer_Cnt++;                                        //2. 接收到一幀數(shù)據(jù)后,定時(shí)時(shí)間計(jì)數(shù)單元開始計(jì)數(shù)
  7.                 if(ctimer_Cnt > MAX_RECV_TIME)                //4. 一串?dāng)?shù)據(jù)接收完成后,下一幀無數(shù)據(jù),此時(shí)ctimer_Cnt一直被累加,
  8.                 {                                                                        // 當(dāng)計(jì)時(shí)大于3ms,認(rèn)為一串?dāng)?shù)據(jù)已接收完成,將完成標(biāo)志置1
  9.                         ctimer_Cnt = 0;                        
  10.                         recv_flag = 1;
  11.                         cRealLen = recv_Cnt;        //5. 一串?dāng)?shù)據(jù)傳輸完畢后,將實(shí)際長度輸出,生成數(shù)組recv_buf[],由主函數(shù)處理解析                                
  12.                         recv_Cnt = 0;                                       
  13.                 }
  14.         }               
  15.         TL0 = 0x66;                //裝初值
  16.         TH0 = 0xFC;
  17.         TR0 = 1;                //打開定時(shí)器T0
  18. }
復(fù)制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:390416 發(fā)表于 2022-6-6 10:50 | 只看該作者
單片機(jī)發(fā)送到串口助手,以及串口助手顯示到LCD1602
http://www.zg4o1577.cn/bbs/dpj-214747-1.html
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产黄色大片 | 国产成人精品一区二区三区 | 午夜寂寞影院在线观看 | 干干干操操操 | 91在线精品视频 | 日韩视频高清 | 国产精品亚洲第一区在线暖暖韩国 | 久久久久久久久久久久久9999 | 久久精品中文 | 日韩精品久久久久 | 日韩欧美国产成人一区二区 | 国产日韩精品在线 | 免费污视频 | 综合一区二区三区 | 天天影视网天天综合色在线播放 | 国产视频在线观看一区二区三区 | 91久久夜色 | 国产二区在线播放 | 欧美综合一区二区三区 | 天天看天天摸天天操 | 97伦理电影网 | 福利精品在线观看 | 欧美一区永久视频免费观看 | 一区二区三区免费 | 一级a毛片| wwwww在线观看 | 国产精品久久久久久久7电影 | 黄色在线网站 | 欧美在线a | 欧美色性| 99久视频| 欧美一级久久久猛烈a大片 日韩av免费在线观看 | aaaaaaa片毛片免费观看 | 成人精品免费视频 | 在线资源视频 | 精品亚洲一区二区 | 成人看片在线观看 | 久久www免费人成看片高清 | 成人伊人网| 久久久久久国产精品久久 | 精品久久久久久久久久久久久久 |