0.96寸OLED使用 sprintf() 显示动态变化数字

显示语句

OLED 可以用 sprintf() 函数输出的字符串来显示动态变化的数字。

例如,可以定义一个 u8 char oled_buff[20],作为sprintf()的第1个输入参数,第2、3个参数可按 printf() 函数的格式写。

然后在将 oled_buff 作为 OLED_ShowString() 的参数(第1、2个参数为坐标,第3个为要显示的字符串,第四个为字符高度)。

sprintf((char *)oled_buff, "Lx:%d",Joy_Lx);
OLED_ShowString(32,0, (u8*)oled_buff, 16);//8*16

注意:定期刷新一定要加上

1
OLED_Refresh();

这个语句,否则会黑屏。

遇到问题

用STM32的ADC采样 joystick 坐标值,我用了 OLED 显示坐标值,但是显示的时候有一个问题:

显示的数字不准确。

更准确来讲,就是能显示三位数字,但是当采样值为两位数的时候,显示的值第三位屏幕不刷新。这样看上去就是错误的数字。

解决问题

1 sprintf((char *)oled_buff, "Lx:%3d",Joy_Lx);
2 OLED_ShowString(32,0, (u8*)oled_buff, 16);//8*16

将 Lx:%d 改为  Lx:%3d,就能刷新第三位数字了。

 

posted @   FBshark  阅读(1740)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示