使用STM32的USART与主机设备通讯,主机设备每隔50ms会与STM32的USART通讯一次,使用ADC 的DMA功能采集数据,再通过USART把数据传输给主机设备,USART和DMA中断同时开启时会造成硬件错误HardFault_Handler?分开使用时没有问题,USART中断优先级比DMA的高,有没有人知道什么原因啊, |
使用的是STM32哪个系列的呢?支持中断嵌套吗?可以试试在进入中断后关闭总中断( __disable_irq() ),退出时再开启总中断( __enable_irq() )试试 |
使用的是STM32F103RE,支持中断嵌套的 |
USART和DMA读写内存时可能出现竞争了,USART发送数据其实无需采用中断方式,等DMA中断来了,就发送数据不就OK了? |
主要不是发送数据,什么时候发送数据可以控制,主要是中断接收数据 |
我认为大部分的外部设备中断优先级都不能高于DMA。 |
通过仿真调试看看发生的HardFault上一步在什么位置,很多时候会有一些线索的。 通常发生访问地址错误的概率比较高。 |