硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1441|回复: 2
收起左侧

請問DMA中斷問題

[复制链接]

13

主题

38

回帖

77

积分

初级会员

积分
77
发表于 2018-4-20 10:21:07 | 显示全部楼层 |阅读模式
請問各位一個問題,
我啟用dma中的DMA_IT_TC的中斷來接收UART的資料,並啟用UART1中的USART_IT_IDLE中斷來判斷資料是否接收完成,
接收完後,在USART_IT_IDLE中斷內將DMA指標回歸原來地址。

但測試中發現,在USART_IT_IDLE中使用DMA_Cmd(XXX,DISABLE)關閉DMA時,會觸發TCIF的旗標。當離開USART_IT_IDLE中斷副程式後,
會馬上進入DMA_IT_TC的中斷,請問這是正常嗎? 或者是我設定有錯誤呢? 感謝~
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107626
QQ
发表于 2018-4-20 10:41:58 | 显示全部楼层
仅调用这个DMA_Cmd不行,你要等待关闭完成,然后清楚所有标志。 QQ截图20180420103908.png


具体你说的这个空闲中断,你研究下。
回复

使用道具 举报

13

主题

38

回帖

77

积分

初级会员

积分
77
 楼主| 发表于 2018-4-20 11:25:13 | 显示全部楼层
本帖最后由 victor0726 于 2018-4-20 11:45 编辑

謝謝eric2013的回覆,
加了您提供的方式後,DMA_Cmd(XXX,DISABLE)還是會觸發TCIF的旗標, 只有在執行 DMA_Cmd(XXX,DISABLE)前,
先用DMA_ITConfig(XXX,DMA_IT_TC,DISABLE)將TCIF旗標關閉,再執行DMA_Cmd(XXX,DISABLE),才不會讓中斷pending。
謝謝喔~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-6-8 02:34 , Processed in 0.158556 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表