嵌入式技术论坛
直播中

张宇

7年用户 1657经验值
私信 关注
[问答]

使用cubemx配置串口dma出错怎么回事

st的芯片中,比如103,使用cubemx配置好串口dma后,会产生 Error_Handler与hdma_usart1_rx两个错误提示。
应该很容易发现,为什么大伙儿不解决这个?是有什么考虑吗?

回帖(4)

张虎豹

2022-9-21 11:19:54
这里确实需要优化下,ST的新HAL已经修改了Error_Handler的用法,之前的patch感觉已经对不上了
举报

张国厚

2022-9-21 11:20:14
我在使用中发现,这个错误和引用cubemx生成的头文件的位置有关系:
1.jpg
把#include “usart.h”这个cubemx生成的头文件放在最后就会报这个错误
1.jpg
把它移到前面就没有错误提示了
举报

张国厚

2022-9-21 11:20:27
cubemx 生成的RT-Thread 工程吗?还是只是更新了xxx_msp.c 文件? Error_Handler 是ST的,可以注释掉或使用:drv_common.h 中
hdma_usart1_rx 是自己的函数?
备注:技术需要学会变通
举报

夏日余晖

2022-9-21 11:21:36
我的解决方法如下:
stm32xx_hap_msp.c:

...
/* USER CODE BEGIN 0 */
// 这里放置函数可以避免被cubemx重新生成时覆盖。
/**
  * @Brief  This function is executed in case of error occurrence.
  * @retval None
  */
void Error_Handler(void)
{
  /* USER CODE BEGIN Error_Handler_Debug */
  /* User can add his own implementation to report the HAL error return state */
  __disable_irq();
  while (1)
  {
  }
  /* USER CODE END Error_Handler_Debug */
}
/* USER CODE END 0 */
/**
  * Initializes the Global MSP.
  */
void HAL_MspInit(void)
{
...
举报

更多回帖

发帖
×
20
完善资料,
赚取积分