找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2416|回復: 8
收起左側(cè)

51單片機串口中斷被定時中斷打斷怎么解決?

[復制鏈接]
ID:302293 發(fā)表于 2023-7-11 16:37 | 顯示全部樓層 |閱讀模式
        stc51 開啟定時器,串口中斷就不能用了,怎么配置優(yōu)先級
回復

使用道具 舉報

ID:1085441 發(fā)表于 2023-7-11 22:49 | 顯示全部樓層
建議只用定時器中斷,串口改為查詢方式,注意查詢時間間隔小于一個字節(jié)的發(fā)送時間。
回復

使用道具 舉報

ID:1088156 發(fā)表于 2023-7-12 00:46 | 顯示全部樓層
可以參考這個經(jīng)過試驗證明的
https://blog.csdn.net/qq_42011552/article/details/103318349
回復

使用道具 舉報

ID:116103 發(fā)表于 2023-7-12 07:45 | 顯示全部樓層
不設置優(yōu)先級時,中斷中串口中斷是優(yōu)先級最低的,可以設置中斷優(yōu)先級寄存器IP中的PS=1, 串口的中斷優(yōu)先級就是最高的了
回復

使用道具 舉報

ID:302293 發(fā)表于 2023-7-12 07:56 | 顯示全部樓層
cnfloatleaf 發(fā)表于 2023-7-11 22:49
建議只用定時器中斷,串口改為查詢方式,注意查詢時間間隔小于一個字節(jié)的發(fā)送時間。

  不能同時用這兩個中斷嗎?
回復

使用道具 舉報

ID:320306 發(fā)表于 2023-7-12 09:16 | 顯示全部樓層
定時器和串口不能都配置成定時器2,一個用定時器1  一個用定時器2就可以了,經(jīng)常這樣用,沒有問題。
回復

使用道具 舉報

ID:161164 發(fā)表于 2023-7-12 09:31 | 顯示全部樓層
"串口中斷就不能用了"是如何不能用?
回復

使用道具 舉報

ID:123289 發(fā)表于 2023-7-14 17:37 | 顯示全部樓層
本帖最后由 yzwzfyz 于 2023-7-15 09:37 編輯

串行一個字節(jié)需要幾個ms(假設10ms,與波特率有關)。只要在這個期間內(nèi),能讓串口得到一次中斷,下載到這個字節(jié),就可以了。
所以,比串口高級的中斷服務程序(如T0,INT0……),執(zhí)行時間不要超過10ms。否則串口將可能失去一個字節(jié)。
這就是中斷服務程序要盡可能短的最好例子。
這是高手必備的知識點。也是編程的要領。
回復

使用道具 舉報

ID:401564 發(fā)表于 2023-7-15 09:22 | 顯示全部樓層
串口發(fā)送過程和接收的過程,都是不占用主程序時間的
采用定時器目的就是為了時間準確
串口采用中斷就是為了不錯過接收
兩個事件都重要
最好的處理是:串口中斷只做清除中斷標志位和數(shù)據(jù)的保存,這兩個事情,數(shù)據(jù)處理放在主程序中執(zhí)行
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表