[问答] oled可以正常显示3位数以内的数字,不能正常显示4位数以上的数字?

[复制链接]

实习生

发表于 2018-3-17 19:06:32   1069 查看 5 回复 显示全部楼层 倒序浏览
分享
为什么我今天才发现我的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<len;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,' ');
                                continue;
                        }
                        else enshow=1;
                        
                }
                 OLED_ShowChar(x+(size2/2)*t,y,temp+'0');
        }
}
main函数:
uint32_t nu=8234;
OLED_ShowNum(0,4,nu,4,16);


标签:库函数 oled 显示 位数 数字

实习生

发表于 2018-3-17 19:07:32    楼主|
显示的是5234      
回复

点赞 举报

实习生

发表于 2018-3-18 10:05:24    楼主|
顶起顶起upupup                 
回复

点赞 举报

发表于 2018-4-6 17:00:15  
我也遇到这段代码 这个问题,len超过3的取值我这边出现了乱码,                                   
           这段代码上面还有一个自乘的程序,len的取值关系到自乘几次  我觉得大概是这个方向,
回复

点赞 举报

助理工程师

发表于 2018-5-9 09:21:04  
您好,请问楼主解决了吗?我也遇到类似问题,4位数字会出现乱码
回复

点赞 举报

技术员

发表于 2018-5-9 14:34:18  
  1. /**
  2.   * [url=home.php?mod=space&uid=2666770]@Brief[/url]  OLED_ShowStr,显示codetab.h中的ASCII字符,有6*8和8*16可选择
  3.   * @param  x,y : 起始点坐标(x:0~127, y:0~7);
  4.         *                                        ch[] :- 要显示的字符串;
  5.         *                                        TextSize : 字符大小(1:6*8 ; 2:8*16)
  6.         * @retval 无
  7.   */
  8. void OLED_ShowStr(unsigned char x, unsigned char y, unsigned char ch[], unsigned char TextSize)
  9. {
  10.         unsigned char c = 0,i = 0,j = 0;
  11.         switch(TextSize)
  12.         {
  13.                 case 1:
  14.                 {
  15.                         while(ch[j] != '\0')
  16.                         {
  17.                                 c = ch[j] - 32;
  18.                                 if(x > 126)
  19.                                 {
  20.                                         x = 0;
  21.                                         y++;
  22.                                 }
  23.                                 OLED_SetPos(x,y);
  24.                                 for(i=0;i<6;i++)
  25.                                         WriteDat(F6x8[c][i]);
  26.                                 x += 6;
  27.                                 j++;
  28.                         }
  29.                 }break;
  30.                 case 2:
  31.                 {
  32.                         while(ch[j] != '\0')
  33.                         {
  34.                                 c = ch[j] - 32;
  35.                                 if(x > 120)
  36.                                 {
  37.                                         x = 0;
  38.                                         y++;
  39.                                 }
  40.                                 OLED_SetPos(x,y);
  41.                                 for(i=0;i<8;i++)
  42.                                         WriteDat(F8X16[c*16+i]);
  43.                                 OLED_SetPos(x,y+1);
  44.                                 for(i=0;i<8;i++)
  45.                                         WriteDat(F8X16[c*16+i+8]);
  46.                                 x += 8;
  47.                                 j++;
  48.                         }
  49.                 }break;
  50.         }
  51. }
复制代码
回复

点赞 举报

高级模式
您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表
-

推荐专区

技术干货集中营

专家问答

用户帮助┃咨询与建议┃版主议事

工程师杂谈

项目|工程师创意

招聘|求职}工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

ARM技术论坛

Android论坛

Linux论坛

单片机/MCU论坛

MSP430技术论坛

FPGA|CPLD|ASIC论坛

STM32/STM8技术论坛

NXP MCU 技术论坛

PIC单片机论坛

DSP论坛

瑞萨单片机论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

无线充电技术

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

工程资源中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

厂商专区

TI论坛

TI Deyisupport社区

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

电子展览展会专区

芯片求购|供应发布区