|
使用DMA+IDLE HAL库方式接收串口不等长数据 接收到的所有数据均正常 但是收到15个字节的数据后 一执行清除IDLE标志位 (__HAL_UART_CLEAR_IDLEFLAG(&huart1); )就进入HardFault_Handler错误中断,但是收到<15个字节的数据都是正常的,我每次使用dma方式接收都是50个字节(HAL_UART_Receive_DMA(&huart1, (uint8_t *)&userUart.userUart1.ReciveBuff, 50);) 我查了些资料 通过R13寄存器里面存的地址找出来最后一条执行的程序 是__HAL_UART_CLEAR_IDLEFLAG(&huart1); 执行完这一条后就进入错误中断了
|
调用HAL_FLASH_OB_Unlock()直接进入 HardFaultHandler
串口DMA收发出现ORE错误
STM32F405ZGT6 批次22+ 问下这颗料,60度烘烤12小时后,出现鼓包,是怎么回事? 原厂有标准的烘烤温度范围 跟时长范围吗?
STM32F3系列SDADC外部触发 DMA运输的bug
STM32 增加 WiFi + 以太网的低成本方案
NUCLEO G474RE无法运行程序
非官方开发板第一次下载成功,之后就各种失败
在RS485通信中如何有效避免误码,距离5米,速率115200
STM32F407VGT6 开发板Beak at address "0x0" with no debug information our outside
STM32H5F/E 相比 STM32F4 系列最大的优势是什么?
微信公众号
手机版
理论上分析,可能是接收的数据长度超出导致,检查一下userUart.userUart1.ReciveBuff的定义,是不是大于50。
我把__HAL_UART_CLEAR_IDLEFLAG(&huart1);清除标志位去掉 还是不可以 接收13个字节正常 接收15个字节直接进入错误中断了
[md]我同时开启了六个串口的DMA 每一个DMA接收都是50个字节 我发现我六个串口每一个DMA接收是40的时候整个程序就正常了 正常跑了两边程序又这样进错误中断了 我再改小dma每次接收的字节也没用额
另外,注意内存是否越界了。