STM32/STM8技术论坛
登录
直播中
cqca
7年用户
28经验值
擅长:可编程逻辑 EMC/EMI设计
私信
关注
[问答]
oled可以正常显示3位数以内的数字,不能正常显示4位数以上的数字?
开启该帖子的消息推送
库函数
显示
位数
数字
为什么我今天才发现我的oled可以正常显示3位数以内的数字,不能正常显示4位数以上的数字 代码如下:
void OLED_ShowNum(uint8_t x,uint8_t y,uint32_t num,uint8_t len,uint8_t size2)
{
uint32_t t,temp;
uint32_t enshow=0;
for(t=0;t
{
temp=(num/oled_pow(10,len-t-1))%10;
if(enshow==0&&t<(len-1))
{
if(temp==0)
{
OLED_ShowChar(x+(size2/2)*t,y,' ');
con
ti
nue;
}
else enshow=1;
}
OLED_ShowChar(x+(size2/2)*t,y,temp+'0');
}
}
main函数:
uint32_t nu=8234;
OLED_ShowNum(0,4,nu,4,16);
回帖
(5)
cqca
2018-3-17 19:07:32
显示的是5234
显示的是5234
举报
cqca
2018-3-18 10:05:24
顶起顶起upupup
顶起顶起upupup
举报
霍
2018-4-6 17:00:15
我也遇到这段代码 这个问题,len超过3的取值我这边出现了乱码,
这段代码上面还有一个自乘的程序,len的取值关系到自乘几次 我觉得大概是这个方向,
我也遇到这段代码 这个问题,len超过3的取值我这边出现了乱码,
这段代码上面还有一个自乘的程序,len的取值关系到自乘几次 我觉得大概是这个方向,
举报
摘星揽月111
2018-5-9 09:21:04
您好,请问楼主解决了吗?我也遇到类似问题,4位数字会出现乱码
您好,请问楼主解决了吗?我也遇到类似问题,4位数字会出现乱码
举报
leng
2018-5-9 14:34:18
/**
* [url=home.php?mod=space&uid=2666770]@Brief[/url] OLED_ShowStr,显示codetab.h中的ASCII字符,有6*8和8*16可选择
* @param x,y : 起始点坐标(x:0~127, y:0~7);
* ch[] :- 要显示的字符串;
* TextSize : 字符大小(1:6*8 ; 2:8*16)
* @retval 无
*/
void OLED_ShowStr(unsigned char x, unsigned char y, unsigned char ch[], unsigned char TextSize)
{
unsigned char c = 0,i = 0,j = 0;
switch(TextSize)
{
case 1:
{
while(ch[j] != '\0')
{
c = ch[j] - 32;
if(x > 126)
{
x = 0;
y++;
}
OLED_SetPos(x,y);
for(i=0;i<6;i++)
WriteDat(F6x8[c][i]);
x += 6;
j++;
}
}break;
case 2:
{
while(ch[j] != '\0')
{
c = ch[j] - 32;
if(x > 120)
{
x = 0;
y++;
}
OLED_SetPos(x,y);
for(i=0;i<8;i++)
WriteDat(F8X16[c*16+i]);
OLED_SetPos(x,y+1);
for(i=0;i<8;i++)
WriteDat(F8X16[c*16+i+8]);
x += 8;
j++;
}
}break;
}
}
/**
* [url=home.php?mod=space&uid=2666770]@Brief[/url] OLED_ShowStr,显示codetab.h中的ASCII字符,有6*8和8*16可选择
* @param x,y : 起始点坐标(x:0~127, y:0~7);
* ch[] :- 要显示的字符串;
* TextSize : 字符大小(1:6*8 ; 2:8*16)
* @retval 无
*/
void OLED_ShowStr(unsigned char x, unsigned char y, unsigned char ch[], unsigned char TextSize)
{
unsigned char c = 0,i = 0,j = 0;
switch(TextSize)
{
case 1:
{
while(ch[j] != '\0')
{
c = ch[j] - 32;
if(x > 126)
{
x = 0;
y++;
}
OLED_SetPos(x,y);
for(i=0;i<6;i++)
WriteDat(F6x8[c][i]);
x += 6;
j++;
}
}break;
case 2:
{
while(ch[j] != '\0')
{
c = ch[j] - 32;
if(x > 120)
{
x = 0;
y++;
}
OLED_SetPos(x,y);
for(i=0;i<8;i++)
WriteDat(F8X16[c*16+i]);
OLED_SetPos(x,y+1);
for(i=0;i<8;i++)
WriteDat(F8X16[c*16+i+8]);
x += 8;
j++;
}
}break;
}
}
举报
更多回帖
rotate(-90deg);
回复
相关问答
库函数
显示
位数
数字
关于0.96
oled
的
2018-03-17
3454
有没有兼容DAC7512管脚,速率不低于7512,高
位数
版本的18
位数以上
的DAC推荐?
2024-12-16
253
急,怎么用动态数码管
显示
8
位数字
?
2015-11-24
16986
4
位数字
频率计的设计
2012-06-17
3209
按键控制各
位数
码管
显示
不同
数字
2016-07-19
8605
请问怎么让
4
位数
码管
显示
1,2,
3,4
静态的?
2017-06-06
6514
lcd1602如果只是用来
显示
数字
的话8
位数
据端口都要用吗?
2023-10-20
397
求教,BCD译码的2
位数
码管扫描的
数字
显示
仿真程序
2015-06-16
5056
三
位数字
密码锁
2015-07-07
5030
数码管智能
显示
一
位数字
了
2019-05-04
2026
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分