ST意法半导体
直播中

郭大

10年用户 955经验值
擅长:嵌入式技术
私信 关注
[问答]

如何解决STM32L0存在的DMA错误?

嘿!
我正在尝试使用以下代码和 CubeMX 配置通过 DMA 通过 UART 发送消息(附图)
  • char welcome[] = "hi!rn";
  •   HAL_UART_Transmit_DMA(&huart2, (uint8_t*) welcome, strlen(welcome));
没有其他改变。
MCU 不发送任何东西。“HAL_UART_Transmit_IT”和“HAL_UART_Transmit”函数起作用。
我正在使用 NUCLEO-L010,尝试与另一个 NUCLEO-F303 板完全相同的配置,并且“HAL_UART_Transmit_DMA”按预期工作。
代码在调试期间不会卡住或给出任何错误消息。
我错过了什么?







回帖(1)

李维兴

2022-12-28 09:47:59
模块初始化的顺序很重要。DMA 初始化之后是 USART 初始化(反之亦然)。可以在 CubeMX 中更改顺序。


  • /* Private function prototypes -----------------------------------------------*/
  • void SystemClock_Config(void);
  • static void MX_GPIO_Init(void);
  • static void MX_DMA_Init(void);
  • static void MX_USART2_UART_Init(void);
举报

更多回帖

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