CH32V307 串口+DMA 發(fā)送數(shù)據(jù) DMA發(fā)送第一次成功,第二次開始DMA中斷觸發(fā)但一直被掛起

硬件:CH32V307V-R1-1V0 官方demo板

CH32V307? 串口+DMA 發(fā)送數(shù)據(jù),代碼刪減只剩串口,僅僅在main循環(huán)1S打印“hello world”。

第一次發(fā)送DMA可以正常觸發(fā)完全傳輸中斷也可以清除中斷標(biāo)志位,第二次循環(huán)可以正常打印“hello world”,但這時候不會進入DMA中斷處理函數(shù)。從寄存器看,DMA中斷已使能,標(biāo)志位也已置位,PFIC 中斷掛起狀態(tài)寄存器顯示DMA中斷掛起,無法進入DMA中斷。

這個問題能否幫忙分析一下?附件提供原工程


icon_rar.gifBootLoader.zip


整個串口框架流程從以前STM32工程移過來的,框架應(yīng)該沒問題,由于第二次的DMA發(fā)送完成中斷沒進入,沒法清除串口忙標(biāo)志,導(dǎo)致第三次發(fā)送一直卡在忙標(biāo)志位判斷中,這時候MCU一直在while循環(huán)中什么也沒干,DMA傳輸完成標(biāo)志已置位,中斷一直被掛起。這里沒弄明白為什么會掛起?為什么不會搶占?


您好,中斷函數(shù)需要添加中斷聲明的,如下圖,你可以在程序中參照下圖添加一下中斷聲明試一下

image.png


解決了,加了聲明確實可以了感謝!??

以前用Cortex-M不需要,沒留意到這一點。但奇怪,編譯器沒報錯,第一次中斷也可以進,沒往這點去想....


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频