原创 UFUN开发板实验笔记(2)

2019-8-24 15:46 1206 11 1 分类: MCU/ 嵌入式 文集: 开发板笔记
每一件MCU设备、工具起步的第一件是就是要发出声“Hello World”,UFUN开发板也不例外。在开发板例程中已经带了Hello World程序,这个例程的名字是“基础例程4 - USB串口与PC通讯”,烧录后在串口模式下9600波特率连接,PC向UFUN发送0x10,UFUN会不断向PC发送符号拼接的“Hello World”,直到PC发送0x11才停止。
 
这是智能化设备“苏醒”后的常规动作,向World宣告一下“我醒了”。上期我们给UFUN添加了128x64点阵的OLED屏,并且点亮宣告“I am UFUN”,这就相当于给UFUN开发板加了一张嘴,UFUN有了表达的愿望。那么,通过小小的OLED屏幕UFUN能表达哪些内容呢?开发之前我们得了解一下,最好能让UFUN告诉我们。在上期的工程目录下我们可以找到“codetab.h”文件,这是一个点阵字库文件,里面可以看到四个点阵码表:16x16点阵汉字(用到的几个汉字)、6x8点阵字符(92个ASC字符)、8x6点阵字符(92个ASC字符)、图片点阵。我们取出6x8点阵字符码表看一下:
  1. /************************************6*8的点阵************************************/
  2. const unsigned char F6x8[][6] =
  3. {
  4. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,// sp
  5. 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,// !
  6. 0x00, 0x00, 0x07, 0x00, 0x07, 0x00,// "
  7. 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14,// #
  8. 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12,// $
  9. 0x00, 0x62, 0x64, 0x08, 0x13, 0x23,// %
  10. 0x00, 0x36, 0x49, 0x55, 0x22, 0x50,// &
  11. 0x00, 0x00, 0x05, 0x03, 0x00, 0x00,// '
  12. 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00,// (
  13. 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00,// )
  14. 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14,// *
  15. 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08,// +
  16. 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00,// ,
  17. 0x00, 0x08, 0x08, 0x08, 0x08, 0x08,// -
  18. 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,// .
  19. 0x00, 0x20, 0x10, 0x08, 0x04, 0x02,// /
  20. 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
  21. 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00,// 1
  22. 0x00, 0x42, 0x61, 0x51, 0x49, 0x46,// 2
  23. 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31,// 3
  24. 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10,// 4
  25. 0x00, 0x27, 0x45, 0x45, 0x45, 0x39,// 5
  26. 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
  27. 0x00, 0x01, 0x71, 0x09, 0x05, 0x03,// 7
  28. 0x00, 0x36, 0x49, 0x49, 0x49, 0x36,// 8
  29. 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E,// 9
  30. 0x00, 0x00, 0x36, 0x36, 0x00, 0x00,// :
  31. 0x00, 0x00, 0x56, 0x36, 0x00, 0x00,// ;
  32. 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,// <
  33. 0x00, 0x14, 0x14, 0x14, 0x14, 0x14,// =
  34. 0x00, 0x00, 0x41, 0x22, 0x14, 0x08,// >
  35. 0x00, 0x02, 0x01, 0x51, 0x09, 0x06,// ?
  36. 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E,// @
  37. 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C,// A
  38. 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36,// B
  39. 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22,// C
  40. 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C,// D
  41. 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41,// E
  42. 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01,// F
  43. 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A,// G
  44. 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F,// H
  45. 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00,// I
  46. 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01,// J
  47. 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41,// K
  48. 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40,// L
  49. 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F,// M
  50. 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F,// N
  51. 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E,// O
  52. 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06,// P
  53. 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
  54. 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46,// R
  55. 0x00, 0x46, 0x49, 0x49, 0x49, 0x31,// S
  56. 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01,// T
  57. 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F,// U
  58. 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F,// V
  59. 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F,// W
  60. 0x00, 0x63, 0x14, 0x08, 0x14, 0x63,// X
  61. 0x00, 0x07, 0x08, 0x70, 0x08, 0x07,// Y
  62. 0x00, 0x61, 0x51, 0x49, 0x45, 0x43,// Z
  63. 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00,// [
  64. 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55,// 55
  65. 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00,// ]
  66. 0x00, 0x04, 0x02, 0x01, 0x02, 0x04,// ^
  67. 0x00, 0x40, 0x40, 0x40, 0x40, 0x40,// _
  68. 0x00, 0x00, 0x01, 0x02, 0x04, 0x00,// '
  69. 0x00, 0x20, 0x54, 0x54, 0x54, 0x78,// a
  70. 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38,// b
  71. 0x00, 0x38, 0x44, 0x44, 0x44, 0x20,// c
  72. 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F,// d
  73. 0x00, 0x38, 0x54, 0x54, 0x54, 0x18,// e
  74. 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02,// f
  75. 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C,// g
  76. 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78,// h
  77. 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00,// i
  78. 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00,// j
  79. 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00,// k
  80. 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00,// l
  81. 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78,// m
  82. 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78,// n
  83. 0x00, 0x38, 0x44, 0x44, 0x44, 0x38,// o
  84. 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18,// p
  85. 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC,// q
  86. 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08,// r
  87. 0x00, 0x48, 0x54, 0x54, 0x54, 0x20,// s
  88. 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20,// t
  89. 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C,// u
  90. 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C,// v
  91. 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C,// w
  92. 0x00, 0x44, 0x28, 0x10, 0x28, 0x44,// x
  93. 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C,// y
  94. 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44,// z
  95. 0x14, 0x14, 0x14, 0x14, 0x14, 0x14,// horiz lines
  96. };


从码表中我们可以大致看到点阵屏能显示的一些ASC字符内容,有了这个码表,就等于让UFUN有了表达内容的媒介——语言元素。接下来,我们要做的是让UFUN自己告诉我们它现在能显示出哪些字符。编写新程序开始,把原先的工程目录完全复制,修改目录名、工程名,该改的改,该删的删。main.c文件修改成如下内容:

  1. int main(void)
  2. {
  3. unsigned char j,n,m;
  4. unsigned char strm[2];
  5. DelayInit();
  6. I2C_Configuration();
  7. OLED_Init();
  8. OLED_Fill(0x00);//清屏
  9. while(1)
  10. {
  11. OLED_ShowStr(0,0,"I can show (6x8):",1);// 标题测试6*8字符
  12. for(j=0;j<7;j++)
  13. {
  14. for(n=0;n<14;n++)
  15. {
  16. m=j*14+n+32;
  17. strm[0]=m;
  18. strm[1]=0;
  19. OLED_ShowStr(n*8+8,j+1,strm,1);
  20. }
  21. }
  22. DelayS(3);
  23. }
  24. }
重要的是要将码表中的内容按顺序排列在128x64点阵屏内,第一行显示标题,64/8还剩7行,每行显示14个字符,总共可以显示98个字符,还多出了6个位置。每行14个字符,共需14x6=84点,每字后面空2个点,14x8=112点。128-112=16点,左右各空8点正好,算上末尾字符无需空的两点,实际左右各空9个点也是合适。看着短短的几行,花费了一上午的时间,原因在于如何把数值变为字符串成为显示函数的参数颇费周折,不多说,看看最后的显示效果。

作者: lyyinhe_xi, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-218568.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论2条评论)

登录后参与讨论

开发工匠 2019-8-26 09:59

写的好,学习了,

curton 2019-8-24 20:47

学习了
相关推荐阅读
lyyinhe_xi 2020-09-13 15:15
【2020意法半导体开发大赛】智能种植管理应用(1)
      承蒙面包板社区和意法半导体的厚爱,这次顺利申请到了ST25R3916开发板套餐。本次申请是希望在学校开展的金佛手种植实践智能化大棚建设中试用其智能化管理的价值...
lyyinhe_xi 2020-07-05 12:48
【富芮坤物联网开发板评测】任务模式编程和经验主义教训记录
          很高兴能够申请到富芮坤物联网开发板。富芮坤开发的FR8016H是符合BLE5.0标准的SOC芯片,内置16位audio ...
lyyinhe_xi 2020-06-03 00:09
【MM32 eMiniBoard】01.初体验:简单测试
       很快乐能够在六一前收到这块可爱的载有MM32W373PSB主控芯片的MM32 eMiniBoard,先说说它的特点:作为Cortex-M3内核32...
lyyinhe_xi 2020-05-11 22:56
两台09年的液晶显示器拆解比较和改装(五)
      LED灯条装入屏槽比较顺利,比原来想的要简单。重要的是拆装件要顺序摆放,背光板有好几层,方向和位置要原样装回。接下来是要点亮灯条,实际在屏幕组装封回去前就进行...
lyyinhe_xi 2020-05-10 11:50
两台09年的液晶显示器拆解比较和改装(四)
      两台液晶显示器拆解中没有发现元器件有烧毁、损坏痕迹,但是实实在在已经无法点亮。分析一下,解码控制板不太容易受到损坏,不点亮的原因还是荧光灯管的高压供电部分不能...
lyyinhe_xi 2020-05-10 11:05
两台09年的液晶显示器拆解比较和改装(三)
      两台产自09年的显示器拆解已完成,可以做一个简单对比。一台长城M9WEL5液晶显示器,一台冠捷科技生产的一台19寸宽屏TFT19W80PS显示器,都是19寸宽...
广告
我要评论
2
11
1
2
3
4
5
6
7
8
9
0
广告
关闭 热点推荐上一条 /5 下一条