如圖,向串口發(fā)送數(shù)據(jù)時,能夠觸發(fā)接收中斷,但無法觸發(fā)空閑中斷,在串口配置中已經(jīng)把接收、空閑中斷打開了
芯片是CH32V103C8T6
您好,以下幾個點需要注意一下:
1、中斷函數(shù)注意要加中斷聲明;
2、串口初始化中要注意使能開啟空閑中斷;
3、關(guān)于空閑中斷標(biāo)志位的清楚,先讀狀態(tài)寄存器再讀數(shù)據(jù)寄存器清楚該位,如下圖
附件為V103串口空閑中斷例程,可以參考一下。后續(xù)若有問題,可郵箱(lzs@wch.cn)溝通
印象中,狀態(tài)寄存器也要一并清除的。
還有就是這單片機抗干擾是很弱的,是不是干擾太大了?是不是144MHz最高主頻運行了?
曾經(jīng)仿真時電腦主機漏電導(dǎo)致串口一大堆亂七八糟數(shù)據(jù),曾經(jīng)手碰到開發(fā)板的GND都能觸發(fā)串口中斷...
所以現(xiàn)在全部都弄到DMA收發(fā),查詢串口空閑狀態(tài)IDLE認(rèn)為接收完成、查詢串口發(fā)送完成標(biāo)識TC認(rèn)為發(fā)送完成,不弄那么多中斷浪費沒必要的CPU。
空閑中斷是打開的,但是進不來,還沒有走到清除中斷標(biāo)志位那一步
您好,若方便可將工程發(fā)至我的郵箱(lzs@wch.cn),這邊具體看一下
您好,工程文件已發(fā)送至您的QQ郵箱,請注意查收,麻煩您了
您好,工程中中斷函數(shù)注意加中斷聲明,參考下圖。我看你工程中中斷函數(shù)都沒有加中斷聲明。此外工程中打印串口使用的是串口1,你可以改為使用串口3,不然兩個串口1沖突了。
問題已解決,非常感謝!在函數(shù)聲明后加入樓上圈出的內(nèi)容即可正常執(zhí)行中斷函數(shù)