加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專(zhuān)業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

STM32F407 DMA NVIC的設(shè)置問(wèn)題

12/17 13:17
255
閱讀需 3 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

提問(wèn)

采用STM32F407, DMA1 stream5(request: usart2_rx) DMA1 stream6(usart2_tx), USART2 global interrupt優(yōu)先級(jí)設(shè)置為1,1; STREAM5,STREAM6 GLOBAL INTERRUPT優(yōu)先級(jí)設(shè)置為0,0;

請(qǐng)問(wèn):NVIC設(shè)置中DMA1 STREAM5 GLOBAL INTERRUPT 和DMA1 STREAM6 GLOBAL INTERRUPT都已經(jīng)選擇了ENABLED, 但是是灰色顯示的,而USART2 global interrupt也選擇了ENALBED,但是是可以修改的狀態(tài);灰色不可修改的狀態(tài)是什么意思?

在串口有數(shù)據(jù)接收時(shí),是怎么調(diào)用中斷服務(wù)程序的,先調(diào)DMA1_stream5_IRQHandler(void)還是先調(diào)USART2_IRQHnalder(void)?

調(diào)試時(shí)只發(fā)現(xiàn)程序調(diào)用了USART2_IRQHANDLER?不知道正不正確?

最新回答

  • 1、中斷優(yōu)先級(jí)你根據(jù)各個(gè)中斷響應(yīng)優(yōu)先需求來(lái)設(shè)置。一般來(lái)講,在中斷事件不多且中斷服務(wù)程序都比較簡(jiǎn)潔時(shí),優(yōu)先級(jí)都設(shè)置一樣也問(wèn)題不大。
    在系統(tǒng)功能復(fù)雜,中斷眾多時(shí),優(yōu)先級(jí)的合理安排就顯得很重要了。

    2、你在cubeMx配置里看到DMA中斷使能是灰色時(shí),這里表示不能手動(dòng),CubeMx已經(jīng)默認(rèn)幫我使能DMA相關(guān)中斷響應(yīng)了。
    不必太過(guò)擔(dān)心。

    st-img

    3、你現(xiàn)在都開(kāi)啟了UART基于DMA方式的收發(fā),當(dāng)收到數(shù)據(jù)時(shí)無(wú)須手動(dòng)去查詢和提取數(shù)據(jù)了,因?yàn)镈MA幫完成了數(shù)據(jù)搬運(yùn)。我們只需基于
    DMA接收完成中斷去你設(shè)置的接收緩沖里提取數(shù)據(jù)并進(jìn)行可能的后續(xù)處理。

    建議稍微閱讀下UART基于DMA接收的相關(guān)例程。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜