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

相关推荐
Zw-awa1 天前
传感器是什么:让 STM32 知道车外发生了什么
stm32
Zhao136824553911 天前
国产替代DPE5500百兆以太网控制芯片兼容W5500
嵌入式硬件·物联网
microrain1 天前
同一个寄存器,四种读法:SagooIoT Modbus 驱动的字节序、宽度与功能码
物联网·golang·开源·sagooiot
智圣新创011 天前
教育数据要素流通刚需下 智圣新创高校数据中台解决方案的全域建设落地框架
大数据·人工智能·物联网
Brilliantwxx1 天前
【STM32】基础定时器 TIM 详解:从极简原理到寄存器全解析
stm32·单片机·嵌入式硬件·mcu
DS小龙哥1 天前
从呼吸心率到离床报警:60G雷达睡眠仪全栈开发实录(硬件+MQTT+小程序)DIY一台全功能睡眠监护仪
stm32·单片机·嵌入式硬件·物联网·小程序·智能家居
lhbweilai1 天前
深挖FreeRTOS内核实现(二)
c语言·汇编·stm32·单片机
ebiobiz1 天前
Zig 工具链编译 STM32 开发指南
驱动开发·stm32·嵌入式硬件
LiuYanG1 天前
MQTT 客户端反复重连怎么办?Spring Boot 接 EMQX 断线重连踩坑实录
spring boot·物联网
常州晟凯电子科技2 天前
sigmaStar SSC8836Q/SSC8826Q开发笔记之环境搭建和SDK编译
笔记·嵌入式硬件·物联网·视频编解码