一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

搜索
查看: 5954|回复: 6

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

[复制链接]
发表于 2017-3-18 10:37 | 显示全部楼层 |阅读模式
本帖最后由 davg1 于 2017-3-19 15:34 编辑
  G& I% |, W$ O; l( `
" i2 g; `+ C7 A# l2 ~. F非常感谢各位。
+ |+ {) \% U. q, }" f问题解决了。换了一片同型号的还有不同型号的都试了一下,都可以,只有那一片不可以,但是那一片烧录个别的测试程序也ok。很奇怪。小概率的事件遇到了。) a9 |+ Z2 @3 h( f. i" u
正在研究屏幕显示汉字,还在乱码,图片是ok的。搞定了和大家分享。( B& ^; S* s2 v7 S
& I7 k2 z3 s) {$ w, u+ A# w
淘宝买的便宜货,在论坛各位大神的帮助下终于点亮了,可是还是有些问题。$ ~; U  f, P9 h
刷图的时候其他未刷部分是白色的,而且出现非常明显的从上到下刷屏的样子,,根本看不太清楚,改了单片机的频率也不行,还是出现刷屏,只是整个过程快了很多。5 {4 k) O* W, Z, n7 q7 ?2 d; t3 _
无法达到一直显示的目的。问题找到了,是单片机一直在重启。
( }( k7 w. }' `: W5 O. P可是每次都是写入完图片的数据之后重启。如果只写入初始化不会重启。我在5v电源输入端和单片机输入端(3.3v)并联了100uf的电容,问题依然如故。陷入死结了。
" t  ?: x& }9 D; v# X# _- k我该怎么办呢?

4 c# V7 v6 [, w& a$ P接线图如下。我在1117的输入输出都加了100uf的电容,还是不行。供电是用的5v1A的插头。8 T! U0 X  x% L6 y' ~# m) z7 u
搜狗截图20170318224029.jpg
& o: b8 o9 ^: y* C

9 F' t# [( f; ?; o4 f: o, |. D8 E6 J1 e9 L4 I
$ r, X( w3 j" j: L1 Q8 a
如图,
4 ^/ X8 E0 t. j; n4 J2 ~ IMG_20170318_102649.jpg 3 c# v. w' w/ i- ]

6 F7 L( S( A; |; F6 _5 d 1.jpg 4.jpg
2 a& E6 O5 _6 k/ a* x 3.jpg + [4 A7 W# y  W# K. [4 G& O

" a4 |; S  `! v7 T7 k程序用的
5 K; u* S$ Z. ^4 @5 z( khttps://www.yleee.com.cn/thread-57727-1-1.html/ \& g- E' ~' _1 j: ^. k
wangke2010提供的程序。他的显示就很正常 1.png
( V" l  J+ @( d" |  Q
2 p4 q+ c# x* K4 {
请问该如何救呢?谢谢!!!!6 g. G# F0 q: y7 `. D/ I5 J+ c
  1. unsigned char code gImage_bmp2[] =
    1 H* O) p+ K& H$ t
  2. { ! q' p: `- R0 d/ g5 q
  3. 0xFF,0xFF,0xFE,0x33,0xFF,0x80,0x01,0x80,0x00,0x00,
    ( Z$ Z) y+ K; n3 q8 G3 W
  4. 0xFF,0xFF,0xFE,0x33,0xFF,0x80,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0x00,
    * E% `7 W! M5 K( i
  5. 0x01,0xC0,0x01,0x80,0x00,0x00,0x00,0x33,0xCD,0xFF,0xFF,0xE0,0x03,0x80,0x00,0x00,
    / c$ V: y1 y# l+ b+ C
  6. 0x00,0x03,0xCD,0xFF,0xFF,0xF0,0x03,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xF8,: H7 J4 J0 }6 ~# l& R3 k, W' M- S
  7. 0x07,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFC,0x1F,0x80,0x00,0x00,0x00,0x00,4 |- t# k6 P4 V8 {: e
  8. 0xCD,0xFF,0xFF,0xFE,0x1D,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFF,0x81,0x80,& q+ i! ^1 g1 `9 K5 X/ V6 K7 N4 R, Z
  9. 0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFF,0xC1,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,
    : Q* a) u- F, e* ?1 k. c8 s
  10. 0xFF,0xFF,0xC1,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFF,0x01,0x80,0x00,0x00,
    / D; k& G. M5 w+ P2 C+ Y
  11. 0x00,0x00,0xCD,0xFF,0xFF,0xFE,0x01,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xF8,
    0 J3 W* b) h% n& k7 q
  12. 0x01,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xF0,0x01,0x80,0x00,0x00,0x00,0x00,
    - C" E1 Q- d6 \8 k2 }# S
  13. 0xCD,0xFF,0xFF,0xE0,0x11,0x80,0x00,0x00,0x00,0x00,0xCC,0xEF,0xFF,0xE0,0x1F,0xFC,8 ^4 l4 r5 R8 R3 e0 K, p8 K2 E8 O4 C
  14. 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x1F,0xFC,0x00,0x00,0x00,0x00,0x00,0x0C,
    5 O: i4 {7 n6 l7 g" H( y
  15. 0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xDF,0xFF,0xC0,0x00,0x00,0x00,
    2 C" W8 `1 l7 d" Q' [
  16. 0x00,0x00,0x00,0x1F,0xDF,0xFF,0xC0,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
    ' C" c/ v3 n) s( o0 G
  17. 0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,6 c' w2 ?( ^2 [
  18. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x0F,0x00,0x33,0x3B,1 J: A) }5 D; e8 X8 g. Z+ A
  19. 0xFF,0xF8,0x00,0x00,0x00,0x00,0x1F,0xC0,0x73,0x7F,0xFF,0xF8,0x00,0x00,0x00,0x00,
    % {( M) E) M* G) c" x; ^; C; ?, v
  20. 0x1F,0xC0,0x73,0x7F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x1F,0xC0,0x73,0x7F,0xFF,0xFE,/ N8 z" l/ m5 |  z/ n
  21. 0x00,0x00,0x00,0x00,0x1F,0xC0,0x73,0x7F,0xFF,0xFF,0x80,0x00,0x00,0x00,0x03,0xC0,6 U, J: a; o& J! z
  22. 0x73,0x7F,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x07,0x80,0x73,0x7F,0xFF,0xFF,0xF8,0x00,
    * j3 i4 M, G# ~( X7 V7 ~
  23. 0x00,0x00,0x0F,0xE0,0x73,0x7F,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x0F,0xE0,0x73,0x7F,
    & K$ V) k) @# v; B2 e7 l
  24. 0xFF,0xFF,0xF0,0x00,0x00,0x00,0x0F,0xE0,0x73,0x7F,0xFF,0xFF,0x80,0x00,0x00,0x00,
    1 _: B0 C  ^" E" Y( M
  25. 0x00,0x00,0x73,0x7F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x7F,0xFF,0xFE,
    4 Z8 w0 ^1 g0 |
  26. 0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x7F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,
    : ^0 M* f3 r# O
  27. 0x73,0x7F,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,
    ) F7 ^- }" H. W# ~% O
  28. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,
    ) ^! X3 G% x% Z- ?8 U! [
  29. 0xF7,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF7,0xFF,0xF8,0x00,0x00,0x00,
    3 L  ^1 x, `/ C# q1 \8 C0 O% D: u
  30. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,( E/ M" w* ^$ @* u0 O4 C: w
  31. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,% y7 A5 z) Q! z) n7 I- A' ?
  32. 0x00,0x00,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,6 b2 K" _- H- `& M  d" T2 Z
  33. 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    2 b2 O. P6 g6 a  |# x+ b" H
  34. 0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,0x00,0x00,
    7 J+ {9 Z( K8 p+ I
  35. 0x00,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF0,
    / q  J" }/ A6 }
  36. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x30,0x00,0x00,0x00,0x00,0x00,0x00,
    - @8 Y# u. ]9 V3 V$ H! y
  37. 0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,
    1 x# \- X) N0 I9 q6 |
  38. 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0xFF,0x80,0x00,0x00,0x00,0x00,. n5 |3 P0 [- Y3 q0 S: H4 U5 u7 }  C
  39. 0x01,0xC0,0x00,0x00,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x80,
    ( g. `. E5 _+ z! F
  40. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
    , |1 k8 w7 M$ b9 K. L2 H, G2 r. _
  41. };$ e# ?/ E& A4 {
  42. ; d  A) A* s+ A" Q3 A) z

  43. . b! G+ S3 n; z5 Q
  44. /*  GPM1306.c2 ^7 L2 q" O9 x" B$ O6 P
  45. *  Created on: 2016-10-19# v! h# N- \8 o* G: p
  46. *                  ┌─────────────────────────────────────────────┬───────────────┐1 p: R& ?' j$ ^+ Y2 M
  47. *  PIN_NO : 17    16     15    14    13    12   11    10    9    8    7    6     5     4    3     2     1
    7 G1 O! s+ h' A2 A) |
  48. *  NAME   : BK-K  BK-A   NC    SCL   SDA   A0   RST   nCS   NC   VDD  C1   VSS   VDD   C2   C31   C32   C4, H: m! Y4 ~0 z
  49. *  CONN   : GND   VCC          P1.4  P1.3  P1.2 P1.1  P1.0       VDD  │   │VSS  │VDD   │    │     │     │
    # s1 J9 J) [6 H# q+ A9 x
  50. *            │                                                        │   │     │      │    │     │     │/ Q- |7 [8 v1 a$ L" v" Z5 g" `
  51. *            │     C1-C5=1uF 25V 0805                                ───  │    ───    ───   │     │    ───4 O" d- _+ h% I- L1 T" G
  52. *            │     120x160pix                                        ───  │    ───    ───   └─│ │-┘    ───7 t" J; T5 c' n/ o' Y9 V* r
  53. *            │    ┌──────────┐                                        │C1 │     │C5    │C2       C3     │C4+ h  q. I! n* Z  w
  54. *            └────┤  R1=3R3  ├────────────────────────────────────────┴───┴─────┴──────┴────────────────┘
    : |8 m* m" Q9 T  |, w8 H8 C8 ?; n
  55. *                 └──────────┘0 r- \% Q) }/ d9 T3 l$ d
  56. *==================================================NOTICE==================================================1 b6 ~" r* q& h/ P
  57. *这个程序仅供评估,没有任何技术支持。如有疑问,请仔细阅读压缩包中的PDF文件或者联系芯片/模块厂家。9 S( Y3 ~  [4 i; B+ S
  58. *这个模块还有很多功能没有在这个程序中体现出来,具体请参阅压缩包中的PDF文件或者联系芯片/模块厂家。
    : s( y& W" c% n3 N1 @
  59. *推荐使用TI的LaunchPad验证,如果使用别的板子/芯片,请根据具体情况修改移植源文件。
    " n, |4 H% }/ f, p
  60. **************************************************移植参考**************************************************9 e2 T+ U9 j' ~- A8 _
  61. *使用MSP430系列芯片可以直接使用或者修改一下脚位既可以。注意主频要和 #define Fosc 中定义保持一致。8 i$ m) G- U' R6 Q7 y$ d( i
  62. *移植至别的芯片请注意初始化IO和修改延时参数,修改脚位并注意void LCDInit(void)中有直接控制引脚的指令,需要一并修改。
    ! B- |, y. h3 M: R. _
  63. *祝大家玩的开心。
    + x6 c; n$ j5 R$ F
  64. P1OUT |= BIT1;  是将P1OUT倒数第二位被置1
    5 U* B9 |3 Q: j5 v* y5 x: @& D7 F
  65. P1OUT&=~ BIT0 是将P1OUT最低位 清 0. x: o9 S  E0 X0 K. M, L
  66. */# h( l) P, i% g: \5 V( E& y! @- J
  67. #include  "config.h"
    9 _, l' H1 d, O5 ~$ G5 E# N
  68. #include  "Delay.c"  $ k* s8 @. j0 C
  69. #define   GPM1306_nCS_CLR    P12=0
    - h+ c0 b) T% o& h8 }, o- r$ J
  70. #define   GPM1306_nCS_SET    P12=1! R$ Q& v/ t$ k: D& t% u
  71. #define   GPM1306_RST_CLR    P13=0
    / d8 [9 S% K4 x: r5 r
  72. #define   GPM1306_RST_SET    P13=1) T% F- w3 @5 `, [8 f5 _3 Q
  73. #define   GPM1306_A0_CLR     P14=0) g2 g+ i/ g% A; V+ o5 v/ U
  74. #define   GPM1306_A0_SET     P14=1
    ( m9 U- u# E1 }, C# L- _
  75. #define   GPM1306_SDA_CLR    P15=0
    ; _9 ?/ x5 N6 L4 [7 t! g$ D
  76. #define   GPM1306_SDA_SET    P15=15 C$ c% l" \* f2 }' F4 y" |
  77. #define   GPM1306_SCL_CLR    P54=0
    / \( J* W' ?2 S1 O: m( c, p
  78. #define   GPM1306_SCL_SET    P54=17 C, {* @# v- m4 D0 p# Z

  79. 2 D( G. Q$ x* F6 w' ~3 U5 a
  80. % i  x  s+ w" @4 R, X9 n1 Z( Q2 S
  81. void LCDWriteCmd(char cmd)" x! v4 A* v8 a3 n8 o. y% E
  82. {& T: `5 ?2 O& Y: c6 G8 `+ {
  83.         unsigned char i ;! s3 n+ {4 ]  ^1 @
  84.         GPM1306_nCS_CLR;          //使能芯片
    / l' E) o* `: u0 h7 u6 L
  85.         GPM1306_A0_CLR;//写命令模式
    0 K+ O6 }% O! @  f' _! t2 r
  86.         for(i=0;i<8;i++)
    1 u* |6 _% z% E1 Q7 R. O* Y! K
  87.         {3 @- N* A) M! }8 r$ K) V& d
  88.                 GPM1306_SCL_CLR;$ @: q9 U' r6 z. f. v. s
  89.                 if(cmd&0x80)    //先传高位字节,后传低位字节
    " I2 N1 u, w1 D( ^6 ?6 |
  90.                         GPM1306_SDA_SET;
    5 p8 o9 Q4 m# I. ?0 Y  C1 x
  91.                 else
    ; P8 @! F; p) m+ u; p$ ~; V. {/ O. U
  92.                         GPM1306_SDA_CLR;* p* T# C4 ~5 M
  93.                 GPM1306_SCL_SET;- N7 P- t" H' j1 g! r% ?
  94.                 cmd=cmd<<1;
    / f. ~( R, n( y* j: ?( `/ C' p! ]5 r* D4 P
  95.         }. R9 {$ O3 W4 r8 W- h; m7 b6 |
  96.         GPM1306_nCS_SET;9 E% c2 J, }% W$ a% i# u
  97. }+ v" B! G( L% L2 S+ l) A
  98. void LCDWriteData(char cmd)+ g0 F+ ^7 A! P
  99. {
    2 E' t" N' v: l! {5 Y
  100.         unsigned char i ;
    2 N: j( k4 j$ `3 a6 X
  101.         GPM1306_nCS_CLR;          //使能芯片
    4 q# ?2 b& Q/ P0 ^: c8 |) j' p8 @
  102.         GPM1306_A0_SET;//写数据模式
    1 d$ {( a( x' l& \' P. A/ E+ k& F
  103.         for(i=0;i<8;i++)
    $ i9 U" ?; Y$ W4 [
  104.         {9 W# r' V, ], _! I# H! M
  105.                 GPM1306_SCL_CLR;
    : q- b' H4 Z2 v: t  ~" G
  106.                 if(cmd&0x80)    //先传高位字节,后传低位字节
    / O$ F1 j( [: C0 j7 X& t' r7 x
  107.                         GPM1306_SDA_SET;
    # k: P" J) u! M
  108.                 else
    9 S" k1 r3 U" d  f! d: L( q* u
  109.                         GPM1306_SDA_CLR;
    & M/ p- V. h* v# _, Z# ^" k. M$ n
  110.                 GPM1306_SCL_SET;( v9 x- x8 h, d* K5 Y
  111.                 cmd=cmd<<1;
    * H6 c" Y1 I0 v1 d# n5 u. {
  112.         }9 a2 T$ j2 n' N0 ]
  113.         GPM1306_nCS_SET;
    * v0 [& c$ o3 N! {2 o: C' }8 ~
  114. }
    $ e9 E& R$ E  h* }" ]
  115. //设置起始行列
    / o& A- M, K6 t' y: M
  116. //ys为起始行,xs为起始列, ye为结束行, xe为结束列# q/ K4 C: w% T" K
  117. //xe与xs的差值即字的宽度, ye与ys的差值即字的高度
    + i4 p  Y& ]- O2 a& v
  118. void LCDSetXY(char xs, char ys, char xe, char ye )
    - s! G/ p% `) ^9 v3 k  Z
  119. {
    4 _8 f4 G: r/ [$ w' Y: z
  120.         LCDWriteCmd(0x2A); //设置列地址(横坐标)
    , K" [5 F. f; P8 y1 ^9 W' z
  121.         LCDWriteData(0x00);
    * b& I- Q+ }, m1 f+ ?
  122.         LCDWriteData(xs);
    - I. N6 J, w" s% A3 J  j
  123.         LCDWriteData(0x00);
    % l+ o  y+ s: Y1 W. K5 D& I
  124.         LCDWriteData(xe);5 h1 G5 w% D% d
  125.         LCDWriteCmd(0x2B); //设置行地址(纵坐标)
    & w1 D# U, H* w8 A  z  N* R
  126.         LCDWriteData(0x00);! q8 K" g! S! A( W0 m
  127.         LCDWriteData(ys);
    6 V* u5 L& f2 W& X
  128.         LCDWriteData(0x00);
    3 P- @. E1 c* p$ o& v
  129.         LCDWriteData(ye);0 h- @- e5 V$ A. p1 s
  130. }
    3 V  Y* h; K  d7 _
  131. //清屏函数
    # `' u3 J& @" g; z4 @7 {' b
  132. void LCD_ClrScreen(unsigned char value)
    ( j6 C9 [$ B1 d- Q1 y& r- U
  133. {" v: t3 O- w# P+ h3 }
  134.         unsigned char i,j;
    ! D# P1 U& Z8 D* U7 P
  135.         const unsigned char tt[]={0x00,0x49,0x92,0xff,};% a- M9 B2 \0 d+ `
  136.         value=value&0x03;
    " q' `* h& {' j2 p1 m
  137.         value=tt[value];+ K" b8 ?! ~/ a
  138.         LCDSetXY(0,0,53,119);
    . ^  c% y9 m- T- C; E5 e+ k& z( x
  139.         LCDWriteCmd(0x2C);  //向DDRAM写入显示数据
    ) x# T" u  t: K: J  V# P# w
  140.         for(i=0;i<120;i++)
    : W1 @1 O0 y* x1 T
  141.                 for(j=0;j<54;j++)- H/ j9 [' o- Q
  142.                         LCDWriteData(value);
    $ y0 f* u* J/ |. ~
  143. //        P1 ^=BIT6;2 ~$ s) t5 f9 W3 R" m0 |  H
  144. }: q% `# e# I% c( r9 c2 J( W
  145. void GPM1306_DISBMP1(const unsigned char *BMP1)7 S# ^3 Z3 _) L6 E! q" |; l+ ?
  146. {
      b- [; P1 ?0 ]; O. W1 u! h
  147.         unsigned long MCx8x31;
    % \' h" {* H/ ~" d8 V) u
  148.         unsigned char LINE_COUNT1,COLUNM_COUNT1,color1,t2;
    * R1 X# @4 ~$ r; p" G3 K( u
  149.           signed char vaild_bit1=8;
    . _1 Q/ ^3 l! p+ K6 M$ \% r. Z" d7 y" f
  150.         ((unsigned char *)&MCx8x31)[2]=*BMP1;- j: P+ L$ @0 E% w
  151.         BMP1++;
    2 [5 D$ n! a# t
  152.         LCDSetXY(10,0,36,60);! [8 j: w- K5 l/ e2 L
  153.         LCDWriteCmd(0x2C);  //向DDRAM写入显示数据
    # W5 e, ~& D- g/ X
  154.         for(LINE_COUNT1=0;LINE_COUNT1<120;LINE_COUNT1++)4 A, A- J3 V3 U$ O- B0 ~1 g
  155.         {& n, M6 ~0 J2 y+ a5 J
  156.                 for(COLUNM_COUNT1=0;COLUNM_COUNT1<53;COLUNM_COUNT1++)//160/3=53....17 P* l8 [8 o. P5 M/ B  d) l/ e
  157.                 {
    1 V# D- W1 R0 I- P& e
  158.                         if(vaild_bit1<3)3 s! A$ ~: H, R& W  J( f$ I, |
  159.                         {9 O6 P! c# C5 U0 [7 p, J7 I
  160.                                 MCx8x31=MCx8x31<<vaild_bit1;' ]+ G2 Q1 X$ f- h0 f
  161.                                 ((unsigned char *)&MCx8x31)[2]=*BMP1;+ T( F; {, J8 K! O; `* ^$ |
  162.                                 BMP1++;) Y: g! s; L7 }
  163.                                 MCx8x31=MCx8x31>>vaild_bit1;/ {: C) y7 ], A" ?/ k  |( }) q* h
  164.                                 vaild_bit1=vaild_bit1+8;
    ; e- a, K. A# M; N+ f/ C6 |1 \
  165.                         }
    / g; _# X; J' |& u9 @* |
  166.                         color1=0;- P, M! O2 Q& ?! e1 X
  167.                         t2=((unsigned char *)&MCx8x31)[2];
    ) [7 c% [0 L. T( W* E! i; _) h8 k8 G
  168.                         if((t2&0x80))
    - f# o" A$ ^, ~. G2 \
  169.                                 color1=0x03;
    0 I; w3 s: I5 J! T* O7 b4 ~! j
  170.                         if((t2&0x40)); p- M+ Z9 C/ T# ?! y7 P8 e
  171.                                 color1=color1+0x1c;; _, p4 M2 C0 p8 B, ^2 M. b
  172.                         if((t2&0x20))
    9 Z5 a( e6 Z) v* n( h: j
  173.                                 color1=color1+0xe0;
    & k7 h- s( B% k" U) v
  174.                         MCx8x31=MCx8x31<<3;
    3 K" ?% C( s( f) r
  175.                         vaild_bit1=vaild_bit1-3;
    5 R  E6 u, q* a' J
  176.                         LCDWriteData(color1);: S0 X% ]% F: J
  177.                 }" O% U) A" m7 W" `
  178.                 if(vaild_bit1<3)# h4 X0 M1 S5 Q2 w. @: G. l
  179.                 {) f& W5 R6 i8 A6 Y
  180.                         MCx8x31=MCx8x31<<vaild_bit1;. f9 n. @0 Z1 _
  181.                         ((unsigned char *)&MCx8x31)[2]=*BMP1;( o' e" |' i0 h2 i' M4 q1 Y" C
  182.                         BMP1++;
    9 e0 w6 b- S' V( v4 u! k. ?6 s
  183.                         MCx8x31=MCx8x31>>vaild_bit1;- c7 A. `* p/ y" f
  184.                         vaild_bit1=vaild_bit1+8;
    . \  p7 F% x9 K
  185.                 }
      q) d0 W" X, y4 f' T
  186.                 color1=0;5 t; D3 ?! B+ W! e% B' o" V3 C
  187.                 t2=((unsigned char *)&MCx8x31)[2];, q& E# T; |* X. y/ t- A
  188.                 if((t2&0x80))) a+ n" u3 W& e
  189.                         color1=0x03;
    3 }& Q6 G1 K2 F+ z* M
  190.                 MCx8x31=MCx8x31<<1;. N+ g  I" k* {5 y. F# b( p+ N! t
  191.                 vaild_bit1=vaild_bit1-1;
    # ~, P4 J; E& R6 X, r
  192.                 LCDWriteData(color1);
    ! b1 V; O9 m* w) O
  193.         }
    ! b" L6 v, j4 h% D2 ~9 k
  194. }3 f7 h" K* {9 A4 |; |4 y; g2 b6 J
  195. //初始化函数' R0 r8 S$ q0 h" B) X# H( f' O
  196. void LCDInit(void)0 i) u- ]# R% V9 i  x" ?+ g
  197. {
    % x* f( z/ g3 h" y& Y5 E7 y
  198.         GPM1306_RST_CLR;3 n1 w3 }; r5 R/ g* m+ B3 q
  199.         delay_us(20);
    4 \& h; ?- P7 \) S5 {
  200.         //__delay_cycles(Fosc*0.2);//Delay_ms(20)   //延时20ms
    3 J) S1 ^" A* _  U" s
  201.         GPM1306_RST_SET;
    5 T# r  m0 G  D
  202.         delay_us(40);
      I5 k. g5 Q' u. Y& S" t" _; y: r) y
  203.         //__delay_cycles(Fosc*0.4);//Delay_ms(200); //延时200ms! Q- z( {+ Z; K5 g* |* }& @6 v
  204.         LCDWriteCmd(0x01);   // soft reset" o5 \; ]. s2 S" U& m; u, u
  205.         delay_us(40);
    1 S$ Y1 D; X( A
  206.         //__delay_cycles(Fosc*0.4);//Delay_ms(200); //延时200ms- ]: A* T- ?3 S) K8 C
  207.         LCDWriteCmd(0x11); //Set power save mode:Sleep out mode( w$ ?0 N5 R, p- C- V
  208.         LCDWriteCmd(0xC0); // Set Vop///: E8 e+ u. i; B' j
  209.         LCDWriteData(0xf0); // Set Vop Low 8bit               30//全屏太黑或者太白调整这里
    3 W. A- K( v5 z- s5 |
  210.         LCDWriteData(0x00); // Set Vop 9th bit(Total 9 bits)  01//全屏太黑或者太白调整这里7 c0 k2 W9 L& C* T# ~
  211.         LCDWriteCmd(0xC3); //Set BIAS system5 s' u( p8 q' ?: J
  212.         LCDWriteData(0x04); // 03: BIAS = 1/11  0-5% r) w' A: B4 _7 q) T
  213.         LCDWriteCmd(0xC4); // Set booster level
    6 ^1 P0 @8 @$ K& l1 v
  214.         LCDWriteData(0x07); // 07:x8 Booster1 L% c) ~5 e5 W+ G( e7 f1 ]
  215.         LCDWriteCmd(0xD0); // Enable analog circuit) U4 K* ~* x: D; r: K; c
  216.         LCDWriteData(0x1D); // Enable analog circuit" B/ ~! q/ }! {
  217.         LCDWriteCmd(0x38); // Set display mode: M=1: Monochrome mode7 b: K$ k" u2 M" O: q) S9 R* K3 _& r# g
  218.         LCDWriteCmd(0x3A); //Enable DDRAM interface
    * P8 Q. y; u9 r2 b/ L% o
  219.         LCDWriteData(0x02); //RIF=0: Monochrome mode & 4-level gray scale mode5 E( v* L/ G3 P( J% _" y
  220.         LCDWriteCmd(0x36); // Display Control
    ' h. c' \1 p3 }- Q- z* |
  221.         LCDWriteData(0x40); // MY=0: COM0-COM159/MX[1:0]=(0,0):SEG0<-SEG383
    7 [  a5 y) _) w0 E
  222.         LCDWriteCmd(0xB0); // Display Duty
    ' j( E; H- D7 e3 L3 b" ?
  223.         LCDWriteData(0x81); //Set display duty DT=0x9Fh(1/160)  DT=0x81(1/130)
    ; k, A4 X3 ^9 ]7 b, S# ?  A& ]2 M7 Y
  224.         LCDWriteCmd(0x20); // Inverse Display:INV=0: Normal display2 ~- Z# N1 H  v+ N! ?
  225.         LCDWriteCmd(0xf1); //Frame Rate(Monochrome Mode)
    . k' Z6 Z  I9 G8 w4 |
  226.         LCDWriteData(0x15);//Frame Rate 92.0Hz
    " b8 }, @- @* h! U/ T8 V0 C
  227.         LCDWriteData(0x15);
    ! Z5 E8 Y* e0 V# }; a( q3 A
  228.         LCDWriteData(0x15);- M8 T: B; M* ]4 K0 i
  229.         LCDWriteData(0x15);4 }. s" d8 P0 u+ v2 C+ R
  230.         LCDWriteCmd(0xb1); // First Output COM2 j$ ~; a% c- S$ E$ a6 r6 Z9 p6 j
  231.         LCDWriteData(0x00); // Set first output COM           FC=00h(Start from COM0)+ C* r1 d: o$ H: f6 X" N) `
  232.         LCDWriteCmd(0x29); //Display ON5 B2 d! P- f% X
  233. }
    8 O& K6 {) G- G; B3 X. O5 W
  234. ' e) ?: B6 O. u" D1 j0 X& N; A! c
  235. void main()2 ]$ d& k3 q  n6 \% i  |
  236. {& a/ F; T2 z: y1 d2 d0 O* {& P
  237. - I2 d' e3 P1 e/ f! a
  238.         LCDInit();  //初始化液晶
    # @0 s; i  g: H8 g, B3 c- c
  239.                 LCD_ClrScreen(0);& X0 I4 {" V& b1 p) c+ v
  240.                 delay_us(10);: E2 n1 I& m! j
  241.                 LCD_ClrScreen(1);) |% K0 U4 ^; o/ c( Y
  242.                 delay_us(10);( {' T. x/ d7 A) e
  243.                 LCD_ClrScreen(2);& ?7 [, r& b  K! C3 z
  244.                 delay_us(10);
    9 c3 y* @3 i4 c; C' c
  245.                 LCD_ClrScreen(3);% x9 @4 c  \! F8 P/ ]
  246.                 delay_us(10);0 @, T" q) y% r" e: w% ?2 g
  247.                 - R1 D( p9 l- \$ b, @" u7 n- b
  248.         while(1)
    7 s1 s: p: y3 A
  249.         {
    " e: A8 G+ j1 N( T$ |7 u7 S) b" L
  250.         //        GPM1306_DISBMP1(gImage_bmp1);
    / O, Z# E0 W5 u# N$ l; K3 U
  251.          GPM1306_DISBMP1(gImage_bmp2);, W& [. t+ l7 @6 V$ g) r

  252. % i% H' ~+ d: M# j

  253. ; b1 K- S0 z8 i  A
  254.         }
    1 d7 e& D! M5 U5 m3 N3 V7 u+ A8 {
  255. }+ K0 @' d3 u/ G
  256. * h9 J- Y: Q' }, s3 p+ r5 j' @9 W
复制代码
9 x! O5 g. u* Z0 t7 W1 n8 k
- x/ g9 j3 _+ N7 P- H2 ^

+ P6 f& ?, y# l* ?1 W* z4 B7 `% ~! S6 {. K- f; s

* r  i$ i8 U+ ~/ ^$ e# x' z" Q
发表于 2017-3-18 17:55 | 显示全部楼层
你主程序里不是一直刷屏吗?
回复

使用道具 举报

 楼主| 发表于 2017-3-18 19:45 来自手机 | 显示全部楼层
more 发表于 2017-3-18 17:55
2 l0 K, j8 o: h# k9 S你主程序里不是一直刷屏吗?
  a" [5 a+ e' a" y
放在外面也这样的,只刷入一次也这样,不明白为什么呢
回复

使用道具 举报

发表于 2017-3-19 08:57 | 显示全部楼层
如果你不停的刷而且 MCU 速度慢的话是这样的.
8 i7 Z' ~* Y1 e" _9 W5 X你至少发个程序给大家看看啊.
回复

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2017-3-19 15:32 | 显示全部楼层
junyee 发表于 2017-3-19 08:57
, T9 k' q3 @& j3 A  \如果你不停的刷而且 MCU 速度慢的话是这样的.
0 p# E' @: J! h4 |4 A/ R6 C0 B你至少发个程序给大家看看啊.

3 v& g$ j1 I% \1 M# L7 Q6 Y问题解决了。换了一片同型号的还有不同型号的都试了一下,都可以,只有那一片不可以,但是那一片烧录个别的测试程序也ok。很奇怪。小概率的事件遇到了。2 N$ N" u1 v5 M! F' P- g( i
回复

使用道具 举报

 楼主| 发表于 2017-3-19 15:33 | 显示全部楼层
mytomatoes 发表于 2017-3-19 12:23% r) \" E0 c+ b4 M( s3 b
内存不够?瞎猜的
) y1 F, L3 O, h/ z; A
问题解决了。换了一片同型号的还有不同型号的都试了一下,都可以,只有那一片不可以,但是那一片烧录个别的测试程序也ok。很奇怪。小概率的事件遇到了。
5 ]( d3 I' o+ `1 J我用的确实是小内存的。% {- X' U8 T0 g6 Q' d, K
回复

使用道具 举报

本版积分规则

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

GMT+8, 2025-8-20 09:08 , Processed in 0.037635 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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