项目场景:
提示:这里简述项目相关背景:
为了实现车间通信新增了一个利用函数
HAL_UART_Transmit_DMA
进行串口DMA发送的代码
其中函数HAL_UART_Transmit_DMA
用到的串口句柄UART_HandleTypeDef * huart
是类里面的成员
通过调用对象的初始化函数传递进去
问题描述
DMA发送函数只能被调用一次
在测试车间通信时,信息的接收是正常的
但发送信息只能发送一次,每次都是第一次发送成功,
后面的发送都没法被另一个机器人接收
状态位无法被重置
逐步debug DMA发送函数
HAL_UART_Transmit_DMA
发现函数会对串口句柄的一个状态位gState
进行判断
只有在huart->gState==HAL_UART_STATE_READY
的时候
才会正常进行发送
而第一次发送可以成功,便是因为一开始
gS