蓝桥杯物联网竞赛_STM32L071_20_用printf将数据显示在OLED上

需求:

第十五届国赛确实有点变态,显示部分大概有6个所以需要大量将sprintf与OLED_ShowString配合使用才能显示相应格式的数据,所以我在想能不能简化一下这一部分直接用写好的printf语句将数据显示到显示屏上呢?

代码:

#include <stdarg.h>
void myprintf(unsigned char address, const char* format, ...) {
    char ARRAY[40];
	
	  // 使用va_list和va_start来处理可变参数
    va_list args;
    va_start(args, format);

    // 使用vsprintf将可变参数列表格式化的字符串存储到ARRAY中
    vsprintf(ARRAY, format, args);
    
    // 清理可变参数列表
    va_end(args);

    // 假设OLED_ShowString函数可以在OLED屏幕上显示字符串
    OLED_ShowString(address, (unsigned char*)ARRAY);
}

思路是将需要传入的格式和数据进行整合再用OLED_ShowString函数直接输出,这样只需调用myprintf函数即可,其用法和printf完全一致,效果也一样,只不过多了一个第一个参数address,其中address设置为0将数据显示到OLED的第一行设置为2将数据显示到第2行

...意思是可变参数,就是可以输入多个参数

效果:

在这里插入图片描述
在这里插入图片描述

和printf函数的功能是一样的,面对较复杂的工程重构一下OLED_ShowString成myprintf还是很高效的

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-06-11 17:32:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-11 17:32:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-11 17:32:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-11 17:32:05       18 阅读

热门阅读

  1. 王冲解读:商业模式如何创新重塑行业生态

    2024-06-11 17:32:05       12 阅读
  2. 重介降浊一体化设备处理煤矿等重浊度污水

    2024-06-11 17:32:05       8 阅读
  3. 使用 Docker Compose 编排 Django 应用

    2024-06-11 17:32:05       7 阅读
  4. Rhino Linux 2024.1

    2024-06-11 17:32:05       9 阅读
  5. 第一章 - 第4节-计算机软件系统 - 课件

    2024-06-11 17:32:05       7 阅读
  6. 37、Flink 的 WindowAssigner之会话窗口示例

    2024-06-11 17:32:05       7 阅读
  7. C语言Socket实现Http的post请求

    2024-06-11 17:32:05       10 阅读