一乐电子

一乐电子百科

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

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 4409|回复: 6
收起左侧

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

[复制链接]
发表于 2017-3-18 10:37 | 显示全部楼层 |阅读模式
本帖最后由 davg1 于 2017-3-19 15:34 编辑 5 A6 }8 C0 a2 u  e

+ ]5 ]& }5 A' y& |非常感谢各位。7 a5 E: m+ z/ m# \* u
问题解决了。换了一片同型号的还有不同型号的都试了一下,都可以,只有那一片不可以,但是那一片烧录个别的测试程序也ok。很奇怪。小概率的事件遇到了。5 |: _4 ~1 r6 q) U( T
正在研究屏幕显示汉字,还在乱码,图片是ok的。搞定了和大家分享。5 g8 V1 y+ ?) W2 R( I

# y2 [, E7 u) v6 S淘宝买的便宜货,在论坛各位大神的帮助下终于点亮了,可是还是有些问题。
! K: C' v5 H9 N/ ]' L+ k; C  \刷图的时候其他未刷部分是白色的,而且出现非常明显的从上到下刷屏的样子,,根本看不太清楚,改了单片机的频率也不行,还是出现刷屏,只是整个过程快了很多。& w0 l( g4 P# O# t  x
无法达到一直显示的目的。问题找到了,是单片机一直在重启。
& b! o1 R0 K0 F7 _4 M8 ]* _, T可是每次都是写入完图片的数据之后重启。如果只写入初始化不会重启。我在5v电源输入端和单片机输入端(3.3v)并联了100uf的电容,问题依然如故。陷入死结了。! N# U6 d7 n. ^+ `$ Z
我该怎么办呢?
4 S  D( e& D' d" O6 F# o; D# Y# {/ B
接线图如下。我在1117的输入输出都加了100uf的电容,还是不行。供电是用的5v1A的插头。3 e/ S0 c* \' j
搜狗截图20170318224029.jpg   t* N" ^: j3 p( J  P9 t" I$ Z

( u% X' [/ C4 j2 L0 b4 c
9 c9 j4 r, ^) c6 N& ]
* Y  i/ N4 h3 _; i# m' T如图,( j: ]) e6 J& H8 i8 e0 `5 Q* e
IMG_20170318_102649.jpg ; j$ Q0 U# ?1 n1 h

0 ?/ P( ^% w* l* g- ]$ X+ b 1.jpg 4.jpg 4 n4 y/ U0 I: b% u  Q
3.jpg
  A7 _8 H  W4 }$ Y/ R7 x9 [& L2 o
8 Q% N5 y. Y7 c( u程序用的8 r8 p7 t+ Z0 V$ j' H/ c
https://www.yleee.com.cn/thread-57727-1-1.html
6 H  B5 d0 F* r8 d7 ]- T' m) Awangke2010提供的程序。他的显示就很正常 1.png 9 |9 b3 k0 r/ x& ^! z$ {% m3 R% k! d

$ w) \6 ]9 t4 m2 N1 j: `请问该如何救呢?谢谢!!!!2 O3 X/ g2 r, X0 ^* ~
  1. unsigned char code gImage_bmp2[] =6 M5 F' v$ O# M2 M, _
  2. {
    ' d. X; {7 f4 v+ Y, ?- ?) [
  3. 0xFF,0xFF,0xFE,0x33,0xFF,0x80,0x01,0x80,0x00,0x00,
    3 g# D3 g$ B% _. u5 b
  4. 0xFF,0xFF,0xFE,0x33,0xFF,0x80,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0x00,
    + ?; @: X" B% T/ a& R$ U9 j: E3 B. g
  5. 0x01,0xC0,0x01,0x80,0x00,0x00,0x00,0x33,0xCD,0xFF,0xFF,0xE0,0x03,0x80,0x00,0x00,
    $ x( f! k: z, I
  6. 0x00,0x03,0xCD,0xFF,0xFF,0xF0,0x03,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xF8,% r" q8 H$ k! I7 {
  7. 0x07,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFC,0x1F,0x80,0x00,0x00,0x00,0x00,
    3 F. t- X" T# V( L# s
  8. 0xCD,0xFF,0xFF,0xFE,0x1D,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFF,0x81,0x80,
    ' k& V- C- j+ u3 L4 h+ f: D
  9. 0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFF,0xC1,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,
    0 z7 s8 x! V9 Z6 `; u( F
  10. 0xFF,0xFF,0xC1,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFF,0x01,0x80,0x00,0x00,
      S) M) w: m, W0 ~& u
  11. 0x00,0x00,0xCD,0xFF,0xFF,0xFE,0x01,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xF8,
    0 n  H6 Y( ~4 B7 Z. o4 J5 c
  12. 0x01,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xF0,0x01,0x80,0x00,0x00,0x00,0x00,0 q( b. j' d+ y1 H
  13. 0xCD,0xFF,0xFF,0xE0,0x11,0x80,0x00,0x00,0x00,0x00,0xCC,0xEF,0xFF,0xE0,0x1F,0xFC,
      L9 G* I; i  V2 ]9 e5 N
  14. 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x1F,0xFC,0x00,0x00,0x00,0x00,0x00,0x0C,. Q1 X- s5 T# H1 J, M. {9 Y) ~
  15. 0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xDF,0xFF,0xC0,0x00,0x00,0x00,6 ~* V' K' A6 N% O; o5 a* k
  16. 0x00,0x00,0x00,0x1F,0xDF,0xFF,0xC0,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
    / T+ C8 A8 x: E. S9 Q
  17. 0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,
    7 t: w5 c' [, Y
  18. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x0F,0x00,0x33,0x3B,: k% B5 @% z3 S) ]
  19. 0xFF,0xF8,0x00,0x00,0x00,0x00,0x1F,0xC0,0x73,0x7F,0xFF,0xF8,0x00,0x00,0x00,0x00,
    ) p! y5 f4 z7 U6 c( f' D# v
  20. 0x1F,0xC0,0x73,0x7F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x1F,0xC0,0x73,0x7F,0xFF,0xFE,3 N$ T3 p2 T- U5 H
  21. 0x00,0x00,0x00,0x00,0x1F,0xC0,0x73,0x7F,0xFF,0xFF,0x80,0x00,0x00,0x00,0x03,0xC0,
    $ u8 A( W8 |, }/ ]( w
  22. 0x73,0x7F,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x07,0x80,0x73,0x7F,0xFF,0xFF,0xF8,0x00,
    9 e% F' L3 n. A- e" f% u
  23. 0x00,0x00,0x0F,0xE0,0x73,0x7F,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x0F,0xE0,0x73,0x7F,
    9 g) P" p! _* j% J
  24. 0xFF,0xFF,0xF0,0x00,0x00,0x00,0x0F,0xE0,0x73,0x7F,0xFF,0xFF,0x80,0x00,0x00,0x00,
    % m) ^4 D& l  A+ s& u
  25. 0x00,0x00,0x73,0x7F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x7F,0xFF,0xFE,
    ' _( g4 Z* @) K" O
  26. 0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x7F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,: L* i' [3 {" s3 {- w# h$ n3 k
  27. 0x73,0x7F,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,! v9 ^7 j8 I. t- H; q, ~0 J
  28. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,: a- W& U; V) b6 {% i% t
  29. 0xF7,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF7,0xFF,0xF8,0x00,0x00,0x00,
    + e9 B% u5 \# ]& r# D- e' S3 j" |
  30. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    4 Z0 |3 p# G+ n
  31. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,5 m5 n# i7 W7 B' `
  32. 0x00,0x00,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,1 |' A0 A+ Z+ C) ~
  33. 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,1 D* p+ |# f) h- H% }+ c; U
  34. 0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,0x00,0x00,5 L+ \- y3 q5 ^4 b0 ?0 W0 E+ g
  35. 0x00,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF0,
    ) X0 _# i5 `) b+ Z0 i8 \
  36. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x30,0x00,0x00,0x00,0x00,0x00,0x00,7 Q! Y2 Y% b" n4 q9 i) Y
  37. 0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,
    " i/ X& G3 X9 Y& @+ K% O' m) o6 x
  38. 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0xFF,0x80,0x00,0x00,0x00,0x00,
    $ e8 b- n( b, e
  39. 0x01,0xC0,0x00,0x00,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x80," V) \( X6 L* Z3 ]4 t4 N6 W1 x4 x% i
  40. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
    7 V, ^: I5 a5 w! k  v
  41. };" D  K8 ]8 w2 E! I- ^
  42. ) r: m* b2 |6 q( S2 @
  43. ; L5 V* v1 v4 n4 u
  44. /*  GPM1306.c
    * a- n' E8 r) ?/ Y- A
  45. *  Created on: 2016-10-193 Z7 O0 F! I, \' q
  46. *                  ┌─────────────────────────────────────────────┬───────────────┐
    / b$ {0 N% P$ Y* P, R
  47. *  PIN_NO : 17    16     15    14    13    12   11    10    9    8    7    6     5     4    3     2     18 K9 T8 _/ I1 R, y) g3 R" y6 j. n
  48. *  NAME   : BK-K  BK-A   NC    SCL   SDA   A0   RST   nCS   NC   VDD  C1   VSS   VDD   C2   C31   C32   C4( A! D' r: |" n% {! `) E: S
  49. *  CONN   : GND   VCC          P1.4  P1.3  P1.2 P1.1  P1.0       VDD  │   │VSS  │VDD   │    │     │     │5 r. ?* F) p  j4 H: f
  50. *            │                                                        │   │     │      │    │     │     │
    0 @5 f- Q. a+ |
  51. *            │     C1-C5=1uF 25V 0805                                ───  │    ───    ───   │     │    ───. v7 i  V1 h2 `: ^3 y* d9 U, `
  52. *            │     120x160pix                                        ───  │    ───    ───   └─│ │-┘    ───' u& _. L4 B# I8 j! t
  53. *            │    ┌──────────┐                                        │C1 │     │C5    │C2       C3     │C47 ]+ `! }% \# o6 u) C7 \
  54. *            └────┤  R1=3R3  ├────────────────────────────────────────┴───┴─────┴──────┴────────────────┘
    / z- q2 D- s" t! }6 u
  55. *                 └──────────┘
    3 F: B0 d( q# A* ~' w" d
  56. *==================================================NOTICE==================================================
    : R$ h  ?" f* _/ D
  57. *这个程序仅供评估,没有任何技术支持。如有疑问,请仔细阅读压缩包中的PDF文件或者联系芯片/模块厂家。; U$ e; v+ d9 c& @! a
  58. *这个模块还有很多功能没有在这个程序中体现出来,具体请参阅压缩包中的PDF文件或者联系芯片/模块厂家。: p, u' c! F2 W- P
  59. *推荐使用TI的LaunchPad验证,如果使用别的板子/芯片,请根据具体情况修改移植源文件。( L) |6 k  o! t4 T9 A0 X) F2 e
  60. **************************************************移植参考**************************************************
    # m' U2 H4 R" C3 }" S  D
  61. *使用MSP430系列芯片可以直接使用或者修改一下脚位既可以。注意主频要和 #define Fosc 中定义保持一致。
    ' |4 l1 s7 ~; q/ K! \8 S* F
  62. *移植至别的芯片请注意初始化IO和修改延时参数,修改脚位并注意void LCDInit(void)中有直接控制引脚的指令,需要一并修改。4 f5 S& k: l- i/ T
  63. *祝大家玩的开心。
    ' Q  U) K; r& g7 x
  64. P1OUT |= BIT1;  是将P1OUT倒数第二位被置1
    * z- L1 G% B7 ^4 w' w0 G1 l: B
  65. P1OUT&=~ BIT0 是将P1OUT最低位 清 0
    % p3 [3 `6 q+ x8 J% h) a  O7 r, ?
  66. */' W# O" w( ?# Z7 I
  67. #include  "config.h"/ s/ L4 P4 P# I( y! L. J/ u& [
  68. #include  "Delay.c"  * R9 G' B3 w, x* j# f
  69. #define   GPM1306_nCS_CLR    P12=0
    2 P, j3 C( S; d( @
  70. #define   GPM1306_nCS_SET    P12=17 r- |- s8 Q- n) \
  71. #define   GPM1306_RST_CLR    P13=0
    7 e: ?  a& g3 N3 a
  72. #define   GPM1306_RST_SET    P13=1
    ! ?8 X: X, z8 d6 c: d/ A3 X
  73. #define   GPM1306_A0_CLR     P14=05 S8 E( s# N- l1 S# g, p9 _- H7 C
  74. #define   GPM1306_A0_SET     P14=1
    + C: V( L' b1 X2 [! D' E
  75. #define   GPM1306_SDA_CLR    P15=02 C: V& |- N- p
  76. #define   GPM1306_SDA_SET    P15=1
    0 P  C+ m' A5 d( ~) V7 q
  77. #define   GPM1306_SCL_CLR    P54=0% O0 F' j2 F& _' m; [
  78. #define   GPM1306_SCL_SET    P54=1
    $ k" d! U: K  \. F' N
  79. " ]8 ~0 @6 x: K. }( C1 z

  80. : Y( Q7 a! C, F8 B8 K& G' B4 G1 m
  81. void LCDWriteCmd(char cmd)+ O% N7 C! A# ]3 `
  82. {" C- d) P3 {$ t) K
  83.         unsigned char i ;
    0 c( Y9 Z$ D( T4 V0 [7 Y
  84.         GPM1306_nCS_CLR;          //使能芯片
    1 B. r0 Q; v$ p0 f- S
  85.         GPM1306_A0_CLR;//写命令模式3 o8 a6 ]8 s8 I; @( O* M3 f3 c9 W
  86.         for(i=0;i<8;i++)( S' G6 t' U+ x3 O  O  N) W
  87.         {
    ! }. A- c* m8 j" w8 }4 a1 _
  88.                 GPM1306_SCL_CLR;
    : C" F4 k' y3 v3 o; _3 O
  89.                 if(cmd&0x80)    //先传高位字节,后传低位字节  m! K; r8 r# I0 F0 |
  90.                         GPM1306_SDA_SET;+ y3 s4 O$ h3 ?  w4 ~
  91.                 else
    6 k, q+ ?  f/ d3 p+ F4 @1 U1 [
  92.                         GPM1306_SDA_CLR;
    " R& K+ U; \8 i/ M- g
  93.                 GPM1306_SCL_SET;
    ' M- [) x  Z) n' P
  94.                 cmd=cmd<<1;+ P& T0 T- r8 Q: Z9 L" s; W& A- ]
  95.         }+ N1 o1 @6 C& h$ l# C0 k1 e
  96.         GPM1306_nCS_SET;
      p% ], ?2 l, S  V0 A
  97. }
    + l. G: m- F$ z' b
  98. void LCDWriteData(char cmd)2 u4 W9 m$ o" b/ x& R: {
  99. {
    $ T/ C5 I% k8 i- h4 g
  100.         unsigned char i ;  x- ~, K% `+ b) L0 Y6 L
  101.         GPM1306_nCS_CLR;          //使能芯片/ L. l* b' v8 J# C: \4 q
  102.         GPM1306_A0_SET;//写数据模式3 i/ w1 g$ B7 H3 L: x; A8 Q
  103.         for(i=0;i<8;i++)0 ~$ o3 D: s+ |  S: K1 S" N
  104.         {
    ' R; f/ D3 Y* N/ a4 ^3 ?  s1 ^
  105.                 GPM1306_SCL_CLR;5 r/ u% h0 I$ z. d: Z6 H
  106.                 if(cmd&0x80)    //先传高位字节,后传低位字节
    % a' d: T3 I0 I+ r/ G" c/ U: X- T' H
  107.                         GPM1306_SDA_SET;
    4 i; y) a  S/ f" h
  108.                 else8 U4 e, H) ]. \2 F" u8 D1 c! x6 Y' w
  109.                         GPM1306_SDA_CLR;
    3 S7 {: e1 i4 {) ]6 v3 a- }
  110.                 GPM1306_SCL_SET;" ^7 p6 {0 h: Q$ c$ a8 o2 ]5 A( r- C! E
  111.                 cmd=cmd<<1;
    ) f& X( ~) h9 d6 p  y4 V5 R9 Q  B
  112.         }
    " s8 J" a4 k: v6 w) u4 p
  113.         GPM1306_nCS_SET;+ a2 h! H% m% m! u. ^
  114. }
    1 b' V. l# L* G+ m8 n$ m
  115. //设置起始行列) Z+ j, k+ p9 @7 ~5 F! H8 B
  116. //ys为起始行,xs为起始列, ye为结束行, xe为结束列/ w  `4 m7 H7 }
  117. //xe与xs的差值即字的宽度, ye与ys的差值即字的高度
    # `0 w; Z$ n4 ~/ c
  118. void LCDSetXY(char xs, char ys, char xe, char ye )
    2 q# I" K: W( b, h: G
  119. {
    , a: V# p! }* s
  120.         LCDWriteCmd(0x2A); //设置列地址(横坐标)/ L9 E- c. ~7 _0 d0 V1 n  b0 ^
  121.         LCDWriteData(0x00);
    2 \3 E; P+ l! S9 v2 v
  122.         LCDWriteData(xs);
    & ~9 V, _$ ]% ^! {
  123.         LCDWriteData(0x00);6 t% s, c' u) o
  124.         LCDWriteData(xe);/ Z3 ]4 G8 J% [# B8 d( t
  125.         LCDWriteCmd(0x2B); //设置行地址(纵坐标)
    $ `. u( p8 Q$ [( D: R
  126.         LCDWriteData(0x00);
    / ?, Q, s) ?: |, B3 {: O9 x
  127.         LCDWriteData(ys);/ W3 p' O  u7 Q, l" [/ D
  128.         LCDWriteData(0x00);
    / r' r, G: ]4 n* l  h* V
  129.         LCDWriteData(ye);3 i! O4 ]2 @) d9 Z. f/ [
  130. }
    ) |7 l2 i( ?6 Y! }2 l
  131. //清屏函数
    + E! w) n9 F* o* i3 m; S' f" a( P: k
  132. void LCD_ClrScreen(unsigned char value)
    6 H3 I$ i: |( N3 z+ w9 _8 s
  133. {
    , W3 T3 y9 d9 b% L% |
  134.         unsigned char i,j;
    , W3 u) B% c2 k1 F: ^
  135.         const unsigned char tt[]={0x00,0x49,0x92,0xff,};
    $ _+ w- n0 F5 M
  136.         value=value&0x03;) u2 x6 [0 g* r' Q9 A0 n$ e4 J% g
  137.         value=tt[value];
    % L6 q+ L2 O+ f4 ~2 ~& r* w
  138.         LCDSetXY(0,0,53,119);
    + A- V% W2 d- U1 h: O2 \; ?
  139.         LCDWriteCmd(0x2C);  //向DDRAM写入显示数据
    ' M9 o' a: `% f# p" o/ c3 @, m
  140.         for(i=0;i<120;i++)
    7 _) U, J/ ]  w+ e
  141.                 for(j=0;j<54;j++)
    $ M$ t, v3 S- w" O  T3 ?% W
  142.                         LCDWriteData(value);
    ; G6 \5 r7 p# t, ^6 L
  143. //        P1 ^=BIT6;7 A/ j3 d/ p1 B3 G2 k" |/ W( v
  144. }
    . c1 _9 |& `9 v. v# i
  145. void GPM1306_DISBMP1(const unsigned char *BMP1)
    & C! D2 n* L* h* ]; h; K
  146. {
    & m+ C2 [8 Y* }) s) R. I8 O6 w+ {
  147.         unsigned long MCx8x31;; Y! U8 v. `4 y# R" i( M4 a
  148.         unsigned char LINE_COUNT1,COLUNM_COUNT1,color1,t2;' j# w) x  j" J5 u4 z/ K4 U
  149.           signed char vaild_bit1=8;
    ! d3 q8 _6 C- o& l
  150.         ((unsigned char *)&MCx8x31)[2]=*BMP1;
    ( S+ @4 p( z" L3 i. B. V
  151.         BMP1++;
    , G" P8 _3 H. V1 Y; l' K6 U) w4 o+ A
  152.         LCDSetXY(10,0,36,60);
    / k' V- s' w$ u) t5 G
  153.         LCDWriteCmd(0x2C);  //向DDRAM写入显示数据! Y7 x  J* q' [4 c
  154.         for(LINE_COUNT1=0;LINE_COUNT1<120;LINE_COUNT1++)
    - ^. i: j+ E0 L
  155.         {% S: S9 t2 Y& [+ [% V! B* H( {# ^& S* A
  156.                 for(COLUNM_COUNT1=0;COLUNM_COUNT1<53;COLUNM_COUNT1++)//160/3=53....1: Q0 C4 ^  K/ l" [
  157.                 {# \! u6 S8 _* R) S  V% p
  158.                         if(vaild_bit1<3)
    6 _" N- S: i% l0 o( C
  159.                         {
    & f8 N& R% g1 [: f! i: x
  160.                                 MCx8x31=MCx8x31<<vaild_bit1;
    9 U' Z! V  S2 m
  161.                                 ((unsigned char *)&MCx8x31)[2]=*BMP1;! f$ M2 x( D- h# R2 Z
  162.                                 BMP1++;
    ' G, E# \) L6 H1 N0 t/ \7 t
  163.                                 MCx8x31=MCx8x31>>vaild_bit1;
    9 P; z/ X: |5 d
  164.                                 vaild_bit1=vaild_bit1+8;
    - D0 F+ D4 i. }9 n( l4 O
  165.                         }
    0 `4 u2 U: H: o/ N" @9 t5 N
  166.                         color1=0;# E1 z, `* _9 ^; _; k& |
  167.                         t2=((unsigned char *)&MCx8x31)[2];' b; V2 ]9 |+ i8 T+ A
  168.                         if((t2&0x80))* X/ _/ E" T& r8 K
  169.                                 color1=0x03;
    + K  \1 J( [3 M. a
  170.                         if((t2&0x40))
    : k# w; {# A; ~! t
  171.                                 color1=color1+0x1c;
    ; k4 D( b7 S# N
  172.                         if((t2&0x20))
    9 I- r$ W& `/ N8 c5 Z
  173.                                 color1=color1+0xe0;
    2 Z; G" d5 t% g5 D, Y
  174.                         MCx8x31=MCx8x31<<3;7 ?. C3 G  B. |) O4 X
  175.                         vaild_bit1=vaild_bit1-3;% ^: [/ X4 r4 }& j6 E
  176.                         LCDWriteData(color1);
    % u8 ~7 G/ F; ^/ o
  177.                 }
      a3 x- J, |8 E  K6 T* T/ t  I8 w3 S' n
  178.                 if(vaild_bit1<3)
    + q) j/ f! b) ^$ B# O! F
  179.                 {) ?! \* i( W: l. h5 A3 g0 |
  180.                         MCx8x31=MCx8x31<<vaild_bit1;& {( j5 i: X* k7 ~
  181.                         ((unsigned char *)&MCx8x31)[2]=*BMP1;% T9 W1 M  z+ g  @$ Z2 W9 w: F0 O
  182.                         BMP1++;
    " p9 J1 h5 J5 n! \
  183.                         MCx8x31=MCx8x31>>vaild_bit1;
    / {) u; j' |# n  Y2 F8 D+ }6 f+ p
  184.                         vaild_bit1=vaild_bit1+8;
      }- M/ p$ X$ E; y$ d
  185.                 }
    . B1 O: a/ j1 A
  186.                 color1=0;3 _" O5 j2 x+ y9 i
  187.                 t2=((unsigned char *)&MCx8x31)[2];' t% Y7 _9 ~1 D# z' @+ I0 v
  188.                 if((t2&0x80))
    - F. M1 A2 |) v( ?* E+ S
  189.                         color1=0x03;8 h" y* J4 P( R
  190.                 MCx8x31=MCx8x31<<1;
    ' Q( Q6 [3 R5 o
  191.                 vaild_bit1=vaild_bit1-1;
    1 q% j) a: Q' R% I; o
  192.                 LCDWriteData(color1);
    # J' g+ s& x% D/ F* _
  193.         }
    % h$ y4 K; j: N) A' X. i. L: w
  194. }
    1 r0 V! q2 K6 ?% v
  195. //初始化函数# U/ k% |9 V; W: T2 |
  196. void LCDInit(void)# W  p# K* ?  y% s5 U
  197. {
    / @3 r, j6 i. ?
  198.         GPM1306_RST_CLR;
    8 a, l# @. G; ^1 T/ q! C( y$ V
  199.         delay_us(20);
    1 Z1 `. e% Q+ I: z
  200.         //__delay_cycles(Fosc*0.2);//Delay_ms(20)   //延时20ms
    - a9 C  a7 d+ Y5 z3 P
  201.         GPM1306_RST_SET;
    + F3 y4 z4 P7 R+ K0 z1 [7 B
  202.         delay_us(40);+ a* n1 ^" k2 ?. q* z: H6 i& C' `
  203.         //__delay_cycles(Fosc*0.4);//Delay_ms(200); //延时200ms2 |5 p8 [# o7 ]: o+ J8 S8 J  g
  204.         LCDWriteCmd(0x01);   // soft reset
    5 I# T0 X! W3 B
  205.         delay_us(40);% j) d- V0 M9 H" p  h9 i9 y6 w1 C
  206.         //__delay_cycles(Fosc*0.4);//Delay_ms(200); //延时200ms5 U" o: F  W4 p0 `
  207.         LCDWriteCmd(0x11); //Set power save mode:Sleep out mode
    ; q! k: P. {$ ~' D9 d* H
  208.         LCDWriteCmd(0xC0); // Set Vop///# U! L) e' m3 H5 s, i% x! E  J5 X
  209.         LCDWriteData(0xf0); // Set Vop Low 8bit               30//全屏太黑或者太白调整这里
    / q) H+ S- P! `+ P
  210.         LCDWriteData(0x00); // Set Vop 9th bit(Total 9 bits)  01//全屏太黑或者太白调整这里  B, ^& R/ u* L  F- J
  211.         LCDWriteCmd(0xC3); //Set BIAS system
    ) S) S. n6 @; v. `
  212.         LCDWriteData(0x04); // 03: BIAS = 1/11  0-5
    ( n& ?/ b: b  q. X! Y2 o- `; Z5 q
  213.         LCDWriteCmd(0xC4); // Set booster level
    2 A/ V7 [- t# I
  214.         LCDWriteData(0x07); // 07:x8 Booster2 H, ^, F2 g& [
  215.         LCDWriteCmd(0xD0); // Enable analog circuit; G) z5 C  k) z4 Y' X# {
  216.         LCDWriteData(0x1D); // Enable analog circuit
    ' y+ k" v6 e( n5 D4 O7 ?
  217.         LCDWriteCmd(0x38); // Set display mode: M=1: Monochrome mode
    & B. \' d7 f) P8 k8 ~. X
  218.         LCDWriteCmd(0x3A); //Enable DDRAM interface* }. @" ~. z9 z
  219.         LCDWriteData(0x02); //RIF=0: Monochrome mode & 4-level gray scale mode
    8 ^$ d6 u/ Q' h5 e9 ^
  220.         LCDWriteCmd(0x36); // Display Control! c3 n; a8 k, g1 c7 ~
  221.         LCDWriteData(0x40); // MY=0: COM0-COM159/MX[1:0]=(0,0):SEG0<-SEG383; S+ j0 Z' l7 w7 E# [
  222.         LCDWriteCmd(0xB0); // Display Duty& o2 }+ ?$ v) q, _
  223.         LCDWriteData(0x81); //Set display duty DT=0x9Fh(1/160)  DT=0x81(1/130)
    * Z6 F- c, V( r8 H/ j7 a& d
  224.         LCDWriteCmd(0x20); // Inverse Display:INV=0: Normal display! a, _! j% }- c$ p# f( P! `. U
  225.         LCDWriteCmd(0xf1); //Frame Rate(Monochrome Mode)( g# x9 `/ S7 D4 d3 k3 D& q
  226.         LCDWriteData(0x15);//Frame Rate 92.0Hz+ e0 R8 @! a) V2 G- G" S
  227.         LCDWriteData(0x15);
    1 y! b7 t0 o( t3 d6 }  e
  228.         LCDWriteData(0x15);& @/ l) u/ r: D, _8 z3 F3 U6 ~3 h
  229.         LCDWriteData(0x15);
    * K2 e  a1 W6 p& Z  ]+ F
  230.         LCDWriteCmd(0xb1); // First Output COM
    ( }- ]8 U, h1 y  w) J# Q5 u
  231.         LCDWriteData(0x00); // Set first output COM           FC=00h(Start from COM0)' B' l1 n( f3 I  I: \& y- X
  232.         LCDWriteCmd(0x29); //Display ON& q5 Q. ~1 ~, q3 p7 W$ P
  233. }
    9 x- j4 u7 N) G' J
  234. . n( X+ V$ G, ?/ h
  235. void main()' V  C* J' o5 y/ g
  236. {
    : W0 u# ]) j' B. `

  237. / C9 \: k2 w: M8 n9 O2 T8 f& Z
  238.         LCDInit();  //初始化液晶
    6 I& N2 q" h3 A6 z2 l, z/ |& d! z
  239.                 LCD_ClrScreen(0);
    ! _7 k8 {+ K  \7 h: l3 a4 h
  240.                 delay_us(10);0 Z' g# o: b! h% W% i1 F, A3 `
  241.                 LCD_ClrScreen(1);
    4 L) w# W9 a. A% G4 v
  242.                 delay_us(10);% [! w5 z1 [: d, a" V
  243.                 LCD_ClrScreen(2);% h2 ?, x1 F- y, Y% T- G+ ?
  244.                 delay_us(10);
    3 {6 }) l5 }: H3 {
  245.                 LCD_ClrScreen(3);
    ( l& \9 V$ B5 e
  246.                 delay_us(10);
    3 i; W6 Y% x3 d
  247.                 : z' h0 M9 c- l
  248.         while(1)
    , R" z5 j" ?4 }9 Z
  249.         {
    . [/ S; @6 l2 i) N
  250.         //        GPM1306_DISBMP1(gImage_bmp1);
    : A: O. n+ K9 x+ j1 V5 t
  251.          GPM1306_DISBMP1(gImage_bmp2);9 K% u- c% q" D5 Q) u' _
  252. 0 z! w0 o* H: u' {- ?4 @/ H% d
  253. ! g* b+ F8 T- t( E
  254.         }
    / [9 k: e6 Y' h, x* R# ~& R
  255. }
    2 \1 L4 M4 o  V' Y5 A5 Z
  256. ; h! q; c$ s. M9 v+ l* Q  R% ^
复制代码

+ b" w& q# p( W. F) Z* h* d) `; l, a" V; ]/ v' Z6 h

! E4 p" {. g6 F+ R. i# a% `, R' g; Y& }, F. G+ p0 Z
( z7 t4 c% k4 ~/ a0 e. |
发表于 2017-3-18 17:55 | 显示全部楼层
你主程序里不是一直刷屏吗?
 楼主| 发表于 2017-3-18 19:45 来自手机 | 显示全部楼层
more 发表于 2017-3-18 17:55* H9 p" p7 d! |
你主程序里不是一直刷屏吗?

6 h& T+ y4 b& D* ?放在外面也这样的,只刷入一次也这样,不明白为什么呢
发表于 2017-3-19 08:57 | 显示全部楼层
如果你不停的刷而且 MCU 速度慢的话是这样的.
9 x" f8 _4 ?9 S3 r% ~( e: [你至少发个程序给大家看看啊.
发表于 2017-3-19 12:23 | 显示全部楼层
内存不够?瞎猜的
 楼主| 发表于 2017-3-19 15:32 | 显示全部楼层
junyee 发表于 2017-3-19 08:57- d1 A6 R4 Y+ A: r
如果你不停的刷而且 MCU 速度慢的话是这样的.! ?5 `- t0 J; P8 ~. Q
你至少发个程序给大家看看啊.
* _5 w* a% u+ U5 g* \7 J; [
问题解决了。换了一片同型号的还有不同型号的都试了一下,都可以,只有那一片不可以,但是那一片烧录个别的测试程序也ok。很奇怪。小概率的事件遇到了。. N' g3 m; R5 e: t
 楼主| 发表于 2017-3-19 15:33 | 显示全部楼层
mytomatoes 发表于 2017-3-19 12:23
$ Y& _; b7 l- N5 Y内存不够?瞎猜的

! O' S& T# G* {- ~问题解决了。换了一片同型号的还有不同型号的都试了一下,都可以,只有那一片不可以,但是那一片烧录个别的测试程序也ok。很奇怪。小概率的事件遇到了。
& V' D9 [+ d* t! w( Q$ R我用的确实是小内存的。
( `! s$ m2 I( p* t8 H

本版积分规则

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

GMT+8, 2024-6-16 03:26 , Processed in 0.055814 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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