DMA串口1发送+printf函数的DMA实现,解放CPU

[复制链接]
569|0
 楼主| 你说说说说 发表于 2020-4-26 17:56 | 显示全部楼层 |阅读模式
我用的是HAL库,实现的串口1 的DMA传输。具体配置见附件代码。下面介绍下printf的DMA实现:
/**
*printf打印函数
* @param format        printf格式
*/
void printf_dma(const char *format, ...)
{
        uint32_t length;
        va_list args;
        
        while((USART1->SR&0X40)==0);//循环发送,直到发送完毕
        va_start(args, format);
        length = vsnprintf((char*)print_buffer, sizeof(print_buffer), (char*)format, args);//格式化内容
        va_end(args);
        USART_DMA_SendData(&huart1, print_buffer, length);//发送
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

355

主题

355

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部