硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5056|回复: 2
收起左侧

[有问必答] Printf函数打印功能如何实现多个串口发送数据?

[复制链接]

11

主题

50

回帖

83

积分

初级会员

积分
83
QQ
发表于 2016-4-23 16:37:02 | 显示全部楼层 |阅读模式
如题,我是通过4个串口轮询采集数据
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2016-4-24 00:40:50 | 显示全部楼层
楼主的意思是多个串口轮询采集,然后这些串口还都可以通过printf打印数据,打印到上位机还是通过printf实现数据发送。
回复

使用道具 举报

8

主题

20

回帖

44

积分

新手上路

积分
44
发表于 2016-4-26 23:24:17 | 显示全部楼层
可以多个串口发送
不能同时接收。

uart_fifo.c 添加 :

#include <stdarg.h>  
#define  CMD_BUFFER6_LEN  1024
/*
*********************************************************************************************************
*    函 数 名: Uart6Printf
*    功能说明: 类似于printf
*    形    参: 同printf
*    返 回 值: 无
*********************************************************************************************************
*/

void Uart6Printf(char *fmt, ...)
{
      char buffer[CMD_BUFFER6_LEN - 1];
    u8 i = 0;
    u8 len;

    va_list arg_ptr; //Define convert parameters variable
    va_start(arg_ptr, fmt); //Init variable
    len = vsnprintf(buffer, CMD_BUFFER6_LEN+1, fmt, arg_ptr); //parameters list format to buffer

    while ((i < CMD_BUFFER6_LEN) && (i < len) && (len > 0))
    {
        USART_SendData(USART6, (u8) buffer[i++]);
        while (USART_GetFlagStatus(USART6, USART_FLAG_TC) == RESET);
    }
    va_end(arg_ptr);
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-14 02:39 , Processed in 0.039194 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表