一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 6450|回复: 6

各位大神求救,液晶屏写入后导致单片机重启,加电容无效。怎么解决呢?

[复制链接]
发表于 2017-3-18 10:37 | 显示全部楼层 |阅读模式
本帖最后由 davg1 于 2017-3-19 15:34 编辑 / Y  Z. Z$ @/ Z
, a8 D! E0 z# E, T9 D
非常感谢各位。. {+ \2 C$ Y. @. {) ?+ B
问题解决了。换了一片同型号的还有不同型号的都试了一下,都可以,只有那一片不可以,但是那一片烧录个别的测试程序也ok。很奇怪。小概率的事件遇到了。
' @; W5 V6 R& G" A正在研究屏幕显示汉字,还在乱码,图片是ok的。搞定了和大家分享。
# ^6 K5 ~; w5 ]' Q& h' F0 Y. _  A2 r" ]: O6 B; r
淘宝买的便宜货,在论坛各位大神的帮助下终于点亮了,可是还是有些问题。) b+ S) c' N- ]9 k( N" _
刷图的时候其他未刷部分是白色的,而且出现非常明显的从上到下刷屏的样子,,根本看不太清楚,改了单片机的频率也不行,还是出现刷屏,只是整个过程快了很多。
& _1 ~' p4 M' B& }' x% K无法达到一直显示的目的。问题找到了,是单片机一直在重启。
) @$ u0 E: j6 G& z0 h, [可是每次都是写入完图片的数据之后重启。如果只写入初始化不会重启。我在5v电源输入端和单片机输入端(3.3v)并联了100uf的电容,问题依然如故。陷入死结了。
( v/ W0 a# n5 t8 D3 d) A* }+ u/ |# V我该怎么办呢?
  N# |, a6 E: R5 p0 l0 F+ r
接线图如下。我在1117的输入输出都加了100uf的电容,还是不行。供电是用的5v1A的插头。
- r% `. d8 P% q/ m" Z 搜狗截图20170318224029.jpg * z4 Y# T4 e& b% I# {

- s# g$ S$ n. u& o6 L9 E
, e1 v3 o5 ]2 K. i3 [5 N" h- N/ q" b% Z3 k7 _5 x- K' h; l0 Z
如图,
; h4 [  q0 c& B) o: @ IMG_20170318_102649.jpg $ S6 j& n0 U. d2 w9 w

1 o& n0 s. x7 Q8 M/ t# [- K 1.jpg 4.jpg
. \1 x. n" [. A8 `1 z( E 3.jpg + X2 K0 Z! t( Q5 |

' S4 h8 M8 {9 y. G6 B7 S程序用的8 a: k" k4 D- a. R2 y6 c
https://www.yleee.com.cn/thread-57727-1-1.html
+ r# L$ Z/ p- Q- Q! \0 g' ~wangke2010提供的程序。他的显示就很正常 1.png
' |* V* m0 S2 v
6 M1 K5 ^0 A. ^. r9 D4 n6 K
请问该如何救呢?谢谢!!!!9 M) w! Z& H8 a7 r. B
  1. unsigned char code gImage_bmp2[] =/ W! @' S' R  b4 e' Z  ~
  2. {
    ' S, F6 r2 H6 o* w; t! ^
  3. 0xFF,0xFF,0xFE,0x33,0xFF,0x80,0x01,0x80,0x00,0x00,
    ' J1 {4 J# n7 g8 Z# Q; d' W  M
  4. 0xFF,0xFF,0xFE,0x33,0xFF,0x80,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0x00,, G- q( g/ Z7 h
  5. 0x01,0xC0,0x01,0x80,0x00,0x00,0x00,0x33,0xCD,0xFF,0xFF,0xE0,0x03,0x80,0x00,0x00,
    ' V" A0 c8 d* M
  6. 0x00,0x03,0xCD,0xFF,0xFF,0xF0,0x03,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xF8,1 R( h% l. P+ Q
  7. 0x07,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFC,0x1F,0x80,0x00,0x00,0x00,0x00,
    8 E1 G! Y+ a* J! M
  8. 0xCD,0xFF,0xFF,0xFE,0x1D,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFF,0x81,0x80,
    - m* C( z* e: ]5 ]  @  C
  9. 0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFF,0xC1,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,
    / e5 X3 E' E3 o0 {; E
  10. 0xFF,0xFF,0xC1,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFF,0x01,0x80,0x00,0x00,2 U4 G& t6 g2 c- }9 Z1 P
  11. 0x00,0x00,0xCD,0xFF,0xFF,0xFE,0x01,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xF8,: d$ H% \8 T" D3 G4 z3 E9 c
  12. 0x01,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xF0,0x01,0x80,0x00,0x00,0x00,0x00,! b. N% ]: _* A% X! O1 {* i; A
  13. 0xCD,0xFF,0xFF,0xE0,0x11,0x80,0x00,0x00,0x00,0x00,0xCC,0xEF,0xFF,0xE0,0x1F,0xFC,
      k# q0 z$ F0 R1 r6 n& p
  14. 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x1F,0xFC,0x00,0x00,0x00,0x00,0x00,0x0C,7 H5 i! d6 H& k6 v( D! F* U+ a: L7 V
  15. 0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xDF,0xFF,0xC0,0x00,0x00,0x00," i) ^" _1 R( `
  16. 0x00,0x00,0x00,0x1F,0xDF,0xFF,0xC0,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,) y$ y! d5 W& b. V& y3 l
  17. 0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,
    4 i( }6 W8 I, j# W9 j, x; z
  18. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x0F,0x00,0x33,0x3B,$ m9 ]* _; Q1 ^! s
  19. 0xFF,0xF8,0x00,0x00,0x00,0x00,0x1F,0xC0,0x73,0x7F,0xFF,0xF8,0x00,0x00,0x00,0x00,* T" g0 |& z1 g- P% U
  20. 0x1F,0xC0,0x73,0x7F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x1F,0xC0,0x73,0x7F,0xFF,0xFE,; f' V" x, p5 d
  21. 0x00,0x00,0x00,0x00,0x1F,0xC0,0x73,0x7F,0xFF,0xFF,0x80,0x00,0x00,0x00,0x03,0xC0,
    - h+ H# C% u6 B7 M$ L
  22. 0x73,0x7F,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x07,0x80,0x73,0x7F,0xFF,0xFF,0xF8,0x00,  g( r6 c" F% \& e- W2 j5 u
  23. 0x00,0x00,0x0F,0xE0,0x73,0x7F,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x0F,0xE0,0x73,0x7F,
    ( V, @5 O& V' Y% A, c( C- O
  24. 0xFF,0xFF,0xF0,0x00,0x00,0x00,0x0F,0xE0,0x73,0x7F,0xFF,0xFF,0x80,0x00,0x00,0x00,
    $ u5 N* ]6 f% V" L0 k
  25. 0x00,0x00,0x73,0x7F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x7F,0xFF,0xFE,
    , [, C6 W: D" m* c3 ~+ Q
  26. 0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x7F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,. ]3 e$ @, h5 v- U( u
  27. 0x73,0x7F,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,
    3 \1 |& A) k" {5 p" |3 M
  28. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,, `) X# @5 T, \: Y- b
  29. 0xF7,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF7,0xFF,0xF8,0x00,0x00,0x00,! N2 y; ^  h6 O
  30. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    6 d% b4 D5 r( Z4 s
  31. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    ' K" l! p5 d2 T6 M, O( \
  32. 0x00,0x00,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,
    " x/ S$ @# U* ?7 a, `, `
  33. 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,# p+ a" f; t  ^
  34. 0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,0x00,0x00,
    , J4 ]1 J! W4 [$ ?: U9 L
  35. 0x00,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF0,
    $ z& a% S! R1 ~/ v9 V
  36. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x30,0x00,0x00,0x00,0x00,0x00,0x00,9 b5 C% f( \; ~5 \
  37. 0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,
    - H, \' |4 F. m- ]/ e5 v" J
  38. 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0xFF,0x80,0x00,0x00,0x00,0x00,: M7 N- ]. L) n, R! A
  39. 0x01,0xC0,0x00,0x00,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x80,
    0 n* F4 Y" h6 I
  40. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,) T) z0 \, c! e
  41. };
    + m, N2 j; u( a: \5 j
  42. & e3 g: }3 @& O& l  [/ z
  43. / ?  G5 E0 s. P( a  L+ S% ]+ k
  44. /*  GPM1306.c) h8 A; L. K8 s6 M4 _
  45. *  Created on: 2016-10-196 b# j) ~2 ^. L8 o9 _
  46. *                  ┌─────────────────────────────────────────────┬───────────────┐
    % i/ {) j' P% I! R
  47. *  PIN_NO : 17    16     15    14    13    12   11    10    9    8    7    6     5     4    3     2     1* W& k1 J2 s# V! t- g
  48. *  NAME   : BK-K  BK-A   NC    SCL   SDA   A0   RST   nCS   NC   VDD  C1   VSS   VDD   C2   C31   C32   C4
    7 E2 n" i& A4 c: `; y3 I' k
  49. *  CONN   : GND   VCC          P1.4  P1.3  P1.2 P1.1  P1.0       VDD  │   │VSS  │VDD   │    │     │     │
    / U( E( C+ j' j+ K+ W0 @) X1 U
  50. *            │                                                        │   │     │      │    │     │     │
    & S0 b/ o6 W$ T) R
  51. *            │     C1-C5=1uF 25V 0805                                ───  │    ───    ───   │     │    ───2 y. Z9 W+ W5 q7 c' K
  52. *            │     120x160pix                                        ───  │    ───    ───   └─│ │-┘    ───
    / t, W* G- v2 c$ _! j
  53. *            │    ┌──────────┐                                        │C1 │     │C5    │C2       C3     │C4
    $ k  ?5 P: }: r/ Y8 S0 B3 l# u1 ~
  54. *            └────┤  R1=3R3  ├────────────────────────────────────────┴───┴─────┴──────┴────────────────┘# p  v6 V$ X& s. ?' Q8 X" v
  55. *                 └──────────┘
    " @; k! n9 K( }6 N
  56. *==================================================NOTICE==================================================$ e! k" u% ]5 F8 o+ |
  57. *这个程序仅供评估,没有任何技术支持。如有疑问,请仔细阅读压缩包中的PDF文件或者联系芯片/模块厂家。
    ) @6 C/ ^2 l6 e
  58. *这个模块还有很多功能没有在这个程序中体现出来,具体请参阅压缩包中的PDF文件或者联系芯片/模块厂家。% R0 B7 a* e# B$ u0 C
  59. *推荐使用TI的LaunchPad验证,如果使用别的板子/芯片,请根据具体情况修改移植源文件。
    4 \. x$ k9 R7 \5 B) D! Z% Q6 ]- A) O
  60. **************************************************移植参考**************************************************
    3 J' \1 J: a) P$ r* u1 }. P2 w
  61. *使用MSP430系列芯片可以直接使用或者修改一下脚位既可以。注意主频要和 #define Fosc 中定义保持一致。4 j% M0 g7 Z! O; _$ O/ s
  62. *移植至别的芯片请注意初始化IO和修改延时参数,修改脚位并注意void LCDInit(void)中有直接控制引脚的指令,需要一并修改。
    4 P. \. J! U* L- I! D: }
  63. *祝大家玩的开心。; D. ?. y/ N& D
  64. P1OUT |= BIT1;  是将P1OUT倒数第二位被置1
    ' h& g: w3 W9 w
  65. P1OUT&=~ BIT0 是将P1OUT最低位 清 0. i- s3 \) w0 S. h- _. G, k
  66. */9 G+ s; G* b! l$ O
  67. #include  "config.h"8 N6 g  ?+ i: i5 X* O2 _7 E( S
  68. #include  "Delay.c"  
    ( B, }/ \; w, V& d( c, z
  69. #define   GPM1306_nCS_CLR    P12=0
    ' M+ F2 j$ k  s& Z
  70. #define   GPM1306_nCS_SET    P12=1
    7 s- c" f6 h7 Z# I9 f4 v4 X
  71. #define   GPM1306_RST_CLR    P13=0
    3 U! ?/ W( Q* h- J: O
  72. #define   GPM1306_RST_SET    P13=1) F  g; q$ k* T, Z" W6 o
  73. #define   GPM1306_A0_CLR     P14=0
    % U: _& A, b- `2 i5 L/ {4 N
  74. #define   GPM1306_A0_SET     P14=1" [6 W% m, Q* A% H5 J. D
  75. #define   GPM1306_SDA_CLR    P15=0) u5 @2 b/ t% V* R+ Z
  76. #define   GPM1306_SDA_SET    P15=19 H( O% _1 B- X/ z9 w" Q+ b8 p0 L. W" O
  77. #define   GPM1306_SCL_CLR    P54=0
    # v/ h& ]: \2 f
  78. #define   GPM1306_SCL_SET    P54=1
    ! @5 B/ y' u8 r* z, }8 ^; O
  79. $ t0 U8 B4 ~) Q& p. Z

  80. 8 h+ T0 I( b8 Q) Y7 _# E6 f* [" [
  81. void LCDWriteCmd(char cmd)
      I% {2 [- i/ D. N, j
  82. {# _) h$ T: }+ Z
  83.         unsigned char i ;) T6 a) T$ \+ y- `
  84.         GPM1306_nCS_CLR;          //使能芯片
    " E+ H+ t) t+ Y/ r
  85.         GPM1306_A0_CLR;//写命令模式# ?  h4 e: O9 r1 p2 s" |. ?: c
  86.         for(i=0;i<8;i++)
    3 s6 T( \0 L" [) O& ~: F: p
  87.         {
      n- I4 R/ p3 B: ^/ \& i8 P0 {
  88.                 GPM1306_SCL_CLR;
    4 [% j- _9 J6 k/ l$ R
  89.                 if(cmd&0x80)    //先传高位字节,后传低位字节9 v& K  k' j  X+ ?$ d
  90.                         GPM1306_SDA_SET;
    ( V; |: Y+ k. L+ l+ O. m- w
  91.                 else$ A* l9 K2 q  G+ T2 S, L" E% T7 E. z
  92.                         GPM1306_SDA_CLR;
    % @# n5 F3 _; G- [# {' U. b
  93.                 GPM1306_SCL_SET;5 m& Z4 T4 @8 l
  94.                 cmd=cmd<<1;9 n4 Y2 B( I4 U8 i; G" h; U. K
  95.         }: c$ T5 y& ^3 B! w3 Y
  96.         GPM1306_nCS_SET;* p2 _& s' B( u  {6 D
  97. }- C. o- j8 c4 F; \/ Z- q6 ^7 X8 @
  98. void LCDWriteData(char cmd)8 T& v. R8 @3 a# q9 i3 o% O; j
  99. {
    8 [4 k* Q& x  [- j/ H7 Y3 i% f3 r
  100.         unsigned char i ;
    3 e6 g8 R) J. q9 c2 X' l5 c9 v
  101.         GPM1306_nCS_CLR;          //使能芯片+ L  n+ R: y0 P' R& X8 f" K
  102.         GPM1306_A0_SET;//写数据模式
    0 B. R( @: e% O, [/ Y- z% Q
  103.         for(i=0;i<8;i++)7 ^+ C/ u, ^( m5 ]
  104.         {
    6 Y- c& d9 N3 V' q2 A
  105.                 GPM1306_SCL_CLR;
    . k# j5 j- U2 |) u6 |+ ~
  106.                 if(cmd&0x80)    //先传高位字节,后传低位字节
    ' r. f0 C9 v# M* H/ u  F9 y1 x/ G
  107.                         GPM1306_SDA_SET;" p: J$ }5 o4 Q4 h
  108.                 else
    ) |6 w) P: l0 \
  109.                         GPM1306_SDA_CLR;
    & e/ n1 ^& d3 F, q9 ^
  110.                 GPM1306_SCL_SET;8 {" }" H4 S6 q- J0 A8 H4 Q
  111.                 cmd=cmd<<1;
    6 m% O5 D5 z/ s9 N* O7 c4 h8 Z
  112.         }' b8 H' I. v7 R0 ?* |4 Y
  113.         GPM1306_nCS_SET;
    5 D0 N2 V7 L, w$ ~6 N
  114. }' Z  ?& Y! ~4 D
  115. //设置起始行列
    1 v+ O, x  B2 q0 L4 a, o7 q
  116. //ys为起始行,xs为起始列, ye为结束行, xe为结束列
    5 A+ G) s% W6 j( q9 E
  117. //xe与xs的差值即字的宽度, ye与ys的差值即字的高度
    ) p5 a; l" E  M, u* z" R7 v) S
  118. void LCDSetXY(char xs, char ys, char xe, char ye )
    - s- F% v  r! G. b3 b- S
  119. {
    ; i& G# k0 f! @, F0 u1 V
  120.         LCDWriteCmd(0x2A); //设置列地址(横坐标)  V3 h8 Y" M6 y- h) I# P
  121.         LCDWriteData(0x00);6 n/ e% _' w" F
  122.         LCDWriteData(xs);
    0 {2 i7 V, H# [2 z; N# C9 Y. s
  123.         LCDWriteData(0x00);0 l: o+ |  |+ T4 c+ A  u5 c
  124.         LCDWriteData(xe);
    5 t8 a" F/ ?, O7 o8 j
  125.         LCDWriteCmd(0x2B); //设置行地址(纵坐标)# B( s) j* h0 S" R
  126.         LCDWriteData(0x00);$ q. B! _6 N/ |+ I( K* D% R1 s3 I
  127.         LCDWriteData(ys);8 p: e' G6 _8 \& j3 W
  128.         LCDWriteData(0x00);4 J1 `1 g7 W& p
  129.         LCDWriteData(ye);
    $ Y9 B5 y9 ^( i9 U
  130. }
    ) K" W  u' e+ N7 t5 H) {  ]
  131. //清屏函数- S9 o: [# J) J
  132. void LCD_ClrScreen(unsigned char value)
    ! b% l7 h7 h$ _& Q5 x
  133. {( A) r. b) z) G( l
  134.         unsigned char i,j;- ]' ^7 }; E4 b
  135.         const unsigned char tt[]={0x00,0x49,0x92,0xff,};' f7 Y7 V7 }$ ^. x. H; _& e; z  r7 D
  136.         value=value&0x03;
    1 F+ m3 S* X, j  z
  137.         value=tt[value];
    ) E$ l5 `# Y# h+ X
  138.         LCDSetXY(0,0,53,119);% D, W8 o1 a* {1 P- l, Z
  139.         LCDWriteCmd(0x2C);  //向DDRAM写入显示数据
    % Z8 Y. u+ P; i6 s. p
  140.         for(i=0;i<120;i++), W  h+ F" G. ~2 u
  141.                 for(j=0;j<54;j++)4 p( m+ J  E( r; X4 p6 A8 B
  142.                         LCDWriteData(value);( m' Z, k' v" B& v9 E
  143. //        P1 ^=BIT6;
    8 [" E, _2 w& @7 t
  144. }
    " t# w1 l7 b8 Y- X- e3 w1 u
  145. void GPM1306_DISBMP1(const unsigned char *BMP1)
    " Z2 E/ m- F) Z# W4 t( I
  146. {
    1 b7 x8 G  i( h
  147.         unsigned long MCx8x31;) U9 ^8 k$ s( [5 o5 p1 X6 ~
  148.         unsigned char LINE_COUNT1,COLUNM_COUNT1,color1,t2;: R) A& G" i4 X* a) L5 h
  149.           signed char vaild_bit1=8;2 }% b: k3 c/ [" b2 l5 s0 z
  150.         ((unsigned char *)&MCx8x31)[2]=*BMP1;3 d0 p/ ]7 N4 C! ~- }' m
  151.         BMP1++;
    $ X- f" E, @' @
  152.         LCDSetXY(10,0,36,60);
    3 F( @/ n% l* A# y: f2 O$ l
  153.         LCDWriteCmd(0x2C);  //向DDRAM写入显示数据
    - R3 _% a" i" e2 I0 W! H+ L# X
  154.         for(LINE_COUNT1=0;LINE_COUNT1<120;LINE_COUNT1++)
    , l/ V  b2 i/ X9 b! }7 A: F
  155.         {
    . `5 I0 u$ ~% J! {- E
  156.                 for(COLUNM_COUNT1=0;COLUNM_COUNT1<53;COLUNM_COUNT1++)//160/3=53....1' h6 X! h6 `! b9 O! u
  157.                 {8 X$ O4 l1 y6 W
  158.                         if(vaild_bit1<3)- ^1 ^' {) ~' U/ Q
  159.                         {2 i: c. q) I) T) H1 \* }( A
  160.                                 MCx8x31=MCx8x31<<vaild_bit1;5 n6 b9 J- h7 n7 L5 M' x
  161.                                 ((unsigned char *)&MCx8x31)[2]=*BMP1;& E; D( z# D4 p% Y
  162.                                 BMP1++;* I: `( |/ S9 @- t* ]/ a, u: _
  163.                                 MCx8x31=MCx8x31>>vaild_bit1;
    , D* E2 x" U0 {: Y9 r- n+ ^+ C' U
  164.                                 vaild_bit1=vaild_bit1+8;
    / o- l3 X; V; O  }) h
  165.                         }% A) ?7 `8 q9 I
  166.                         color1=0;
    + N% P: b" \/ Q# F5 `( c# _
  167.                         t2=((unsigned char *)&MCx8x31)[2];
    5 z1 n4 o& d& w, s6 m( h+ v6 |
  168.                         if((t2&0x80))& t4 x/ m& J: G. K0 X" j$ @* _
  169.                                 color1=0x03;1 P7 `7 z7 V, d
  170.                         if((t2&0x40))
    ) J, ]$ X" x/ e/ Q/ l) K
  171.                                 color1=color1+0x1c;
    ( u; d7 L  ?0 O6 a4 R( x
  172.                         if((t2&0x20))* D6 F$ p7 O6 X( D4 `% L7 T
  173.                                 color1=color1+0xe0;- H8 G) [) E& d# ~8 }0 ?7 @2 e
  174.                         MCx8x31=MCx8x31<<3;' N5 U( J( a+ J
  175.                         vaild_bit1=vaild_bit1-3;
    5 \3 x+ Y# ]3 F5 H" l* [# ~* J2 O
  176.                         LCDWriteData(color1);
    ; V- r% i* ?( D0 o7 k
  177.                 }8 c& H8 E! x' l' j
  178.                 if(vaild_bit1<3)
    " Y! W" J+ Z4 f7 T2 F
  179.                 {1 P0 |4 y' d& n3 G- a8 n. Y
  180.                         MCx8x31=MCx8x31<<vaild_bit1;
    ( P0 x  g8 z; v' m
  181.                         ((unsigned char *)&MCx8x31)[2]=*BMP1;
    * i0 g8 m0 ^/ d8 A2 Z* [
  182.                         BMP1++;4 n* f% {. a* n/ t7 f; A
  183.                         MCx8x31=MCx8x31>>vaild_bit1;
    # T9 i3 L' W1 H- u7 \* t
  184.                         vaild_bit1=vaild_bit1+8;  X# C3 I6 N; i" D9 Z3 X% [; j+ ]( F
  185.                 }
    # B4 {4 c& z3 G6 H
  186.                 color1=0;
    7 m2 \/ D4 D. n1 X
  187.                 t2=((unsigned char *)&MCx8x31)[2];; R2 a. N! O  x4 ?: q- c
  188.                 if((t2&0x80))  n" w/ J' x7 K0 [
  189.                         color1=0x03;' y0 }4 B9 o, U
  190.                 MCx8x31=MCx8x31<<1;
    . C# b( t9 K, c  W
  191.                 vaild_bit1=vaild_bit1-1;0 }& u: N4 R/ i3 c% L$ e/ r( A% h
  192.                 LCDWriteData(color1);: F" Q% V/ G+ u% p8 ?# F) K
  193.         }
    2 O7 m; ?* g" o6 ]
  194. }
    - ^1 O% y( b8 l! g4 y
  195. //初始化函数( _. i# ~/ M% A" J1 d
  196. void LCDInit(void)
    2 g- J4 b7 c. d# d- C) |5 [) a
  197. {: \+ k5 @% I2 a/ J2 S
  198.         GPM1306_RST_CLR;: {% f! V8 Q4 M
  199.         delay_us(20);- ~) i- n) N) v6 o5 v5 ]
  200.         //__delay_cycles(Fosc*0.2);//Delay_ms(20)   //延时20ms
    " U& b/ ?  E) z8 y2 `
  201.         GPM1306_RST_SET;
    * C, ^% {8 S, ^
  202.         delay_us(40);
    9 m0 Q7 x  p0 r+ A% V! K
  203.         //__delay_cycles(Fosc*0.4);//Delay_ms(200); //延时200ms* \* _" ^7 i' J( ?8 z8 X
  204.         LCDWriteCmd(0x01);   // soft reset
    2 w( L" k/ y% V
  205.         delay_us(40);
    + ], J7 s- H1 d! ?% c6 C8 E
  206.         //__delay_cycles(Fosc*0.4);//Delay_ms(200); //延时200ms- c/ E: C( u9 u& |. c0 T# t8 o
  207.         LCDWriteCmd(0x11); //Set power save mode:Sleep out mode
    " y7 ~, w- t# j. h
  208.         LCDWriteCmd(0xC0); // Set Vop///9 `1 V9 T2 `7 A$ m+ Z
  209.         LCDWriteData(0xf0); // Set Vop Low 8bit               30//全屏太黑或者太白调整这里) a$ e, k& t' y: `0 ?8 f& r' F
  210.         LCDWriteData(0x00); // Set Vop 9th bit(Total 9 bits)  01//全屏太黑或者太白调整这里
    . _5 _9 X2 x6 ~7 Z0 \9 i4 D, x
  211.         LCDWriteCmd(0xC3); //Set BIAS system
    ) \' t7 s2 E) i) ^: D' K0 m  v
  212.         LCDWriteData(0x04); // 03: BIAS = 1/11  0-5* W. M. x5 R" t! C4 f5 G
  213.         LCDWriteCmd(0xC4); // Set booster level/ C: E0 V/ v3 t& V+ a  \
  214.         LCDWriteData(0x07); // 07:x8 Booster
    . t" a; r* ^# x, c
  215.         LCDWriteCmd(0xD0); // Enable analog circuit
    # [1 T, r# m% ?2 ]. y- v1 ?% J
  216.         LCDWriteData(0x1D); // Enable analog circuit
    2 J  x* q' ]. `3 z3 }; E: o. n
  217.         LCDWriteCmd(0x38); // Set display mode: M=1: Monochrome mode5 F1 l& R  z+ O4 a2 P( v
  218.         LCDWriteCmd(0x3A); //Enable DDRAM interface
    : \1 z3 p" k7 X  t! l5 w: Y
  219.         LCDWriteData(0x02); //RIF=0: Monochrome mode & 4-level gray scale mode' u' ~1 }1 P( l2 G5 R7 D
  220.         LCDWriteCmd(0x36); // Display Control* y* M$ _" N: p( n  B
  221.         LCDWriteData(0x40); // MY=0: COM0-COM159/MX[1:0]=(0,0):SEG0<-SEG3834 n( O/ o; e/ c0 {8 k
  222.         LCDWriteCmd(0xB0); // Display Duty5 Z6 ~/ E5 d& ^& V; m
  223.         LCDWriteData(0x81); //Set display duty DT=0x9Fh(1/160)  DT=0x81(1/130)
    / j5 ?: C( t# C- z- \3 a
  224.         LCDWriteCmd(0x20); // Inverse Display:INV=0: Normal display
    8 ]8 W- x0 }3 q
  225.         LCDWriteCmd(0xf1); //Frame Rate(Monochrome Mode)
    2 |. D6 R! s! W$ l6 B4 b
  226.         LCDWriteData(0x15);//Frame Rate 92.0Hz
    ( P6 A, v+ f" w
  227.         LCDWriteData(0x15);
    # Y+ r* R" \$ i+ c6 }
  228.         LCDWriteData(0x15);
      _2 H& {' f1 C; x
  229.         LCDWriteData(0x15);
    - E6 P: F$ a! m( K6 M% D
  230.         LCDWriteCmd(0xb1); // First Output COM. }9 r5 L& @. B" i4 p& m6 y/ n% \
  231.         LCDWriteData(0x00); // Set first output COM           FC=00h(Start from COM0)3 m3 F2 h) T+ E
  232.         LCDWriteCmd(0x29); //Display ON
    2 o" f& N8 [7 t% W  T0 z
  233. }1 L! ]% [3 y7 u8 y$ a8 E2 a

  234. 7 Q) Q# Y) h6 l; g) b- a8 h" r
  235. void main()
    0 P$ B/ M+ N  t0 r
  236. {* G5 ]$ B2 Z: D* ?

  237. - L" w6 V8 ]8 q! q+ X# _0 _
  238.         LCDInit();  //初始化液晶- R2 f" H; D9 r# D/ ]1 U; O! b
  239.                 LCD_ClrScreen(0);" ?/ C& g# t) x. D
  240.                 delay_us(10);: e. H2 @; A& I$ D0 f
  241.                 LCD_ClrScreen(1);
    " Y; Q# B( t* |
  242.                 delay_us(10);
    $ H/ O: g" m) |
  243.                 LCD_ClrScreen(2);
    ) P8 x) n! u  R
  244.                 delay_us(10);# F: s0 R* s& R" y9 m
  245.                 LCD_ClrScreen(3);
    " N9 |  u- R. D/ e, B8 [* B
  246.                 delay_us(10);' m8 l  l$ v! P& I# [& m: q% o% k
  247.                 " I8 B  `1 ?, L/ @. ?6 d: w" n+ J* s
  248.         while(1)$ e' `8 T2 |# R2 y
  249.         {! F4 v4 s  v  C! D, j
  250.         //        GPM1306_DISBMP1(gImage_bmp1);
    : Y. j0 x: F9 b
  251.          GPM1306_DISBMP1(gImage_bmp2);
    1 l3 ?1 V' p8 }, U, n& J9 H
  252. / o! y) S1 U0 V; ]0 R- \

  253. 2 [/ n. M7 n6 S  J
  254.         }8 q5 X1 a7 y7 O1 @1 Z2 [! f
  255. }
    8 f8 T/ r1 b; f$ w  n5 H

  256. ; ~' N/ T/ z# V
复制代码

$ x1 f  N3 n8 n9 @
3 p- r4 `+ O  l6 f7 a& o7 J/ Y( _' j0 \" H7 L- a* l- G
9 P* A& l! K, i( @

" c) O& D( \9 O* l. R
发表于 2017-3-18 17:55 | 显示全部楼层
你主程序里不是一直刷屏吗?
回复

使用道具 举报

 楼主| 发表于 2017-3-18 19:45 来自手机 | 显示全部楼层
more 发表于 2017-3-18 17:55  p# m" K) T: z, Z  T9 g
你主程序里不是一直刷屏吗?

6 |" X# r9 S. o& m2 Z放在外面也这样的,只刷入一次也这样,不明白为什么呢
回复

使用道具 举报

发表于 2017-3-19 08:57 | 显示全部楼层
如果你不停的刷而且 MCU 速度慢的话是这样的.' S7 L( ?/ _" @9 `/ e# ?
你至少发个程序给大家看看啊.
回复

使用道具 举报

发表于 2017-3-19 12:23 | 显示全部楼层
内存不够?瞎猜的
回复

使用道具 举报

 楼主| 发表于 2017-3-19 15:32 | 显示全部楼层
junyee 发表于 2017-3-19 08:57
* k; ^1 \/ p9 D7 [3 D5 K) C$ b如果你不停的刷而且 MCU 速度慢的话是这样的.
- R3 X2 \" z  |4 U+ R1 b+ z你至少发个程序给大家看看啊.

" H4 l4 e; L3 o8 o问题解决了。换了一片同型号的还有不同型号的都试了一下,都可以,只有那一片不可以,但是那一片烧录个别的测试程序也ok。很奇怪。小概率的事件遇到了。
( W1 O5 N  N9 R* ]( K5 X9 t
回复

使用道具 举报

 楼主| 发表于 2017-3-19 15:33 | 显示全部楼层
mytomatoes 发表于 2017-3-19 12:23/ d- T- R9 h0 ?+ C2 Q
内存不够?瞎猜的

7 _, }8 T+ U/ N; B+ L- D问题解决了。换了一片同型号的还有不同型号的都试了一下,都可以,只有那一片不可以,但是那一片烧录个别的测试程序也ok。很奇怪。小概率的事件遇到了。
- r* x0 ]& c/ m" N( g我用的确实是小内存的。  W: u" x. I+ J$ ?
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2026-1-11 17:24 , Processed in 0.040237 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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