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

需求:

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

代码:

c 复制代码
#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还是很高效的

相关推荐
逍遥德5 小时前
MQTT教程详解-04.SpringBoot集成MQTT(告别手动控制)
java·spring boot·物联网·中间件·iot·iotdb
项目題供诗9 小时前
STM32-TIM输入捕获(十四)
stm32·单片机·嵌入式硬件
国产电子元器件11 小时前
电流传感器的输出可以直接接示波器吗?
stm32·单片机·嵌入式硬件
坐望云起11 小时前
NFC 与 RFID 有什么区别?
物联网·rfid·nfc
老梁agent13 小时前
一个 IoT 架构师开始学 AI Agent
物联网
嵌入式小站13 小时前
STM32 零基础可移植教程 21:1602A 并口 4 位模式,先显示 Hello
stm32·单片机·嵌入式硬件
数字新视界14 小时前
当园区能耗管理面临挑战时,如何在系统中实现高效监控与优化?
物联网·数据中心·dcim·动环监控·新人首发
数字新视界14 小时前
动环监控系统是什么?其关键功能与应用领域有哪些?
物联网·dcim·动环监控系统·机房动环监控系统·动力与环境监控
星越华夏14 小时前
物联网基于树莓派的智能环境监控系统:温湿度传感与远程控制综合设计
人工智能·物联网
羊羊一洋14 小时前
GCC __attribute__ 完全指南:从入门到实战
c语言·stm32