蓝桥杯物联网竞赛_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还是很高效的

相关推荐
lhbweilai6 分钟前
FreeRTOS(事件组)
stm32·单片机·嵌入式硬件
钒星物联网24 分钟前
自组网+Ku宽带卫星图传,为野保监测搭建空天地一体化高速通道
数码相机·物联网·卫星通信·红外相机·自组网·野外监测
210Brian29 分钟前
STM32学习笔记(七)TIM定时中断(上)
笔记·stm32·学习
LCG元29 分钟前
STM32 HAL 库串口 DMA + 空闲中断接收不定长数据:从原理到量产级稳定方案
stm32·单片机·嵌入式硬件
MuMuMu12231 小时前
末端低碳物联网终端数据设计:越华环保集团碳惠小屋数据合规与适配方案
物联网
longxingiot1 小时前
智慧园区全域管控物联网主机应用
网络·物联网
嵌入式阿蔡1 小时前
OTA 实战四:安全启动与固件签名(Secure Boot)—— 拒绝非法固件
网络·stm32·单片机·嵌入式硬件·嵌入式实时数据库
研华科技Advantech2 小时前
Windows Server IoT 2025深度技术解析:功能、安全与AI性能突破
人工智能·物联网·安全
wuyk55510 小时前
4.树:一对多的层次数据结构
开发语言·数据结构·stm32·单片机
会周易的程序员12 小时前
aiDgePLC iec61131 虚拟机 完整使用文档
c++·物联网·架构·st·iec61131