小言_互联网的博客

按键选择功能项,有闪屏的情况,解决办法

369人阅读  评论(0)

功能:实现了一个功能,通过按键,可以选择一,二,三某个选项。

现象:按键的时候,会闪一下。

发现问题:

每更新一个界面的时候,程序里会清屏。

分析问题:

(清屏是给128*64bit 的区域全部写0)

更新界面,相当于写了两次的128*8byte的数据,一次清屏,一次写新界面,存在延时,延时就会有闪屏存在

写了8 page 的 0,才去写 有效的数据,会有延时的。

解决办法:

第一种方法:写一行0,写一行有效数据,不要写了8行(硬件page0-page7)的0,再去写有效数据。

第二种方法:不要清屏操作,有显示的区域更新新数据就行,无数据区域写0(清除上次的显示)。

代码实现如下:


  
  1. void display_function(uint8_t select_num)
  2. {
  3. color_font= 1;
  4. display_graphic1_12x12( 1,( 1+ 12* 3+ 8),gong1,color_font); /*在第1页,第25列显示单个汉字"功"*/
  5. display_graphic1_12x12( 1,( 1+ 12* 4+ 8),neng1,color_font); /*在第1页,第41列显示单个汉字"能"*/
  6. display_graphic1_12x12( 1,( 1+ 12* 5+ 8),xuan1,color_font); /*在第1页,第49列显示单个汉字"选"*/
  7. display_graphic1_12x12( 1,( 1+ 12* 6+ 8),ze1,color_font); /*在第1页,第57列显示单个汉字"则"*/
  8. if(STATE_SELECT_1 == select_num)
  9. {
  10. color_font= 0;
  11. display_graphic1_12x12( 3,( 1+ 8),shuzi1,color_font);
  12. display_graphic1_12x12( 3,( 1+ 12+ 8),dot1,color_font);
  13. display_graphic1_12x12( 3,( 1+ 12* 2+ 8),dian1,color_font);
  14. display_graphic1_12x12( 3,( 1+ 12* 3+ 8),chi1,color_font);
  15. display_graphic1_12x12( 3,( 1+ 12* 4+ 8),chong1,color_font);
  16. display_graphic1_12x12( 3,( 1+ 12* 5+ 8),dian1,color_font);
  17. display_graphic1_12x12( 3,( 1+ 12* 6+ 8),heiping,color_font);
  18. display_graphic1_12x12( 3,( 1+ 12* 7+ 8),heiping,color_font);
  19. color_font= 1;
  20. display_graphic1_12x12( 5,( 1+ 8),shuzi2,color_font);
  21. display_graphic1_12x12( 5,( 1+ 12+ 8),dot1,color_font);
  22. display_graphic1_12x12( 5,( 1+ 12* 2+ 8),dian1,color_font);
  23. display_graphic1_12x12( 5,( 1+ 12* 3+ 8),chi1,color_font);
  24. display_graphic1_12x12( 5,( 1+ 12* 4+ 8),xin1,color_font);
  25. display_graphic1_12x12( 5,( 1+ 12* 5+ 8),xi1,color_font);
  26. display_graphic1_12x12( 5,( 1+ 12* 6+ 8),heiping,color_font);
  27. display_graphic1_12x12( 5,( 1+ 12* 7+ 8),heiping,color_font);
  28. color_font= 1;
  29. display_graphic1_12x12( 7,( 1+ 8),shuzi3,color_font);
  30. display_graphic1_12x12( 7,( 1+ 12+ 8),dot1,color_font);
  31. display_graphic1_12x12( 7,( 1+ 12* 2+ 8),she1,color_font);
  32. display_graphic1_12x12( 7,( 1+ 12* 3+ 8),bei1,color_font);
  33. display_graphic1_12x12( 7,( 1+ 12* 4+ 8),xin1,color_font);
  34. display_graphic1_12x12( 7,( 1+ 12* 5+ 8),xi1,color_font);
  35. display_graphic1_12x12( 7,( 1+ 12* 6+ 8),heiping,color_font);
  36. display_graphic1_12x12( 7,( 1+ 12* 7+ 8),heiping,color_font);
  37. }
  38. if(STATE_SELECT_2 == select_num)
  39. {
  40. color_font= 1;
  41. display_graphic1_12x12( 3,( 1+ 8),shuzi1,color_font);
  42. display_graphic1_12x12( 3,( 1+ 12+ 8),dot1,color_font);
  43. display_graphic1_12x12( 3,( 1+ 12* 2+ 8),dian1,color_font);
  44. display_graphic1_12x12( 3,( 1+ 12* 3+ 8),chi1,color_font);
  45. display_graphic1_12x12( 3,( 1+ 12* 4+ 8),chong1,color_font);
  46. display_graphic1_12x12( 3,( 1+ 12* 5+ 8),dian1,color_font);
  47. display_graphic1_12x12( 3,( 1+ 12* 6+ 8),heiping,color_font);
  48. display_graphic1_12x12( 3,( 1+ 12* 7+ 8),heiping,color_font);
  49. color_font= 0;
  50. display_graphic1_12x12( 5,( 1+ 8),shuzi2,color_font);
  51. display_graphic1_12x12( 5,( 1+ 12+ 8),dot1,color_font);
  52. display_graphic1_12x12( 5,( 1+ 12* 2+ 8),dian1,color_font);
  53. display_graphic1_12x12( 5,( 1+ 12* 3+ 8),chi1,color_font);
  54. display_graphic1_12x12( 5,( 1+ 12* 4+ 8),xin1,color_font);
  55. display_graphic1_12x12( 5,( 1+ 12* 5+ 8),xi1,color_font);
  56. display_graphic1_12x12( 5,( 1+ 12* 6+ 8),heiping,color_font);
  57. display_graphic1_12x12( 5,( 1+ 12* 7+ 8),heiping,color_font);
  58. color_font= 1;
  59. display_graphic1_12x12( 7,( 1+ 8),shuzi3,color_font);
  60. display_graphic1_12x12( 7,( 1+ 12+ 8),dot1,color_font);
  61. display_graphic1_12x12( 7,( 1+ 12* 2+ 8),she1,color_font);
  62. display_graphic1_12x12( 7,( 1+ 12* 3+ 8),bei1,color_font);
  63. display_graphic1_12x12( 7,( 1+ 12* 4+ 8),xin1,color_font);
  64. display_graphic1_12x12( 7,( 1+ 12* 5+ 8),xi1,color_font);
  65. display_graphic1_12x12( 7,( 1+ 12* 6+ 8),heiping,color_font);
  66. display_graphic1_12x12( 7,( 1+ 12* 7+ 8),heiping,color_font);
  67. }
  68. if(STATE_SELECT_3 == select_num)
  69. {
  70. color_font= 1;
  71. display_graphic1_12x12( 3,( 1+ 8),shuzi1,color_font);
  72. display_graphic1_12x12( 3,( 1+ 12+ 8),dot1,color_font);
  73. display_graphic1_12x12( 3,( 1+ 12* 2+ 8),dian1,color_font);
  74. display_graphic1_12x12( 3,( 1+ 12* 3+ 8),chi1,color_font);
  75. display_graphic1_12x12( 3,( 1+ 12* 4+ 8),chong1,color_font);
  76. display_graphic1_12x12( 3,( 1+ 12* 5+ 8),dian1,color_font);
  77. display_graphic1_12x12( 3,( 1+ 12* 6+ 8),heiping,color_font);
  78. display_graphic1_12x12( 3,( 1+ 12* 7+ 8),heiping,color_font);
  79. color_font= 1;
  80. display_graphic1_12x12( 5,( 1+ 8),shuzi2,color_font);
  81. display_graphic1_12x12( 5,( 1+ 12+ 8),dot1,color_font);
  82. display_graphic1_12x12( 5,( 1+ 12* 2+ 8),dian1,color_font);
  83. display_graphic1_12x12( 5,( 1+ 12* 3+ 8),chi1,color_font);
  84. display_graphic1_12x12( 5,( 1+ 12* 4+ 8),xin1,color_font);
  85. display_graphic1_12x12( 5,( 1+ 12* 5+ 8),xi1,color_font);
  86. display_graphic1_12x12( 5,( 1+ 12* 6+ 8),heiping,color_font);
  87. display_graphic1_12x12( 5,( 1+ 12* 7+ 8),heiping,color_font);
  88. color_font= 0;
  89. display_graphic1_12x12( 7,( 1+ 8),shuzi3,color_font);
  90. display_graphic1_12x12( 7,( 1+ 12+ 8),dot1,color_font);
  91. display_graphic1_12x12( 7,( 1+ 12* 2+ 8),she1,color_font);
  92. display_graphic1_12x12( 7,( 1+ 12* 3+ 8),bei1,color_font);
  93. display_graphic1_12x12( 7,( 1+ 12* 4+ 8),xin1,color_font);
  94. display_graphic1_12x12( 7,( 1+ 12* 5+ 8),xi1,color_font);
  95. display_graphic1_12x12( 7,( 1+ 12* 6+ 8),heiping,color_font);
  96. display_graphic1_12x12( 7,( 1+ 12* 7+ 8),heiping,color_font);
  97. }
  98. }

 


转载:https://blog.csdn.net/happygrilclh/article/details/105666842
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场