已设置环形,每次发送没有间隔,百度了没结果,故来望助
/* USER CODE BEGIN Header_StartDefaultTask */
/**
* @brief Function implementing the defaultTask thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_StartDefaultTask */
void StartDefaultTask(void const * argument)
{
/* USER CODE BEGIN 5 */
/* Infinite loop */
for (;;)
{
HAL_UART_Transmit_DMA(&huart1, "test111", 7);
osDelay(1000);
}
/* USER CODE END 5 */
}
DMA是独立于CPU的硬件,设置完毕后自己就能工作,CPU不会干预,可以和CPU实现并行处理,上面的延时只是针对CPU的,对DMA没有效果,如果你要实现1秒发一次,建议设置成单次传输,每延迟一秒软件传输一次!!!
有可能osDelay函数库问题,用HAL_Delay吧
如果还是不行,自己写一个function用来延时
经过多次实验得出:https://blog.csdn.net/fengwangzhe000/article/details/118970713
HAL库的普及现在还有待提升~