问题描述:关闭 DMA 再进入睡眠模式后,偶尔会出现死在进入DMA1 Channel1 IROHandler(void)中断中。
原因分析: DMA 关执行汇编时到 DMA 硬件真正被关闭是有时间差的,该时间差内 ADO还是传输到 DMA,有极小概率出现满中断,而 DMA 时钟确在此时关闭了,导致无法清中断标志位。
解决方案:
调整代码步骤如下:(1) 关闭 ADC
(2)关闭 ADC 对应的 DMA 通道
(3) 关闭 DMA
(4)进入睡眠模式。
广东联科芯微电子有限公司旗下品牌Linkchip是一家提供嵌入式物联网解决方案的高科技企业。公司多年来致力于物联网行业的技术及市场推进,拥有嵌入式微控制技术、射频软硬件研发、通信等技术的深厚背景与丰富的实践经验。公司主要以半导体产品,单片机,蓝牙芯片,NFC读卡芯片、步进电机驱动/直流电机驱动、CAN FD RS485、LIN、RS232、CAN等产品为主,获得多个原厂品牌授权代理权(其中包含
极海品牌),以专业行业经验为客户提供产品选型设计,协助客户研发产品。业务范围已涉及:网络设备、移动市场、M2M、消费类电子、工业控制、游戏产业、智能仪表、汽车电子、存储和服务器等行业。
广东联科芯微电子有限公司代理的极海
APM32F103xC系列大量现货供应,欢迎大家
免费申请样品测试!