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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7028|回復: 1
收起左側

[求助][求助]51單片機串口數據發送和定時器中斷問題

[復制鏈接]
ID:18028 發表于 2009-10-12 21:48 | 顯示全部樓層 |閱讀模式

單片機型號是AT89LS52

現在的程序結構是:

timer0:由蜂鳴器操作觸發,觸發期間大概每0.3毫秒中斷一次,中斷服務函數處理少量蜂鳴器代碼(7行);

timer1:從系統啟動到關機結束一直開啟,每2毫秒中斷一次,中斷服務函數處理代碼較多。

串口波特率:115200,由timer2產生;
中斷優先級串口最高,也即設置IP=0X10;
串口接收數據以中斷方式,發送數據以輪詢方式。


出現的問題是:

當timer0中斷觸發時(由蜂鳴器操作觸發),會嚴重影響串口通信,單片機在收到數據后要向上位機回復數據,上位機每次都能收到數據,但是收到的回復數據100次中會有30次左右為錯誤數據,最常見的是幀頭的首字符錯誤(應該為2,但是收到的為0)。

當屏蔽掉timer0中斷后,只有timer1中斷和串口中斷工作,上位機還是會有收到數據錯誤的問題,但錯誤的次數大為減少,而且若精簡timer1中斷服務函數中的代碼,錯誤還會繼續下降。若將timer1中斷由2ms改為30ms一次后,再不會發生串口發送數據錯誤問題。

我也是該開始接觸嵌入式編程,51也是第一次見,很多技術細節不甚清楚,那位仁兄有這方面的經驗,還望不吝賜教,尤其是怎么理清這些中斷間的關系和干擾?還串口發送數據(輪詢方式)時要注意的關鍵問題等。


估計是中斷時序混亂問題,我已經被困擾了2天了,很郁悶。

回復

使用道具 舉報

ID:7209 發表于 2009-10-14 08:39 | 顯示全部樓層

理解

     那郁悶很難受

    我也是有幾條指令需要用串口發送 可不只應該怎么寫

  

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产三级久久 | 蜜臀久久99精品久久久久宅男 | 狠狠久| 欧美又粗又长 | 精品亚洲一区二区 | 国产区精品 | 久久视频在线免费观看 | 久久精品欧美 | 久久久久久久久久一区二区三区 | 国产精品日韩在线 | 国产视频一区在线观看 | 成年人的免费视频 | 一区二区免费 | av在线免费网站 | 亚洲一区二区av | 91成人亚洲 | 午夜免费福利 | 长河落日电视连续剧免费观看 | 久久狠 | 国产精品久久久国产盗摄 | 99久久久久久 | 日本不卡在线视频 | 亚洲精品色 | 亚洲砖区区免费 | 在线观看免费毛片 | 国内精品一区二区三区 | 精品国产乱码一区二区三 | 国产美女视频 | 97久久久| 一级片免费在线观看 | 午夜av在线播放 | 九色精品 | 欧美在线视频一区二区 | 日韩在线成人 | 国产精品三级在线 | 午夜av片| 国产福利视频 | 国产视频在线观看视频 | 欧美精产国品一二三区 | 求av网址 | 国产精品久久久久久妇女6080 |