OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4264|回复: 10

myPrintf液晶显示组件完善

[复制链接]

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2017-4-5 22:11:48 | 显示全部楼层 |阅读模式
本帖最后由 八度空间 于 2017-4-5 22:15 编辑

这次优化在探索者上进行的,所以发这里了,军哥和洋哥赏个面子不删哈或者移到合适的地方

一、这次主要更新了一下内容
      1.1、将设置Mode参数移动到port中,只设置液晶显示mode
      1.2、优化%d格式输出
      1.3、优化%x格式输出,%#x、%#3x等格式,按实际长度输出
      1.4、优化%o格式输出
      1.5、将小数域宽和精度由固定改为可设置并增加相关函数,默认域宽8,精度6
      1.6、优化%e格式显示,正数显示+号,%3e格式按照%e格式输出,取最大域宽,解决显示和输入不对的bug,比如输入12.345显示成1.234499e+01
             去掉%-e、%-6.3e等格式,增加%6.*e、%*.3e、%*.*e等格式
      1.7、优化%s、%3s、%6.3s等格式输出
      1.8、将原来%m、%m.n格式修改为%*、%*.*、%*.3格式
      1.9、增加%3c、%-3c、%03c、%*c、%-*c、%0*c格式输出
      1.10、优化%f格式输出,去掉%-f、%-6.3f等格式,增加%6.*f、%*.3f、%*.*f等格式
      1.11、增加换行后可设置左边界值
      1.12、去掉%tf格式
      1.13、优化显示ico格式,%isn,i代表ICO类型,s代表ICO大小,n代表ICO序号,增加设置透明显示设置,也就是叠加显示效果
      1.14、优化显示made格式,%msn,m代表made类型,s代表made大小,n代表made序号,增加设置透明显示设置,也就是叠加显示效果
      1.15、增加#标志符号功能,针对%x和%o格式增加前序
      1.16、优化ICO和MADE自定义数字时后带\n显示叠加的bug,建议大字体时单独显示,不做\n动作
      1.17、增加显示时间和日期格式%#t和%#d,输入参数可调用以下函数组合后传递
               m_Printf_CombinationDateInfo()和m_Printf_CombinationTimeInfo()
      1.18、增加获取字符宽度和高度函数
      1.19、优化%bcd格式,made中增加bcd格式段码显示相关设置函数
               m_Printf_MadeSegmentCodeEnable()和m_Printf_MadeSegmentCodeDisable()


二、以下是本次测试的效果截屏
      2.1、%x格式
             [mw_shl_code=applescript,true]        myPrintf("test %x\n", 85);  //直接显示OK
        myPrintf("test %x\n", 185);
        myPrintf("test %x\n", 1285);
        myPrintf("test %x\n", 12385);
        myPrintf("test %x\n", 123485);

        myPrintf("test %3x\n", 85);  //补0或空格ok
        myPrintf("test %4x\n", 85);
        myPrintf("test %03x\n", 85);
        myPrintf("test %04x\n", 85);

        myPrintf("test %1x\n", 85);    //输入过长ok
        myPrintf("test %1x\n", 185);
        myPrintf("test %02x\n", 185);  //1
        
        myPrintf("test %02x\n", 1285);  //2
        myPrintf("test %02x\n", 12385);  //3
        myPrintf("test %02x\n", 123485);  //4[/mw_shl_code]
0myprintf_x1.jpg

      2.2、%d格式

             [mw_shl_code=applescript,true]myPrintf("test %d\n", 85);  //直接显示OK

        myPrintf("test %d\n", 185);
        myPrintf("test %d\n", 1285);
        myPrintf("test %d\n", 12385);
        myPrintf("test %d\n", 85);

        myPrintf("test %d\n", -123485);
        
        myPrintf("test %1d", 85);  //补空格ok
        myPrintf("test %2d", 85);
        myPrintf("test %3d", 85);
        
        myPrintf("test %-1d", 85);  //补空格ok
        myPrintf("test %-2d", 85);
        myPrintf("test %-3d", 85);myPrintf("test %1d", 85);
        
        myPrintf("test %01d\n", 85);  //补0ok
        myPrintf("test %02d\n", 85);
        myPrintf("test %03d\n", 85);
        myPrintf("test %04d\n", 85);
        
        
        myPrintf("%01d %02d %03d %04d\n", 15, 25, 35, 45);[/mw_shl_code]
1myprintf_d1.jpg             

      2.3、%o格式

             [mw_shl_code=applescript,true]myPrintf("test %o\n", 55);

        myPrintf("test %1o\n", 55);
        myPrintf("test %3o\n", 55);
        myPrintf("test %-o\n", 55);
        myPrintf("test %-3o\n", 55);
        myPrintf("test %03o\n", 55);
        
        myPrintf("test %-3o", 55);
        myPrintf("test %o\n", 55);[/mw_shl_code]
2myprintf_o1.jpg             

      2.4、%bcd格式

             [mw_shl_code=applescript,true]myPrintf("%bcd\n", 0x33, 2, 16);[/mw_shl_code]

3myprintf_bcd.jpg            

      2.5、%e格式

             [mw_shl_code=applescript,true]myPrintf("1test %e\n", 12.345);

        
        myPrintf("2test %e\n", 1.2345);
        
        myPrintf("3test %e\n", 0.00123);
        
        myPrintf("4test %e\n", -12.345);
        
        myPrintf("5test %.3e\n", 12.344);
        
        myPrintf("6test %6.3e\n", 12.344);
        
        myPrintf("7test %3.5e\n", 12.344);
        
        
        myPrintf("10test %*.*e\n", 6, 3, 12.344);
        
        myPrintf("11test %*.*e\n", 3, 5, 12.344);
        
        myPrintf("12test %*.5e\n", 3, 12.344);
        
        myPrintf("13test %6.*e\n", 3, 12.344);
        
        myPrintf("14test %3.*e\n", 5, 12.344);[/mw_shl_code]
4myprintf_e1.jpg

      2.6、%s格式

             [mw_shl_code=applescript,true]myPrintf("%4.6s\n", "1test format");

        
        myPrintf("%6.4s\n", "2test format");
        
        myPrintf("%-6.4s\n", "3test format");
        
        myPrintf("%4.6S\n", "4test format");
        
        myPrintf("%*.*s\n", m, n, "5test format");
        
        myPrintf("%*s\n", m, "8test format");
        m = 13;
        myPrintf("%*s\n", m, "9test format");[/mw_shl_code]
5myprintf_s1.jpg

      2.7、%*d格式

             [mw_shl_code=applescript,true]myPrintf("test %*d\n", 3, 12345);  //ok

        myPrintf("test %*d\n", 6, 12345);
        myPrintf("test %0*d\n", 6, 12345);
        myPrintf("test %-*d\n", 6, 12345);[/mw_shl_code]
6myprintf_d2.jpg

      2.8、%*x格式

             [mw_shl_code=applescript,true]myPrintf("abcdefghjiklmn\n");

        myPrintf("test %*x\n", 3, 85);  //补0或空格ok
        myPrintf("test %*x\n", 4, 85);
        myPrintf("test %-*x\n", 3, 85);
        myPrintf("test %-*x\n", 4, 85);[/mw_shl_code]
7myprintf_x2.jpg

      2.9、%*o格式

             [mw_shl_code=applescript,true]myPrintf("test %*o\n", 1, 55);  //ok

        myPrintf("test %*o\n", 3, 55);
        myPrintf("test %-*o\n", 3, 55);[/mw_shl_code]
8myprintf_o2.jpg

      2.10、%*.*s格式

              [mw_shl_code=applescript,true]myPrintf("%*.*s\n", 4, 6, "1test format");

        
        myPrintf("%*.*s\n", 6, 4, "2test format");
        
        myPrintf("%-*.*s\n", 6, 4, "3test format");
        
        myPrintf("%*.*s\n", m, n, "5test format");
        
        myPrintf("%*.*s\n", n, m, "6test format");
        
        myPrintf("abcdefghjiklmn\n");
        myPrintf("%*.6s\n", 4, "1test format");
        
        myPrintf("%*.4s\n", 6, "2test format");
        
        myPrintf("%-*.4s\n", 6, "3test format");
        
        myPrintf("%*.4s\n", m, "5test format");
        
        myPrintf("%*.6s\n", n, "6test format");
        
        myPrintf_SetLBorder(10);
        myPrintf("%6.*s\n", 4, "7test format");
        
        myPrintf("%-6.*s\n", 4, "8test format");
        
        myPrintf("%4.*s\n", 6, "9test format");[/mw_shl_code]
9myprintf_s2.jpg

      2.11、%c格式

              [mw_shl_code=applescript,true]myPrintf("%c\n", 0x31);

        myPrintf("%3c\n", 0x32);
        myPrintf("%-3c\n", 0x33);
        myPrintf("%03c\n", 0x34);
        myPrintf("%-03c\n", 0x35);[/mw_shl_code]
10myprintf_c1.jpg

      2.12、%*c格式

               [mw_shl_code=applescript,true]myPrintf("%c\n", 0x31);

        myPrintf("%*c\n", 3, 0x32);
        myPrintf("%-*c\n", 3, 0x33);
        myPrintf("%0*c\n", 3, 0x34);
        myPrintf("%-0*c\n", 3, 0x35);[/mw_shl_code]
11myprintf_c2.jpg

      2.13、%#x格式

               [mw_shl_code=applescript,true]myPrintf("1test %x\n", 5);  //OK

        myPrintf("2test %#x\n", 5);
        
        myPrintf("3test %#3x\n", 85);  //补0或空格ok
        myPrintf("4test %#03x\n", 85);
        myPrintf("5test %#4x\n", 85);
        myPrintf("6test %#04x\n", 85);
        
        
        myPrintf("abcdefghjiklmn\n");
        myPrintf("10test %#*x\n", 3, 5);  //补0或空格ok
        myPrintf("11test %#*x\n", 4, 85);
        myPrintf("12test %#-*x\n", 3, 85);
        myPrintf("13test %#-*x\n", 4, 85);[/mw_shl_code]
12myprintf_x3.jpg

      2.14、%#o格式

               [mw_shl_code=applescript,true]myPrintf("1test %#o\n", 55);

        myPrintf("2test %#1o\n", 55);
        myPrintf("3test %#3o\n", 55);
        myPrintf("4test %#-o\n", 55);
        myPrintf("5test %#-3o\n", 55);
        myPrintf("6test %#03o\n", 55);
        
        myPrintf("7test %#-3o", 55);
        myPrintf("8test %#o\n", 55);
        
        myPrintf("9test %#*o\n", 1, 55);  //ok
        myPrintf("10test %#*o\n", 3, 55);
        myPrintf("11test %#-*o\n", 3, 55);[/mw_shl_code]
13myprintf_o3.jpg

      2.15、%f等格式

               [mw_shl_code=applescript,true]myPrintf("1test %f\n", 12.345);

        
        myPrintf("1test %f\n", -12.345);
        
        myPrintf("2test %6.3f\n", 12.3454);  //总域宽不超过6,小数只显示3位
        myPrintf("2test %3.5f\n", 12.34);  //实际输出,小数6位,不足补0
        
        myPrintf("3test %*.*f\n", 6, 3, 12.3454);
        myPrintf("3test %*.*f\n", 3, 5, 12.34);
        
        myPrintf("4test %*.3f\n", 6, 12.3454);
        myPrintf("4test %*.5f\n", 3, 12.34);
        
        myPrintf("5test %*.3f\n", m, 12.3454);
        n = 3;
        myPrintf("5test %*.5f\n", n, 12.34);
        
        myPrintf("6test %.3f\n", 12.3454);
        myPrintf("6test %.5f\n", 12.34);
        
        
        myPrintf("7test %6.*f\n", 3, 12.3454);
        myPrintf("7test %3.*f\n", 5, 12.34);[/mw_shl_code]
14myprintf_f1.jpg

      2.16、%isn

              [mw_shl_code=applescript,true]myPrintf_SetBackColor(BLACK);

        myPrintf_SetPanColor(RED);
        
        myPrintf_ICOSuperimposedEnable();
        myPrintf("%isn", MYPRINTF_ICO_I_PIC1616, MYPRINTF_ICO_S_S1616, MYPRINTF_ICO_N_N1616_MUTE);
        
        myPrintf_ICOSuperimposedDisable();
        myPrintf("%isn", MYPRINTF_ICO_I_PIC1616, MYPRINTF_ICO_S_S1616, MYPRINTF_ICO_N_N1616_BLUETOOTH1);
        
        myPrintf("%isn\nsuccess\n", MYPRINTF_ICO_I_PIC1616, MYPRINTF_ICO_S_S1616, MYPRINTF_ICO_N_N1616_BLUETOOTH1);[/mw_shl_code]
15myprintf_isn.jpg

      2.17、%msn格式

              [mw_shl_code=applescript,true]myPrintf_SetBackColor(BLACK);

        myPrintf_SetPanColor(RED);
        
        myPrintf_MadeSuperimposedEnable();
        myPrintf("%msn", MYPRINTF_CUS_T_NUM_NORMAL, MYPRINTF_CUS_S_NUM1632, MYPRINTF_CUS_N_N3216_8);
        
        myPrintf_MadeSuperimposedDisable();
        myPrintf("%msn", MYPRINTF_CUS_T_NUM_SEGMENT, MYPRINTF_CUS_S_NUM1632, MYPRINTF_CUS_N_N3216_8);
        
        myPrintf("%msn", MYPRINTF_CUS_T_NUM_SEGMENT, MYPRINTF_CUS_S_NUM3264, MYPRINTF_CUS_N_N3216_8);
        
        myPrintf("%msn\n%msn\nsuccess\n", MYPRINTF_CUS_T_NUM_SEGMENT, MYPRINTF_CUS_S_NUM1632, MYPRINTF_CUS_N_N3216_8, MYPRINTF_CUS_T_NUM_SEGMENT, MYPRINTF_CUS_S_NUM3264, MYPRINTF_CUS_N_N3216_8);[/mw_shl_code]
16myprintf_msn.jpg

      2.18、%#t显示时钟格式

              [mw_shl_code=applescript,true]cnt = myPrintf_CombinationTimeInfo(8/* 小时 */,

                                       5/* 分钟 */,
                                       8/* 秒钟 */,
                                       1/* 秒钟显示使能位,0不显示;1显示 */,
                                       0/* 字体类型,0普通小字体;1大字体(需要made支持) */,
                                       0/* 显示字体格式,段码式或者普通,0普通字体;1段码式显示(需要made字体支持) */,
                                       MYPRINTF_CUS_S_NUM1632/* 字体大小,(made使能则使用,否则使用设置函数大小参数) */);
        myPrintf("time %#t\n", cnt);
        
        cnt = myPrintf_CombinationTimeInfo(8/* 小时 */,
                                       5/* 分钟 */,
                                       8/* 秒钟 */,
                                       0/* 秒钟显示使能位,0不显示;1显示 */,
                                       0/* 字体类型,0普通小字体;1大字体(需要made支持) */,
                                       0/* 显示字体格式,段码式或者普通,0普通字体;1段码式显示(需要made字体支持) */,
                                       MYPRINTF_CUS_S_NUM1632/* 字体大小,(made使能则使用,否则使用设置函数大小参数) */);
        myPrintf("time %#t\n", cnt);
        
        cnt = myPrintf_CombinationTimeInfo(8/* 小时 */,
                                       5/* 分钟 */,
                                       30/* 秒钟 */,
                                       1/* 秒钟显示使能位,0不显示;1显示 */,
                                       1/* 字体类型,0普通小字体;1大字体(需要made支持) */,
                                       1/* 显示字体格式,段码式或者普通,0普通字体;1段码式显示(需要made字体支持) */,
                                       MYPRINTF_CUS_S_NUM1632/* 字体大小,(made使能则使用,否则使用设置函数大小参数) */);
        myPrintf("time %#t\n", cnt);
        
        cnt = myPrintf_CombinationTimeInfo(8/* 小时 */,
                                       5/* 分钟 */,
                                       30/* 秒钟 */,
                                       1/* 秒钟显示使能位,0不显示;1显示 */,
                                       1/* 字体类型,0普通小字体;1大字体(需要made支持) */,
                                       1/* 显示字体格式,段码式或者普通,0普通字体;1段码式显示(需要made字体支持) */,
                                       MYPRINTF_CUS_S_NUM3264/* 字体大小,(made使能则使用,否则使用设置函数大小参数) */);
        myPrintf("time %#t\n", cnt);
        
        myPrintf("test time display success\n");[/mw_shl_code]
17myprintf_time.jpg

      2.19、%#d显示日期格式

              [mw_shl_code=applescript,true]cnt = myPrintf_CombinationDateInfo(17/* 年份 */,

                                       3/* 月份 */,
                                       24/* 日期 */,
                                       5/* 星期,范围1~7 */,
                                       0/* 星期使能,0不显示;1显示 */,
                                       1/* 星期类型,0数字;1字符串(三个字符),使能后生效 */,
                                                                           1/* 年份高位使能,0显示;1不显示 */,
                                       2000/* 年份高位,比如2017中的20,输入为2000,增加100的倍数 */,
                                       0/* 间隔符号,0斜杠;1短横线 */,
                                       0/* 字体类型,0普通小字体;1大字体(需要made支持) */,
                                       0/* 显示字体格式,段码式或者普通,0普通字体;1段码式显示(需要made字体支持) */,
                                       MYPRINTF_CUS_S_NUM1632/* 字体大小,(made使能则使用,否则使用设置函数大小参数) */);
        myPrintf("date %#d\n", cnt);
        
        cnt = myPrintf_CombinationDateInfo(17/* 年份 */,
                                       3/* 月份 */,
                                       24/* 日期 */,
                                       5/* 星期,范围1~7 */,
                                       0/* 星期使能,0不显示;1显示 */,
                                       1/* 星期类型,0数字;1字符串(三个字符),使能后生效 */,
                                                                           1/* 年份高位使能,0显示;1不显示 */,
                                       2000/* 年份高位,比如2017中的20,输入为2000,增加100的倍数 */,
                                       1/* 间隔符号,0斜杠;1短横线 */,
                                       0/* 字体类型,0普通小字体;1大字体(需要made支持) */,
                                       0/* 显示字体格式,段码式或者普通,0普通字体;1段码式显示(需要made字体支持) */,
                                       MYPRINTF_CUS_S_NUM1632/* 字体大小,(made使能则使用,否则使用设置函数大小参数) */);
        myPrintf("date %#d\n", cnt);
        
        cnt = myPrintf_CombinationDateInfo(17/* 年份 */,
                                       3/* 月份 */,
                                       24/* 日期 */,
                                       5/* 星期,范围1~7 */,
                                       1/* 星期使能,0不显示;1显示 */,
                                       0/* 星期类型,0数字;1字符串(三个字符),使能后生效 */,
                                                                           1/* 年份高位使能,0显示;1不显示 */,
                                       2000/* 年份高位,比如2017中的20,输入为2000,增加100的倍数 */,
                                       0/* 间隔符号,0斜杠;1短横线 */,
                                       0/* 字体类型,0普通小字体;1大字体(需要made支持) */,
                                       0/* 显示字体格式,段码式或者普通,0普通字体;1段码式显示(需要made字体支持) */,
                                       MYPRINTF_CUS_S_NUM1632/* 字体大小,(made使能则使用,否则使用设置函数大小参数) */);
        myPrintf("date %#d\n", cnt);
        
        cnt = myPrintf_CombinationDateInfo(17/* 年份 */,
                                       3/* 月份 */,
                                       24/* 日期 */,
                                       5/* 星期,范围1~7 */,
                                       1/* 星期使能,0不显示;1显示 */,
                                       1/* 星期类型,0数字;1字符串(三个字符),使能后生效 */,
                                                                           1/* 年份高位使能,0显示;1不显示 */,
                                       2000/* 年份高位,比如2017中的20,输入为2000,增加100的倍数 */,
                                       0/* 间隔符号,0斜杠;1短横线 */,
                                       0/* 字体类型,0普通小字体;1大字体(需要made支持) */,
                                       0/* 显示字体格式,段码式或者普通,0普通字体;1段码式显示(需要made字体支持) */,
                                       MYPRINTF_CUS_S_NUM1632/* 字体大小,(made使能则使用,否则使用设置函数大小参数) */);
        myPrintf("date %#d\n", cnt);
        
        cnt = myPrintf_CombinationDateInfo(17/* 年份 */,
                                       3/* 月份 */,
                                       24/* 日期 */,
                                       5/* 星期,范围1~7 */,
                                       1/* 星期使能,0不显示;1显示 */,
                                       1/* 星期类型,0数字;1字符串(三个字符),使能后生效 */,
                                                                           1/* 年份高位使能,0显示;1不显示 */,
                                       2000/* 年份高位,比如2017中的20,输入为2000,增加100的倍数 */,
                                       0/* 间隔符号,0斜杠;1短横线 */,
                                       1/* 字体类型,0普通小字体;1大字体(需要made支持) */,
                                       0/* 显示字体格式,段码式或者普通,0普通字体;1段码式显示(需要made字体支持) */,
                                       MYPRINTF_CUS_S_NUM1632/* 字体大小,(made使能则使用,否则使用设置函数大小参数) */);
        myPrintf("date %#d\n", cnt);
        
        cnt = myPrintf_CombinationDateInfo(17/* 年份 */,
                                       3/* 月份 */,
                                       24/* 日期 */,
                                       5/* 星期,范围1~7 */,
                                       1/* 星期使能,0不显示;1显示 */,
                                       1/* 星期类型,0数字;1字符串(三个字符),使能后生效 */,
                                                                           1/* 年份高位使能,0显示;1不显示 */,
                                       2000/* 年份高位,比如2017中的20,输入为2000,增加100的倍数 */,
                                       0/* 间隔符号,0斜杠;1短横线 */,
                                       1/* 字体类型,0普通小字体;1大字体(需要made支持) */,
                                       1/* 显示字体格式,段码式或者普通,0普通字体;1段码式显示(需要made字体支持) */,
                                       MYPRINTF_CUS_S_NUM1632/* 字体大小,(made使能则使用,否则使用设置函数大小参数) */);
        myPrintf("date %#d\n", cnt);
        
        cnt = myPrintf_CombinationDateInfo(17/* 年份 */,
                                       3/* 月份 */,
                                       24/* 日期 */,
                                       5/* 星期,范围1~7 */,
                                       1/* 星期使能,0不显示;1显示 */,
                                       1/* 星期类型,0数字;1字符串(三个字符),使能后生效 */,
                                                                           1/* 年份高位使能,0显示;1不显示 */,
                                       2000/* 年份高位,比如2017中的20,输入为2000,增加100的倍数 */,
                                       0/* 间隔符号,0斜杠;1短横线 */,
                                       1/* 字体类型,0普通小字体;1大字体(需要made支持) */,
                                       1/* 显示字体格式,段码式或者普通,0普通字体;1段码式显示(需要made字体支持) */,
                                       MYPRINTF_CUS_S_NUM3264/* 字体大小,(made使能则使用,否则使用设置函数大小参数) */);
        myPrintf("date %#d\n", cnt);
        
        cnt = myPrintf_CombinationDateInfo(17/* 年份 */,
                                       3/* 月份 */,
                                       24/* 日期 */,
                                       5/* 星期,范围1~7 */,
                                       1/* 星期使能,0不显示;1显示 */,
                                       0/* 星期类型,0数字;1字符串(三个字符),使能后生效 */,
                                                                           1/* 年份高位使能,0显示;1不显示 */,
                                       2000/* 年份高位,比如2017中的20,输入为2000,增加100的倍数 */,
                                       1/* 间隔符号,0斜杠;1短横线 */,
                                       1/* 字体类型,0普通小字体;1大字体(需要made支持) */,
                                       0/* 显示字体格式,段码式或者普通,0普通字体;1段码式显示(需要made字体支持) */,
                                       MYPRINTF_CUS_S_NUM1632/* 字体大小,(made使能则使用,否则使用设置函数大小参数) */);
        myPrintf("date %#d\n", cnt);
        
        cnt = myPrintf_CombinationDateInfo(17/* 年份 */,
                                       3/* 月份 */,
                                       24/* 日期 */,
                                       5/* 星期,范围1~7 */,
                                       1/* 星期使能,0不显示;1显示 */,
                                       0/* 星期类型,0数字;1字符串(三个字符),使能后生效 */,
                                                                           1/* 年份高位使能,0显示;1不显示 */,
                                       2000/* 年份高位,比如2017中的20,输入为2000,增加100的倍数 */,
                                       1/* 间隔符号,0斜杠;1短横线 */,
                                       1/* 字体类型,0普通小字体;1大字体(需要made支持) */,
                                       1/* 显示字体格式,段码式或者普通,0普通字体;1段码式显示(需要made字体支持) */,
                                       MYPRINTF_CUS_S_NUM1632/* 字体大小,(made使能则使用,否则使用设置函数大小参数) */);
        myPrintf("date %#d\n", cnt);
        
        cnt = myPrintf_CombinationDateInfo(17/* 年份 */,
                                       3/* 月份 */,
                                       24/* 日期 */,
                                       5/* 星期,范围1~7 */,
                                       1/* 星期使能,0不显示;1显示 */,
                                       0/* 星期类型,0数字;1字符串(三个字符),使能后生效 */,
                                                                           1/* 年份高位使能,0显示;1不显示 */,
                                       2000/* 年份高位,比如2017中的20,输入为2000,增加100的倍数 */,
                                       1/* 间隔符号,0斜杠;1短横线 */,
                                       1/* 字体类型,0普通小字体;1大字体(需要made支持) */,
                                       1/* 显示字体格式,段码式或者普通,0普通字体;1段码式显示(需要made字体支持) */,
                                       MYPRINTF_CUS_S_NUM3264/* 字体大小,(made使能则使用,否则使用设置函数大小参数) */);
        myPrintf("date %#d\n", cnt);
        
        myPrintf("test date display success\n");[/mw_shl_code]
18myprintf_date.jpg

      2.20、中英混合显示

              [mw_shl_code=applescript,true]myPrintf("Chinese test中文显示测试ok\n");[/mw_shl_code]

19myprintf_gbk.jpg

三、移植就在port文件中即可
四、外部调用的API如下      [mw_shl_code=applescript,true]#if (MYPRINTF_CUSTOM_FIGURE_EN || MYPRINTF_ICO_SUPPORT_EN)
void myPrintf_DrawPoint(int x, int y, int color);  //printf打点接口函数
void myPrintf_SetPanColor(int pancolor);  //printf设置画笔颜色
void myPrintf_SetBackColor(int backcolor);  //printf设置背景颜色
void myPrintf_SetColor(int pancolor, int backcolor);  //printf设置颜色
int myPrintf_GetPanColor(void);  //printf获取画笔颜色
int myPrintf_GetBackColor(void);  //printf获取背景颜色
#endif
void myPrintf_SetLCDMode(unsigned char Mode);  //printf设置液晶显示模式
unsigned char myPrintf_GetLCDMode(void);  //printf获取LCD模式

char *myPrintf_GetVersion(char * VerOut);  //printf获取版本信息

void myPrintf_GotoxPhys(int xPhys);  //printf设置x坐标
void myPrintf_GotoyPhys(int yPhys);  //printf设置y坐标
void myPrintf_GotoxyPhys(int xPhys, int yPhys);  //printf设置x, y坐标
int myPrintf_GetxPhys(void);  //printf获取当前坐标值
int myPrintf_GetyPhys(void);  //printf获取当前坐标值

int myPrintf_GetOutPutCount(void);  //printf获取当前输出字符个数

void myPrintf_SetCharSize(char ch_width, char ch_height);  //printf设置英文字符大小
char myPrintf_GetCharWidth(void);  //printf获取英文字符宽度
char myPrintf_GetCharHeight(void);  //printf获取英文字符高度
#if MYPRINTF_CHINESE_SUPPORT_EN
void myPrintf_SetChineseSize(char gbk_width, char gbk_height);  //printf设置中文字符大小
char myPrintf_GetChineseWidth(void);  //printf获取中文字符宽度
char myPrintf_GetChineseHeight(void);  //printf获取中文字符高度
#endif
void myPrintf_SetLCDSize(int width, int height);  //printf设置液晶分辨率
void myPrintf_ResetLCDSize(void);  //printf恢复液晶分辨率
int myPrintf_GetLCDWidth(void);  //printf获取液晶宽度
int myPrintf_GetLCDHeight(void);  //printf获取液晶高度
void myPrintf_SetLBorder(int LBorder);  //printf设置换行后的左边界
int myPrintf_GetLBorder(void);  //printf获取换行后的左边界
void myPrintf_ResetLBorder(void);  //printf恢复换行后的左边界

void myPrintf_SetFloatWidth(char width);  //printf设置小数域宽
char myPrintf_GetFloatWidth(void);  //printf获取小数域宽
void myPrintf_SetFloatPrecision(char precision);  //printf设置小数精度
char myPrintf_GetFloatPrecision(void);  //printf获取小数域宽
void myPrintf_SetFloatWidthPrecision(char width, char precision);  //printf设置小数域宽和精度
void myPrintf_ResetFloatWidthPrecision(void);  //printf小数域宽和精度恢复默认值

#if MYPRINTF_ICO_SUPPORT_EN
void myPrintf_ICOSuperimposedEnable(void);  //ICO叠加显示使能
void myPrintf_ICOSuperimposedDisable(void);  //ICO叠加显示失能
#endif
#if MYPRINTF_CUSTOM_FIGURE_EN
void myPrintf_MadeSuperimposedEnable(void);  //Made叠加显示使能
void myPrintf_MadeSuperimposedDisable(void);  //Made叠加显示失能
void myPrintf_MadeSegmentCodeEnable(void);  //Made段码数字使能,适用显示bcd格式
void myPrintf_MadeSegmentCodeDisable(void);  //Made段码数字失能,适用显示bcd格式
#endif

int myPrintf_CombinationDateInfo(int year/* 年份 */,
                                 int month/* 月份 */,
                                 int date/* 日期 */,
                                 int weekday/* 星期,范围1~7 */,
                                 char week_en/* 星期使能,0不显示;1显示 */,
                                 char w_type/* 星期类型,0数字;1字符串(三个字符),使能后生效 */,
                                 char y_cent/* 年份高位使能,0显示;1不显示 */,
                                 int year_cent/* 年份高位,比如2017中的20,输入为2000,增加100的倍数 */,
                                 char symbol/* 间隔符号,0斜杠;1短横线 */,
                                 char c_type/* 字体类型,0普通小字体;1大字体(需要made支持) */,
                                 char seg_nor/* 显示字体格式,段码式或者普通,0普通字体;1段码式显示(需要made字体支持) */,
                                 int size/* 字体大小,(made使能则使用,否则使用设置函数大小参数) */);  //printf格式化日期值
int myPrintf_CombinationTimeInfo(int hour/* 小时 */,
                                 int minute/* 分钟 */,
                                 int second/* 秒钟 */,
                                 char sec_en/* 秒钟显示使能位,0不显示;1显示 */,
                                 char c_type/* 字体类型,0普通小字体;1大字体(需要made支持) */,
                                 char seg_nor/* 显示字体格式,段码式或者普通,0普通字体;1段码式显示(需要made字体支持) */,
                                 int size/* 字体大小,(made使能则使用,否则使用设置函数大小参数) */);  //printf格式化时间值
int myPrintf_CombinationTimeInfo1(myPrintf_TimeTypeDef *_mP_Time);  //printf格式化时间值
int myPrintf_CombinationDateInfo1(myPrintf_DateTypeDef *_mP_Date);  //printf格式化日期值

int myPrintf(const char *format/* 格式化参数 */, .../* 变长参数 */);  //printf格式化输出到液晶[/mw_shl_code]


目前测试效果还行,也非常感谢参与测试的友友们,同时也欢迎各位大大们反馈意见、建议


my_printf.rar

37.68 KB, 下载次数: 257

现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

347

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
2082
金钱
2082
注册时间
2014-12-19
在线时间
711 小时
发表于 2017-4-6 08:24:57 | 显示全部楼层
这么牛B的帖子居然没人顶
回复 支持 反对

使用道具 举报

14

主题

191

帖子

0

精华

QQ游客

积分
813
金钱
813
注册时间
2013-6-9
在线时间
181 小时
发表于 2017-4-6 09:33:56 | 显示全部楼层
功能强大,时钟字体如何生成的?
回复 支持 反对

使用道具 举报

7

主题

146

帖子

1

精华

高级会员

Rank: 4

积分
896
金钱
896
注册时间
2014-1-2
在线时间
156 小时
发表于 2017-4-6 09:39:41 | 显示全部楼层
支持楼主。。
回复 支持 反对

使用道具 举报

13

主题

314

帖子

0

精华

高级会员

Rank: 4

积分
713
金钱
713
注册时间
2012-7-20
在线时间
102 小时
发表于 2017-4-6 09:42:28 | 显示全部楼层
八度又出精品了
互联网,智能设备爱好者,欢迎讨论任何有意思的想法。
回复 支持 反对

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-4-6 10:19:32 | 显示全部楼层
NB了,怒顶!
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2017-4-6 20:41:14 | 显示全部楼层
rgzdb 发表于 2017-4-6 09:33
功能强大,时钟字体如何生成的?

自己画的
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

2

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
489
金钱
489
注册时间
2014-8-11
在线时间
131 小时
发表于 2017-4-7 09:29:41 | 显示全部楼层
厉害了,楼主
回复 支持 反对

使用道具 举报

5

主题

184

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1050
金钱
1050
注册时间
2016-5-13
在线时间
111 小时
发表于 2017-4-7 10:10:51 | 显示全部楼层
厉害了,楼主
回复 支持 反对

使用道具 举报

17

主题

466

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2161
金钱
2161
注册时间
2013-1-11
在线时间
510 小时
发表于 2018-6-6 14:26:45 | 显示全部楼层
顶一个,谢谢!
知识是你最好的财富
回复 支持 反对

使用道具 举报

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2012-7-28
在线时间
22 小时
发表于 2020-9-1 13:10:55 | 显示全部楼层
太利害了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-30 11:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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