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

发布时间 2023-04-17 16:09:09作者: FBshark

显示语句

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

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

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,就能刷新第三位数字了。