zoukankan      html  css  js  c++  java
  • STM32CubeIDE printf 多个串口

    自定义USART_printf如下

    #include <stdarg.h>//加上头文件
    
    #define CMD_BUFFER_LEN 255
    
    void USART_printf (UART_HandleTypeDef *huart,char *fmt, ...)
    {
        char buffer[CMD_BUFFER_LEN+1];
        uint8_t i = 0;
    
        va_list arg_ptr;
        va_start(arg_ptr, fmt);
        vsnprintf(buffer, CMD_BUFFER_LEN+1, fmt, arg_ptr);
        while ((i < CMD_BUFFER_LEN) && buffer[i])
        {
            HAL_UART_Transmit(huart,&buffer[i++],1,0xFFFFFFFFU);//这里的huart就是指针类型的不要再取地址,而buffer是数组类型需要取地址
        }
        va_end(arg_ptr);
    }

    使用方法如下:

      USART_printf(&huart1,"%s is %d years old
    ","Li Ming",15);//在串口1中打印信息
      USART_printf(&huart2,"%s is %d years old
    ","Wang Fei",16);//在串口2中打印信息

    不同的串口同时打印信息结果如下

  • 相关阅读:
    PDO应用
    分页查询
    PHP去除数组中重复数据的两个例子
    数据库访问(现用基本格式)
    克隆、加载类
    抽象类和接口
    静态
    PHP基础
    数据库的常用函数
    数据库的高级查询
  • 原文地址:https://www.cnblogs.com/lizhiqiang0204/p/12336030.html
Copyright © 2011-2022 走看看