一乐电子

一乐电子百科

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

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

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

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

[复制链接]
发表于 2017-3-18 10:37 | 显示全部楼层 |阅读模式
本帖最后由 davg1 于 2017-3-19 15:34 编辑
! |2 H" L3 P7 g( ^% C& k
( `2 |5 h" X2 V/ k( ?/ T# A非常感谢各位。
5 I! [2 X5 K8 }0 s问题解决了。换了一片同型号的还有不同型号的都试了一下,都可以,只有那一片不可以,但是那一片烧录个别的测试程序也ok。很奇怪。小概率的事件遇到了。3 x6 f1 d1 r" L+ }
正在研究屏幕显示汉字,还在乱码,图片是ok的。搞定了和大家分享。
5 p1 a6 M8 }0 h$ k# B1 Z% b% U: i9 D+ M/ q) ~
淘宝买的便宜货,在论坛各位大神的帮助下终于点亮了,可是还是有些问题。1 u& x) }/ `, J
刷图的时候其他未刷部分是白色的,而且出现非常明显的从上到下刷屏的样子,,根本看不太清楚,改了单片机的频率也不行,还是出现刷屏,只是整个过程快了很多。7 G& g7 f9 W1 ^  D- J5 J. S
无法达到一直显示的目的。问题找到了,是单片机一直在重启。
- w# ~9 m4 m( h+ p! W可是每次都是写入完图片的数据之后重启。如果只写入初始化不会重启。我在5v电源输入端和单片机输入端(3.3v)并联了100uf的电容,问题依然如故。陷入死结了。; Q% g. A1 h' t
我该怎么办呢?

6 ?, {5 n# _8 [接线图如下。我在1117的输入输出都加了100uf的电容,还是不行。供电是用的5v1A的插头。
* j: ]1 C' t  ~) i 搜狗截图20170318224029.jpg # l+ {* I6 m! v: z0 `+ P
* |$ ?* s) J3 P! K' ^3 B
; M+ ^& L' D) S$ B4 J

1 ~* ]/ N5 l/ Q. t如图,$ o( g9 x0 {# n0 m( j+ P- l/ \9 z2 O
IMG_20170318_102649.jpg $ T  F+ x# O7 }

. j0 {' K9 Z4 H 1.jpg 4.jpg 1 @* x1 B( q. M' ^4 K
3.jpg
7 |% q4 s# h) J4 i* d* {4 W8 ^0 L% ?( j( ^6 r& ~) `) f# m
程序用的
: G' f5 Y: @, Khttps://www.yleee.com.cn/thread-57727-1-1.html0 V4 V, L& J! _' {# G
wangke2010提供的程序。他的显示就很正常 1.png
; U1 J7 B2 d. _+ O- v8 z+ M
" s7 I& x- _9 I3 \
请问该如何救呢?谢谢!!!!6 q5 Z  n; u4 o$ W+ D
  1. unsigned char code gImage_bmp2[] =# E0 D; ]5 s5 o, c/ {
  2. {
    3 {* d! S% s9 y
  3. 0xFF,0xFF,0xFE,0x33,0xFF,0x80,0x01,0x80,0x00,0x00,# ?# X" U$ T" G  @7 o
  4. 0xFF,0xFF,0xFE,0x33,0xFF,0x80,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0x00,
    4 C/ g! X( P, M. d( I( K* e
  5. 0x01,0xC0,0x01,0x80,0x00,0x00,0x00,0x33,0xCD,0xFF,0xFF,0xE0,0x03,0x80,0x00,0x00,
      o* G4 ?$ R, r7 i4 g- v( O
  6. 0x00,0x03,0xCD,0xFF,0xFF,0xF0,0x03,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xF8,  ?) w4 |" Z& _" p
  7. 0x07,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFC,0x1F,0x80,0x00,0x00,0x00,0x00,
    ; I. o$ m) Y; e+ m2 H$ K
  8. 0xCD,0xFF,0xFF,0xFE,0x1D,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFF,0x81,0x80," S/ C9 e8 \9 F$ v
  9. 0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFF,0xC1,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,9 c* q9 E1 Y8 W
  10. 0xFF,0xFF,0xC1,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFF,0x01,0x80,0x00,0x00,
    : ?6 [( L6 E6 G2 T# Z
  11. 0x00,0x00,0xCD,0xFF,0xFF,0xFE,0x01,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xF8,$ Q% T' Z9 _5 |7 X& A
  12. 0x01,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xF0,0x01,0x80,0x00,0x00,0x00,0x00,
    # s% {" U0 ?- Q/ Z) L& d( M
  13. 0xCD,0xFF,0xFF,0xE0,0x11,0x80,0x00,0x00,0x00,0x00,0xCC,0xEF,0xFF,0xE0,0x1F,0xFC,
    6 H( l" S& o: t  @, g( y
  14. 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x1F,0xFC,0x00,0x00,0x00,0x00,0x00,0x0C,+ s& u. T. V: @
  15. 0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xDF,0xFF,0xC0,0x00,0x00,0x00,1 |1 ?, u6 O% r7 M; l8 v0 \
  16. 0x00,0x00,0x00,0x1F,0xDF,0xFF,0xC0,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
    # G, U# M: g  e/ ~( K  t) `
  17. 0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,
    " [" U9 v8 L% A! x
  18. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x0F,0x00,0x33,0x3B,
    ! H+ i% o, u! _* ?9 e: ^: c4 F) F
  19. 0xFF,0xF8,0x00,0x00,0x00,0x00,0x1F,0xC0,0x73,0x7F,0xFF,0xF8,0x00,0x00,0x00,0x00,
    3 k1 S$ u( u3 f+ u2 w# K5 d: s
  20. 0x1F,0xC0,0x73,0x7F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x1F,0xC0,0x73,0x7F,0xFF,0xFE,& @5 f5 {8 ^- \# [% n( {4 K; `! Z
  21. 0x00,0x00,0x00,0x00,0x1F,0xC0,0x73,0x7F,0xFF,0xFF,0x80,0x00,0x00,0x00,0x03,0xC0,3 R' N5 C4 l3 x2 N% a  f2 _! [  a$ p
  22. 0x73,0x7F,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x07,0x80,0x73,0x7F,0xFF,0xFF,0xF8,0x00,& d9 H+ ?% A1 J# f( P
  23. 0x00,0x00,0x0F,0xE0,0x73,0x7F,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x0F,0xE0,0x73,0x7F,9 g. _+ i) _  W6 S% [' r
  24. 0xFF,0xFF,0xF0,0x00,0x00,0x00,0x0F,0xE0,0x73,0x7F,0xFF,0xFF,0x80,0x00,0x00,0x00,
    ( u0 z; w; u1 Z7 W& y$ C! @+ t9 s
  25. 0x00,0x00,0x73,0x7F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x7F,0xFF,0xFE,2 ?1 v. P7 X7 d
  26. 0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x7F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,
    & G" D' K/ E* Z
  27. 0x73,0x7F,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,
    1 a9 g# O) A6 h2 g. e
  28. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,, D$ s/ J3 B& f" k- j8 @3 P. j
  29. 0xF7,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF7,0xFF,0xF8,0x00,0x00,0x00,5 t+ g) U; e; ]2 ]
  30. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,+ V- `. s4 i# j% T
  31. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    " h2 t5 u" y! H  v" t# L
  32. 0x00,0x00,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,
    * ^6 J( ^9 Q$ P& Z
  33. 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,; V0 _' `! q. o, B7 ?* |' T6 u
  34. 0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,0x00,0x00,, X& Z8 s; N  Q$ |9 _: r
  35. 0x00,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF0,9 Q, @, C  k. b( n
  36. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x30,0x00,0x00,0x00,0x00,0x00,0x00,
    7 W. [1 }1 U; l, n# Y
  37. 0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,+ Y- h! e7 p3 }) f$ H1 S: ]
  38. 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0xFF,0x80,0x00,0x00,0x00,0x00,
    $ L( x( |0 R2 q$ v4 l
  39. 0x01,0xC0,0x00,0x00,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x80,
    - _9 U# q3 P# D) |+ i3 ]$ J/ K  h
  40. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
    , `6 y; }8 n( |9 P
  41. };- h3 l, o( j% @' F+ p  @  X3 @
  42. ( X4 z; S  b5 o8 ~; P

  43. 7 t- P' @) |0 P6 A6 ?$ [
  44. /*  GPM1306.c
    ( _9 n! t$ K& P8 e" \: T; ]
  45. *  Created on: 2016-10-19% W- ^) N  r: G
  46. *                  ┌─────────────────────────────────────────────┬───────────────┐
    ! m7 ^6 l0 T3 G5 q# R& B" V
  47. *  PIN_NO : 17    16     15    14    13    12   11    10    9    8    7    6     5     4    3     2     1( O& S( H( X* i2 U, R0 e
  48. *  NAME   : BK-K  BK-A   NC    SCL   SDA   A0   RST   nCS   NC   VDD  C1   VSS   VDD   C2   C31   C32   C4
    1 f* F4 i* O' E# ?+ [
  49. *  CONN   : GND   VCC          P1.4  P1.3  P1.2 P1.1  P1.0       VDD  │   │VSS  │VDD   │    │     │     │
    ( A* ^$ p  _- p3 @3 C+ Q
  50. *            │                                                        │   │     │      │    │     │     │, ]9 Q0 r) g7 |- n
  51. *            │     C1-C5=1uF 25V 0805                                ───  │    ───    ───   │     │    ───
    4 }4 ~) c, z( z7 o2 c: I
  52. *            │     120x160pix                                        ───  │    ───    ───   └─│ │-┘    ───8 P, l. Y/ N# B- a  i0 d; h
  53. *            │    ┌──────────┐                                        │C1 │     │C5    │C2       C3     │C4
    1 ]+ @8 c8 ^/ L* U
  54. *            └────┤  R1=3R3  ├────────────────────────────────────────┴───┴─────┴──────┴────────────────┘8 `4 f% [2 Z% E* \' W( D1 ~) R5 `
  55. *                 └──────────┘
    1 e2 u  I$ s( z* s5 P9 |' _
  56. *==================================================NOTICE==================================================
    $ s0 H8 Z+ |4 q" H
  57. *这个程序仅供评估,没有任何技术支持。如有疑问,请仔细阅读压缩包中的PDF文件或者联系芯片/模块厂家。
    8 J  B9 M1 ^" q# L3 \0 K  s. g
  58. *这个模块还有很多功能没有在这个程序中体现出来,具体请参阅压缩包中的PDF文件或者联系芯片/模块厂家。) a/ S8 }: t3 h# e6 ?
  59. *推荐使用TI的LaunchPad验证,如果使用别的板子/芯片,请根据具体情况修改移植源文件。& t; V# A7 T1 E- H
  60. **************************************************移植参考**************************************************
    5 D9 v& y  v. H. o2 K1 h) Q- L
  61. *使用MSP430系列芯片可以直接使用或者修改一下脚位既可以。注意主频要和 #define Fosc 中定义保持一致。
    3 z" n) j1 d/ R. Q
  62. *移植至别的芯片请注意初始化IO和修改延时参数,修改脚位并注意void LCDInit(void)中有直接控制引脚的指令,需要一并修改。' k+ Y# L- k- T& p  m9 {$ e5 R9 Q) z
  63. *祝大家玩的开心。( G+ V) J# @! i4 t
  64. P1OUT |= BIT1;  是将P1OUT倒数第二位被置10 r( j1 F/ `" l1 i; [% V5 m/ F
  65. P1OUT&=~ BIT0 是将P1OUT最低位 清 0$ V. h0 M' M( a- V% W" K$ X. G
  66. */
    0 d5 V9 B/ I$ m9 ~. m' r" t7 q2 {
  67. #include  "config.h"
    & s# u( j. ]! I3 d6 A( I, s
  68. #include  "Delay.c"  9 e1 i1 c" M! }- g& b, P- V6 E" P
  69. #define   GPM1306_nCS_CLR    P12=0
    2 N" P, `& Q) r6 P& u" ?
  70. #define   GPM1306_nCS_SET    P12=1
    % Z* R4 N3 ^+ S9 t% }* T
  71. #define   GPM1306_RST_CLR    P13=0
    / w0 D, |$ j& M/ m9 X* _
  72. #define   GPM1306_RST_SET    P13=1
    1 @5 i3 e2 e6 q
  73. #define   GPM1306_A0_CLR     P14=0
    # H8 n* o6 N, M
  74. #define   GPM1306_A0_SET     P14=1
    % E* e$ Q! R& t7 y
  75. #define   GPM1306_SDA_CLR    P15=0
    + r- I/ r/ u5 H" H9 q+ C
  76. #define   GPM1306_SDA_SET    P15=1
    9 L2 ]9 Y( q# d
  77. #define   GPM1306_SCL_CLR    P54=0
    2 ?7 g/ }  G4 j- m) s7 c* x
  78. #define   GPM1306_SCL_SET    P54=1
    4 Y* G7 i) @  l
  79. + s* ]$ t+ q5 ]

  80. , ?. m$ I! n1 O6 H4 d
  81. void LCDWriteCmd(char cmd)
    / u9 A& l% ]$ {9 C) z- |! M# K3 `6 v
  82. {+ k: c- f, b& j# z
  83.         unsigned char i ;$ c+ k8 R" V' A1 b& A7 o* k  Y0 c
  84.         GPM1306_nCS_CLR;          //使能芯片
    + k" L6 f. I& N$ A& I
  85.         GPM1306_A0_CLR;//写命令模式  ?/ c" P* d3 u+ m0 q2 L
  86.         for(i=0;i<8;i++)/ t0 \+ a% G: x& G* ?+ K
  87.         {
    # z8 S# [, c  U8 Y0 z1 x6 i! Q
  88.                 GPM1306_SCL_CLR;+ W" e0 S6 n3 }2 R" p9 X) ~$ |
  89.                 if(cmd&0x80)    //先传高位字节,后传低位字节
    7 x9 d; ~& ]: m' y, c' c( J, Y% O7 d
  90.                         GPM1306_SDA_SET;
    * s) W) |( n; Q, S  N
  91.                 else
    7 ]! V& D' ]! `  W& o3 `
  92.                         GPM1306_SDA_CLR;
    6 o6 O  K* q* h3 w/ ^
  93.                 GPM1306_SCL_SET;2 Z  Z& X, v/ h& A- K
  94.                 cmd=cmd<<1;
    ! z6 J, k2 Y' u8 Q- w& f7 r
  95.         }6 K& o$ v( K( i) }
  96.         GPM1306_nCS_SET;
    , _" }- o3 y& Y3 ?& h- P# T
  97. }
    ' o$ ~) C9 p% F7 x1 v+ N0 x% A/ H' j
  98. void LCDWriteData(char cmd)
    $ ~4 ?9 X: j& r, q( h& @
  99. {3 T$ V& m6 ~7 e2 W7 p0 I/ O" ^. m- {
  100.         unsigned char i ;( }; D( F5 x- t4 K" k$ J, ^& U0 ~
  101.         GPM1306_nCS_CLR;          //使能芯片
    & C5 F( B1 p: E; F
  102.         GPM1306_A0_SET;//写数据模式
    ! X% O- {% N8 Q! ?( W! Z: Q
  103.         for(i=0;i<8;i++)  Q5 u  u. I! _$ y
  104.         {2 q0 U/ x& e0 b2 j3 @# Q' N
  105.                 GPM1306_SCL_CLR;4 W7 I+ |6 n% Z) j* x* A0 @
  106.                 if(cmd&0x80)    //先传高位字节,后传低位字节% N% F  f8 w6 f
  107.                         GPM1306_SDA_SET;3 @& E$ S/ ]: w$ |
  108.                 else
    + Z8 {& i, f3 j
  109.                         GPM1306_SDA_CLR;  T7 H3 L5 [  b; i! [* S7 z6 i
  110.                 GPM1306_SCL_SET;: u1 f# v1 T5 L' B. e
  111.                 cmd=cmd<<1;
    . w) w0 M# }: Y+ U
  112.         }
    9 r, G) p3 i! L) j
  113.         GPM1306_nCS_SET;
    6 @8 S8 C) ]# J1 L) J0 b
  114. }9 d8 f& d) E# a% |+ n% T' F
  115. //设置起始行列1 J  j1 X1 t3 a0 c
  116. //ys为起始行,xs为起始列, ye为结束行, xe为结束列8 U8 C) S9 G* S
  117. //xe与xs的差值即字的宽度, ye与ys的差值即字的高度4 A5 I0 p7 r# y, w' W3 g
  118. void LCDSetXY(char xs, char ys, char xe, char ye ); R% e4 m, ]2 I3 [
  119. {
    * F. I! H( J3 }& b3 V! l& T' b
  120.         LCDWriteCmd(0x2A); //设置列地址(横坐标): X5 P5 _7 Q+ i$ X
  121.         LCDWriteData(0x00);1 o  b$ z' R( a" f; o- ]5 H" T& U
  122.         LCDWriteData(xs);3 n" _2 J: w" w' M, v3 i7 d& M
  123.         LCDWriteData(0x00);& G$ T3 g2 I* r6 b, m* i
  124.         LCDWriteData(xe);
    3 A( a8 L* F- J+ S* I6 Y
  125.         LCDWriteCmd(0x2B); //设置行地址(纵坐标)
    ) {+ ~+ G7 J1 u* f3 \( w
  126.         LCDWriteData(0x00);
    5 ^/ e+ x  K  I% Y4 U. W* c
  127.         LCDWriteData(ys);: A2 d. l; T4 C3 b
  128.         LCDWriteData(0x00);; [4 r3 M1 u, @
  129.         LCDWriteData(ye);) M& _5 ^& l9 w
  130. }$ j$ ]/ s( I4 a
  131. //清屏函数
    9 y1 Z# x$ \" N; |3 }! o
  132. void LCD_ClrScreen(unsigned char value)+ W( S; {' |$ I6 h1 [
  133. {; a1 z% G4 a) v: P" d7 e( f& S
  134.         unsigned char i,j;$ w; I) M# U% U4 }
  135.         const unsigned char tt[]={0x00,0x49,0x92,0xff,};
    4 o. r' E7 J& V1 V: q/ g
  136.         value=value&0x03;
    $ R" O0 v3 H: E! S, G* C& X
  137.         value=tt[value];( r! M% C$ a9 u1 w$ X
  138.         LCDSetXY(0,0,53,119);! e' w; \9 j& E1 t0 j" C1 K
  139.         LCDWriteCmd(0x2C);  //向DDRAM写入显示数据5 d7 t6 E7 }6 c% ?6 `
  140.         for(i=0;i<120;i++)% }& i1 e7 j8 f4 o6 v
  141.                 for(j=0;j<54;j++)
    " \, L* N* [& R/ N" F( {
  142.                         LCDWriteData(value);
    * E9 I! Z& y) z- E0 q4 Z
  143. //        P1 ^=BIT6;
    ; j) i6 T; E0 N( J3 ^6 {9 Y+ H5 r" z* D
  144. }7 `6 v2 P9 B5 P& {, m% {
  145. void GPM1306_DISBMP1(const unsigned char *BMP1)
    & t/ z/ e! f7 W& @0 B) w
  146. {  e# ?6 q5 P) ~. C5 K7 R- A5 ?& d
  147.         unsigned long MCx8x31;, T7 Q& r7 K  L' }7 x" x( x+ Q
  148.         unsigned char LINE_COUNT1,COLUNM_COUNT1,color1,t2;/ c- q/ n6 j0 x
  149.           signed char vaild_bit1=8;" U: y/ n# C1 U0 H& |
  150.         ((unsigned char *)&MCx8x31)[2]=*BMP1;
    & [3 ?/ k0 W( f
  151.         BMP1++;7 {3 Q) @& Y2 h
  152.         LCDSetXY(10,0,36,60);" p9 r! G3 `( [& F9 T8 x
  153.         LCDWriteCmd(0x2C);  //向DDRAM写入显示数据
    ) C' j# A' m0 k8 f' e5 O
  154.         for(LINE_COUNT1=0;LINE_COUNT1<120;LINE_COUNT1++)
    - |6 E1 Q2 A  g: ^, B
  155.         {
    # f, u. Q1 E6 J! r
  156.                 for(COLUNM_COUNT1=0;COLUNM_COUNT1<53;COLUNM_COUNT1++)//160/3=53....1
    2 I0 f% a# W% ^6 z% I; C: V
  157.                 {/ g1 U: ~: Y% V! E. a/ Y/ |
  158.                         if(vaild_bit1<3)
    5 V; l6 i' W% L" |
  159.                         {. c- c5 w- g- I& n" ]
  160.                                 MCx8x31=MCx8x31<<vaild_bit1;
    4 r3 n2 B. t( x& |
  161.                                 ((unsigned char *)&MCx8x31)[2]=*BMP1;
    1 j" d: n4 ]8 I- P6 t6 S
  162.                                 BMP1++;
    5 j$ }. p2 B7 V0 x
  163.                                 MCx8x31=MCx8x31>>vaild_bit1;
    % z1 I9 ]' u0 n2 L( x( h
  164.                                 vaild_bit1=vaild_bit1+8;
    . h, p: _. K; W# y# K( E9 Q/ N
  165.                         }% o. c. l% g- n( I' {
  166.                         color1=0;
    4 F& k6 a* W: g  ~
  167.                         t2=((unsigned char *)&MCx8x31)[2];5 j9 I$ E/ V3 B% l) t
  168.                         if((t2&0x80))! o; ]* K3 R% o
  169.                                 color1=0x03;' L% m6 e# n! S0 p& m9 ]. {( r
  170.                         if((t2&0x40))
    4 t3 X' _7 M4 U6 ^! `
  171.                                 color1=color1+0x1c;5 j' ^0 X0 p' C% f5 N7 a" o7 w- P2 T
  172.                         if((t2&0x20))
    ' E; K9 n+ x# }8 q" b
  173.                                 color1=color1+0xe0;/ I. b, ]! b3 l0 x* I: X
  174.                         MCx8x31=MCx8x31<<3;
    9 l( }+ `) c, X% a
  175.                         vaild_bit1=vaild_bit1-3;
    $ F9 Q; E0 s8 m  x" t# q
  176.                         LCDWriteData(color1);4 y* I3 l  ~3 ^3 ?. y. M/ q
  177.                 }
    ; g+ L) ~: }- h0 P1 d0 @4 Z
  178.                 if(vaild_bit1<3)
    5 J, q/ m7 U" t4 A" |( G5 \' C
  179.                 {
    ' c( t, C8 T; u0 Z& h; w7 |
  180.                         MCx8x31=MCx8x31<<vaild_bit1;% m7 Q+ e3 c$ E+ _% y% D
  181.                         ((unsigned char *)&MCx8x31)[2]=*BMP1;
    2 H8 p, s6 g! Y8 r  d7 ?
  182.                         BMP1++;2 k- p( P# ^5 C, W3 z9 I
  183.                         MCx8x31=MCx8x31>>vaild_bit1;" T" c# l. X* u% F; l, Z. m
  184.                         vaild_bit1=vaild_bit1+8;
    4 w; G3 l) c" N
  185.                 }
    4 O* Z  q- ~/ Q, Z8 G
  186.                 color1=0;% Y" N) g2 |% {# K
  187.                 t2=((unsigned char *)&MCx8x31)[2];
    6 ~" j; O4 {4 Q. D' }$ T" G' Y
  188.                 if((t2&0x80))
    ) F5 q. R  \! V
  189.                         color1=0x03;6 R" v. [. ]) a, _9 ~6 e) y* j
  190.                 MCx8x31=MCx8x31<<1;
    7 I$ K: f- ^: a9 X- {& w
  191.                 vaild_bit1=vaild_bit1-1;
    ( f; g0 Q- q8 d. |
  192.                 LCDWriteData(color1);
    ! P- X% v/ P% I+ X' l- w
  193.         }
    ( f; ~0 A0 N7 @
  194. }
    ' y' f4 z+ g6 I
  195. //初始化函数
    2 ?4 N7 W( \( @+ f: Y$ z  |2 ?3 \
  196. void LCDInit(void)8 c1 Q) C! }: E* u2 K  f$ p
  197. {* U9 C! R4 g* H/ F" s
  198.         GPM1306_RST_CLR;) i9 u' }- j0 G% g0 m
  199.         delay_us(20);
    6 e$ y. t# c* d9 c) b4 i' X4 D
  200.         //__delay_cycles(Fosc*0.2);//Delay_ms(20)   //延时20ms
    6 R- h7 ^# Y. Z; u. J, q
  201.         GPM1306_RST_SET;/ c' z9 z) K( R$ n# Y2 D
  202.         delay_us(40);
      @: Z0 ^) g) {6 `5 @; r. `
  203.         //__delay_cycles(Fosc*0.4);//Delay_ms(200); //延时200ms4 _# U0 j% ^9 H& z
  204.         LCDWriteCmd(0x01);   // soft reset. F' ]  L2 G6 a  Z9 r8 A+ E
  205.         delay_us(40);
    6 r8 g! a" T# U3 d
  206.         //__delay_cycles(Fosc*0.4);//Delay_ms(200); //延时200ms" u: V# P1 C4 x; b
  207.         LCDWriteCmd(0x11); //Set power save mode:Sleep out mode
    8 L( }9 j) |1 }" S$ X: j2 p
  208.         LCDWriteCmd(0xC0); // Set Vop///
    ) m0 p7 k; ~3 I, W3 s& T
  209.         LCDWriteData(0xf0); // Set Vop Low 8bit               30//全屏太黑或者太白调整这里' F$ L: q6 x1 O! u, i' S2 K8 v) y9 b
  210.         LCDWriteData(0x00); // Set Vop 9th bit(Total 9 bits)  01//全屏太黑或者太白调整这里
    : b/ H0 z& ^1 a2 c
  211.         LCDWriteCmd(0xC3); //Set BIAS system3 q* e! ~/ W9 i
  212.         LCDWriteData(0x04); // 03: BIAS = 1/11  0-53 }" D2 J# X, S% X! s9 f
  213.         LCDWriteCmd(0xC4); // Set booster level
    + G( V7 ]2 Y9 F* Y2 k9 n
  214.         LCDWriteData(0x07); // 07:x8 Booster2 E/ X& q$ P4 }
  215.         LCDWriteCmd(0xD0); // Enable analog circuit
    ) _0 U3 O5 D. ]' s+ r7 {9 F" s
  216.         LCDWriteData(0x1D); // Enable analog circuit
    4 S4 b% t+ x! k6 v3 X
  217.         LCDWriteCmd(0x38); // Set display mode: M=1: Monochrome mode7 P0 `7 E8 G) H& k
  218.         LCDWriteCmd(0x3A); //Enable DDRAM interface4 ?- l: ~5 n  }9 Z" e3 m7 ?
  219.         LCDWriteData(0x02); //RIF=0: Monochrome mode & 4-level gray scale mode9 V/ [6 C) A$ `* d8 {# `
  220.         LCDWriteCmd(0x36); // Display Control% Z5 ^( V% U; T- k
  221.         LCDWriteData(0x40); // MY=0: COM0-COM159/MX[1:0]=(0,0):SEG0<-SEG383
    & @5 \' A8 a5 \6 `) c2 J* G' p3 Y/ h
  222.         LCDWriteCmd(0xB0); // Display Duty
    , @4 q& o; F7 r
  223.         LCDWriteData(0x81); //Set display duty DT=0x9Fh(1/160)  DT=0x81(1/130)
    1 }. j  t8 j; @3 M, a* g
  224.         LCDWriteCmd(0x20); // Inverse Display:INV=0: Normal display
    / c( d" w" H* _2 R8 U6 K
  225.         LCDWriteCmd(0xf1); //Frame Rate(Monochrome Mode)$ J# _, p2 B' ^
  226.         LCDWriteData(0x15);//Frame Rate 92.0Hz
    $ ^. c0 U8 }( @/ `% F
  227.         LCDWriteData(0x15);0 }, A: P1 }  }( n/ O
  228.         LCDWriteData(0x15);) g% A! C9 `+ h7 ^* ^- j, A# x9 _
  229.         LCDWriteData(0x15);
    8 F6 z3 H2 K" N  F' `% @# p$ A
  230.         LCDWriteCmd(0xb1); // First Output COM
    ; }$ r2 U' ]1 E* O" m& l
  231.         LCDWriteData(0x00); // Set first output COM           FC=00h(Start from COM0)4 u: f  N; k7 \
  232.         LCDWriteCmd(0x29); //Display ON
    ) q7 z: X7 T. ~% s
  233. }
    " [& P  }% `9 r; U* N

  234. 3 y5 T" }- E; j
  235. void main()! v" E/ E- S& P. i# {. h, n; C4 A
  236. {" m5 Z/ d. \% p2 X
  237. / ^0 f% D, b/ l1 x# [
  238.         LCDInit();  //初始化液晶( I: R  l; O- P6 x+ x3 o( M* K1 w8 w
  239.                 LCD_ClrScreen(0);
    4 Q& }7 s+ ]9 x$ `( \+ _. L" g
  240.                 delay_us(10);
    ) s# h% e5 k- m' z3 r* V8 {, w
  241.                 LCD_ClrScreen(1);
    9 J6 \( S+ M+ e6 f' @7 o
  242.                 delay_us(10);
    ) C4 u  M) |3 v
  243.                 LCD_ClrScreen(2);* n. X+ O, [* b3 `5 `
  244.                 delay_us(10);
    + {$ s! L& N$ e
  245.                 LCD_ClrScreen(3);
    5 u) A. w* o$ g: V  P
  246.                 delay_us(10);
    * P+ A% O- `3 K% v( s) j
  247.                
    5 D* e, {# p: j$ i/ X4 j  F! r
  248.         while(1)
    - S; L: D4 `: E5 V* H" ^
  249.         {
    4 l2 D9 }# o( p* Y; x
  250.         //        GPM1306_DISBMP1(gImage_bmp1);, f! {8 X  w0 g# A+ G+ I
  251.          GPM1306_DISBMP1(gImage_bmp2);# c: j# P" X- D* f+ r
  252. % n) [' v* H' c* [: N" H
  253.   T/ }' k) i; {. u5 p$ R2 T$ M1 }% u
  254.         }! G/ c4 b  N; b
  255. }6 D) o" a$ |+ N# L- e/ X

  256. , F* R1 C" n! O/ f; h0 |
复制代码
" P8 }- {1 T7 F, D+ X5 {

) l1 _1 b) o9 z- L2 n( ]+ m/ r% W" H! h8 N" c3 R/ m- z

( [% X8 l* `8 u2 f  a3 e# U
% N7 p8 w8 ?! |0 }/ N/ r; W
发表于 2017-3-18 17:55 | 显示全部楼层
你主程序里不是一直刷屏吗?
 楼主| 发表于 2017-3-18 19:45 来自手机 | 显示全部楼层
more 发表于 2017-3-18 17:554 n- U* |7 C: y
你主程序里不是一直刷屏吗?
" I4 W2 R, g. ^7 @. h" {8 w& S) O
放在外面也这样的,只刷入一次也这样,不明白为什么呢
发表于 2017-3-19 08:57 | 显示全部楼层
如果你不停的刷而且 MCU 速度慢的话是这样的.8 z- a  g, e' p% z4 |
你至少发个程序给大家看看啊.
发表于 2017-3-19 12:23 | 显示全部楼层
内存不够?瞎猜的
 楼主| 发表于 2017-3-19 15:32 | 显示全部楼层
junyee 发表于 2017-3-19 08:57% b7 x* N' U# `6 M
如果你不停的刷而且 MCU 速度慢的话是这样的.
8 }. F) q  Z0 S3 O# M' z+ x  h你至少发个程序给大家看看啊.

: E+ C/ Y, X* t" h8 w: u问题解决了。换了一片同型号的还有不同型号的都试了一下,都可以,只有那一片不可以,但是那一片烧录个别的测试程序也ok。很奇怪。小概率的事件遇到了。
1 L- q7 H: [1 g2 I$ ]
 楼主| 发表于 2017-3-19 15:33 | 显示全部楼层
mytomatoes 发表于 2017-3-19 12:23. y1 g# t7 F9 G, g  _( v
内存不够?瞎猜的

0 P: B+ k, _" U  `) M2 f2 B. Z4 G; h问题解决了。换了一片同型号的还有不同型号的都试了一下,都可以,只有那一片不可以,但是那一片烧录个别的测试程序也ok。很奇怪。小概率的事件遇到了。
7 }% Q. v% P# I! }+ p% O0 V我用的确实是小内存的。
1 N3 P7 E4 F1 M

本版积分规则

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

GMT+8, 2024-4-26 06:47 , Processed in 0.054467 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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