一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

搜索
查看: 5953|回复: 6

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

[复制链接]
发表于 2017-3-18 10:37 | 显示全部楼层 |阅读模式
本帖最后由 davg1 于 2017-3-19 15:34 编辑
; c/ H8 f% N5 R; ?7 b8 E  O' v$ F; M% W/ w4 |
非常感谢各位。- r6 w) f" x4 ?; p
问题解决了。换了一片同型号的还有不同型号的都试了一下,都可以,只有那一片不可以,但是那一片烧录个别的测试程序也ok。很奇怪。小概率的事件遇到了。
' F. k1 H" @1 f( g$ v正在研究屏幕显示汉字,还在乱码,图片是ok的。搞定了和大家分享。
* [& e* U% P' J; U: Z0 A
8 q: |$ |! k! O1 a. C! B6 l, V淘宝买的便宜货,在论坛各位大神的帮助下终于点亮了,可是还是有些问题。
3 f$ C# G0 o) q0 k5 }- J& h刷图的时候其他未刷部分是白色的,而且出现非常明显的从上到下刷屏的样子,,根本看不太清楚,改了单片机的频率也不行,还是出现刷屏,只是整个过程快了很多。
% y$ \8 V3 E, V" o3 Q6 R3 f无法达到一直显示的目的。问题找到了,是单片机一直在重启。
$ n6 X% e: B; c8 R! u可是每次都是写入完图片的数据之后重启。如果只写入初始化不会重启。我在5v电源输入端和单片机输入端(3.3v)并联了100uf的电容,问题依然如故。陷入死结了。
$ n8 k  A3 p. e  \$ Z1 U) `我该怎么办呢?
1 Q8 X7 x& Z+ m
接线图如下。我在1117的输入输出都加了100uf的电容,还是不行。供电是用的5v1A的插头。/ v, Z! W6 B2 {: t) o, ]# P# I; C
搜狗截图20170318224029.jpg
4 W6 r3 o# V/ X1 H& h. A

. H$ l, a# E3 `; [! `0 v
7 X7 p, G! d7 P' a4 p& ^5 k8 Q  ~+ R0 T3 _1 i/ @
如图,
' p7 d; b3 @# i! a( F/ S: H IMG_20170318_102649.jpg
; Q" i. J4 A, P" X( x
& G- `# f1 o) f5 O 1.jpg 4.jpg . c% {, m; Q* E) B# u
3.jpg
2 _: }7 ]8 A/ |& c% n. f
! W" I; b% `  R6 Q7 j程序用的
# C3 g& H9 V1 {https://www.yleee.com.cn/thread-57727-1-1.html& o% ^( ~# I: K) U, E8 y) y
wangke2010提供的程序。他的显示就很正常 1.png
; f& t- Z* Y0 c" e
% q7 X- m: m* U# T2 k
请问该如何救呢?谢谢!!!!
% K2 m( G3 r% U+ K3 W4 H  Q# B0 z
  1. unsigned char code gImage_bmp2[] =
    8 Q2 I, ?# r& ?
  2. { 0 x4 o* w# z* F+ ^# H% G1 R
  3. 0xFF,0xFF,0xFE,0x33,0xFF,0x80,0x01,0x80,0x00,0x00,: v6 R- c; K- Q; s* ], n5 a
  4. 0xFF,0xFF,0xFE,0x33,0xFF,0x80,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0x00,- R8 W. z. B, R9 ]
  5. 0x01,0xC0,0x01,0x80,0x00,0x00,0x00,0x33,0xCD,0xFF,0xFF,0xE0,0x03,0x80,0x00,0x00,3 M9 B9 D6 N: G4 p
  6. 0x00,0x03,0xCD,0xFF,0xFF,0xF0,0x03,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xF8,9 l# S; p  N! ~' k2 `2 G( K
  7. 0x07,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFC,0x1F,0x80,0x00,0x00,0x00,0x00,6 n2 I' }/ e6 F, o" a/ B
  8. 0xCD,0xFF,0xFF,0xFE,0x1D,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFF,0x81,0x80,
    # |8 {* e* ^; P: d  \: Z( L3 W+ `
  9. 0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFF,0xC1,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,
    ' n/ ^- ~, v5 D6 q8 h! z: ?
  10. 0xFF,0xFF,0xC1,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xFF,0x01,0x80,0x00,0x00,$ Q" p; O+ D4 K5 R
  11. 0x00,0x00,0xCD,0xFF,0xFF,0xFE,0x01,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xF8,
    5 \2 X9 |7 I  I  s0 \- L  A
  12. 0x01,0x80,0x00,0x00,0x00,0x00,0xCD,0xFF,0xFF,0xF0,0x01,0x80,0x00,0x00,0x00,0x00,
    : W7 E1 }7 Z0 e$ o7 R" Y
  13. 0xCD,0xFF,0xFF,0xE0,0x11,0x80,0x00,0x00,0x00,0x00,0xCC,0xEF,0xFF,0xE0,0x1F,0xFC,9 Y0 U5 z% e1 G5 c9 m( G
  14. 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x1F,0xFC,0x00,0x00,0x00,0x00,0x00,0x0C,* c& m) ]0 a+ \( ?- t
  15. 0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xDF,0xFF,0xC0,0x00,0x00,0x00,9 w0 v! V$ ^) a
  16. 0x00,0x00,0x00,0x1F,0xDF,0xFF,0xC0,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,, a# Q9 b( J- P; F& z. M3 v
  17. 0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,& @, m7 g4 r: k
  18. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x0F,0x00,0x33,0x3B,
    ; V3 v* }+ P# E5 G5 C& i7 N1 Q8 R
  19. 0xFF,0xF8,0x00,0x00,0x00,0x00,0x1F,0xC0,0x73,0x7F,0xFF,0xF8,0x00,0x00,0x00,0x00,
    + K# }2 Q; N! `& h
  20. 0x1F,0xC0,0x73,0x7F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x1F,0xC0,0x73,0x7F,0xFF,0xFE,$ t- `- B$ O8 E/ G
  21. 0x00,0x00,0x00,0x00,0x1F,0xC0,0x73,0x7F,0xFF,0xFF,0x80,0x00,0x00,0x00,0x03,0xC0,
    , x. k2 B$ ^& w; P- S% _% |, \) u7 T
  22. 0x73,0x7F,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x07,0x80,0x73,0x7F,0xFF,0xFF,0xF8,0x00,
    2 H. w# J( _" A2 ]8 x
  23. 0x00,0x00,0x0F,0xE0,0x73,0x7F,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x0F,0xE0,0x73,0x7F,: g' }4 g( Q1 X) a! p! @/ [
  24. 0xFF,0xFF,0xF0,0x00,0x00,0x00,0x0F,0xE0,0x73,0x7F,0xFF,0xFF,0x80,0x00,0x00,0x00,
    - }% W4 U+ w# G
  25. 0x00,0x00,0x73,0x7F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x7F,0xFF,0xFE,
      [$ O% Z5 ?& t* V
  26. 0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x7F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,! j/ B7 t2 S, f# z
  27. 0x73,0x7F,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,4 H2 Y* t! O$ N1 I2 M
  28. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,
    $ S7 l5 {# e6 Q# O  d1 W
  29. 0xF7,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF7,0xFF,0xF8,0x00,0x00,0x00,
    ' Y7 r! p/ k$ b4 y5 l" C
  30. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    # F- q2 @6 m' B! p
  31. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,' X1 G$ S+ x6 L% Z# x: e( F
  32. 0x00,0x00,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,8 N) t# a0 B# ?8 p* [
  33. 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,! A; I2 D/ E( l! f& s+ C0 ~
  34. 0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,0x00,0x00,
      [+ q, w7 N1 E3 B2 H: E
  35. 0x00,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF0,& D& U$ I  s. E' o: x+ h" M
  36. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x30,0x00,0x00,0x00,0x00,0x00,0x00,
    7 l' ^/ k5 {" t& b; a
  37. 0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,
    $ S; `) }8 x/ x8 m! K
  38. 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0xFF,0x80,0x00,0x00,0x00,0x00,  j4 h/ M" [2 \5 H6 c# }, y
  39. 0x01,0xC0,0x00,0x00,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x80,; \/ e- e6 ^$ d! f7 W! k5 @* }3 m
  40. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
    - q& f) ~2 N+ s) b( k) L! _
  41. };
    , N' V  S: J4 K

  42. " h3 l* I0 h# p2 p
  43. 9 y' Y3 a4 O* h" l" |
  44. /*  GPM1306.c
    " [& ^* A3 [+ Q$ H# {" @
  45. *  Created on: 2016-10-19
    4 r* K" J2 P( f9 k* M: [
  46. *                  ┌─────────────────────────────────────────────┬───────────────┐" K6 Z& M' m, u; _1 O0 N
  47. *  PIN_NO : 17    16     15    14    13    12   11    10    9    8    7    6     5     4    3     2     15 K9 g' L6 c8 h% o' U0 z& ?
  48. *  NAME   : BK-K  BK-A   NC    SCL   SDA   A0   RST   nCS   NC   VDD  C1   VSS   VDD   C2   C31   C32   C4
    6 ?9 P5 {; d6 {$ y6 B# e
  49. *  CONN   : GND   VCC          P1.4  P1.3  P1.2 P1.1  P1.0       VDD  │   │VSS  │VDD   │    │     │     │( i. M) S6 ^5 O& G/ B. W
  50. *            │                                                        │   │     │      │    │     │     │
    1 P4 t* ]( {7 B  n4 e' S
  51. *            │     C1-C5=1uF 25V 0805                                ───  │    ───    ───   │     │    ───
    + L3 ], W" F; U; @( R" j
  52. *            │     120x160pix                                        ───  │    ───    ───   └─│ │-┘    ───' q  B1 x% \+ h+ Q7 }4 e
  53. *            │    ┌──────────┐                                        │C1 │     │C5    │C2       C3     │C4: u5 _" d! v: @5 ?, \7 {
  54. *            └────┤  R1=3R3  ├────────────────────────────────────────┴───┴─────┴──────┴────────────────┘
    $ f9 s$ T6 m  A9 H8 K
  55. *                 └──────────┘
    5 d0 Y1 E! {" v6 q$ x0 {
  56. *==================================================NOTICE==================================================
    . t  M+ |( y3 z; A
  57. *这个程序仅供评估,没有任何技术支持。如有疑问,请仔细阅读压缩包中的PDF文件或者联系芯片/模块厂家。
    3 y) |. s2 k- x
  58. *这个模块还有很多功能没有在这个程序中体现出来,具体请参阅压缩包中的PDF文件或者联系芯片/模块厂家。/ S# a# @) d$ B$ `* }- e( f
  59. *推荐使用TI的LaunchPad验证,如果使用别的板子/芯片,请根据具体情况修改移植源文件。
    ' a! C: O' {# j
  60. **************************************************移植参考**************************************************
    # j& \+ Y1 o0 n) ]5 A) d
  61. *使用MSP430系列芯片可以直接使用或者修改一下脚位既可以。注意主频要和 #define Fosc 中定义保持一致。6 q( H2 L) l. H4 x' F( d
  62. *移植至别的芯片请注意初始化IO和修改延时参数,修改脚位并注意void LCDInit(void)中有直接控制引脚的指令,需要一并修改。
    / x2 \+ {: T7 n! Y) h: M% m2 L
  63. *祝大家玩的开心。
    + d! Q9 ~7 l. N& s# s( b4 }% |
  64. P1OUT |= BIT1;  是将P1OUT倒数第二位被置10 q: _$ k" t2 X5 w) S9 A
  65. P1OUT&=~ BIT0 是将P1OUT最低位 清 0/ g/ [: l# m$ `: i0 A
  66. */
    8 ~8 D9 V, h# ?' K! d4 ~- m2 K  P
  67. #include  "config.h". [2 }! k: g9 C  e0 x5 I5 p
  68. #include  "Delay.c"  
    & x1 B; h# f8 p7 |: o) v
  69. #define   GPM1306_nCS_CLR    P12=0
    ! r4 w# `9 R, Z  u
  70. #define   GPM1306_nCS_SET    P12=1' u" M( L, V/ s
  71. #define   GPM1306_RST_CLR    P13=08 N* S' v3 d% a& x+ x; j
  72. #define   GPM1306_RST_SET    P13=1
    . C' i/ X" M) a; S9 e+ k% G
  73. #define   GPM1306_A0_CLR     P14=0
    ! Y# O& F6 m! V' B* u
  74. #define   GPM1306_A0_SET     P14=19 v  G1 p, U! O: V) _( F. ]" t
  75. #define   GPM1306_SDA_CLR    P15=05 c7 F3 q8 a5 ?) z
  76. #define   GPM1306_SDA_SET    P15=1; N1 D( d  a2 W8 {- v+ \' _/ O
  77. #define   GPM1306_SCL_CLR    P54=0
    2 F8 ^/ h$ w! |; `! \
  78. #define   GPM1306_SCL_SET    P54=1' w) V) f% b0 C6 [+ d1 Q5 s
  79. 2 _! j# S% L" S, J+ B# D
  80. 5 v" |5 `) p+ Q) Z% ?
  81. void LCDWriteCmd(char cmd)
    0 Q* E5 ]0 J2 W4 z7 S; [: U1 t8 Y
  82. {
    3 f. |* s0 N4 v! R$ h7 E( K* b8 D/ _
  83.         unsigned char i ;% U2 r. l& A( M0 R+ d" e% t
  84.         GPM1306_nCS_CLR;          //使能芯片' g4 }4 X, p1 y/ y9 z  U- ?, V
  85.         GPM1306_A0_CLR;//写命令模式6 x3 J$ l' M+ J  a$ r$ w5 ~
  86.         for(i=0;i<8;i++)
    & f) f8 z) w$ M5 |/ v( T
  87.         {
    - c( H& T. `. l# I4 A; {
  88.                 GPM1306_SCL_CLR;
    2 O& J  A4 I$ j4 F' G  E) x
  89.                 if(cmd&0x80)    //先传高位字节,后传低位字节! S$ R- r" F" e6 {
  90.                         GPM1306_SDA_SET;
    * j9 k6 K9 j' [; A
  91.                 else% i0 Z6 X7 h  `: M5 d' k
  92.                         GPM1306_SDA_CLR;: D- N2 t0 P, N6 x. u
  93.                 GPM1306_SCL_SET;: n' ^0 ?" N$ z7 Q, R2 U1 G
  94.                 cmd=cmd<<1;: F, `, a$ w5 k+ x
  95.         }4 K: Q$ q0 j7 h! u5 J
  96.         GPM1306_nCS_SET;; ^/ H* p7 K  |% i2 z. {; o
  97. }& I8 I/ s  E7 M
  98. void LCDWriteData(char cmd)% c  j& h: E5 U# W0 p+ }
  99. {0 _' C* U; E5 ^( M* p
  100.         unsigned char i ;
    9 A1 H3 Z6 g3 w1 C
  101.         GPM1306_nCS_CLR;          //使能芯片5 r) i* H" a) K
  102.         GPM1306_A0_SET;//写数据模式5 {& o9 Z/ E7 Y
  103.         for(i=0;i<8;i++)* z. D+ [4 l+ p% F  }3 E( ]
  104.         {# ~/ t& E: o, p/ }6 j8 E
  105.                 GPM1306_SCL_CLR;/ w& J- [  D9 Z) x& ?& u
  106.                 if(cmd&0x80)    //先传高位字节,后传低位字节
    % `6 O; D+ z; m) n+ o% y
  107.                         GPM1306_SDA_SET;" {# n  |- w% u0 }0 n1 I; n8 P
  108.                 else
    3 B# z) g+ W) o" [( A
  109.                         GPM1306_SDA_CLR;$ H  x9 z8 \4 T6 _  s3 J& p/ S
  110.                 GPM1306_SCL_SET;
    8 R) A, i) A6 b+ P1 a5 L
  111.                 cmd=cmd<<1;
    & o2 l# G  j5 M0 b; z1 X
  112.         }$ K1 ~5 y* b1 K$ m5 Y: O
  113.         GPM1306_nCS_SET;" A* V4 C6 C. S4 r# D
  114. }
    % k$ v: T1 t- d& i5 Z9 ]9 l' s
  115. //设置起始行列
    4 L" y  J( M5 s; ~0 `  X
  116. //ys为起始行,xs为起始列, ye为结束行, xe为结束列  f# W+ V5 d* Q6 ?* L+ c$ T4 Z
  117. //xe与xs的差值即字的宽度, ye与ys的差值即字的高度
    / s: Y' c+ j) F7 h- J5 `$ F7 s, y* p
  118. void LCDSetXY(char xs, char ys, char xe, char ye )* r' b" t% n6 X) \" F9 R; Q1 x8 N
  119. {8 G* `8 ]- `! F; J. s* Y
  120.         LCDWriteCmd(0x2A); //设置列地址(横坐标)
    $ j+ @1 p+ t4 F( u
  121.         LCDWriteData(0x00);
      d3 @& i5 P( n7 x9 l0 \  g: m
  122.         LCDWriteData(xs);
    2 q3 n/ k" n% f5 \9 L
  123.         LCDWriteData(0x00);
    8 Q, ~6 F0 n4 G
  124.         LCDWriteData(xe);! E, n1 P4 n& n" j& q* X
  125.         LCDWriteCmd(0x2B); //设置行地址(纵坐标)3 e& [* D5 _* p7 `$ a
  126.         LCDWriteData(0x00);
    : n: ~- R  L9 n4 g1 N
  127.         LCDWriteData(ys);4 c5 u5 z" i2 x6 O$ s2 q3 [
  128.         LCDWriteData(0x00);+ d8 y6 _8 }, B7 a# ?, s' t
  129.         LCDWriteData(ye);5 W: t0 d" a; e3 B. K* t, d7 m
  130. }( [4 O8 P( k& X. l" P$ X9 u
  131. //清屏函数0 A" A2 v3 T% @5 U# @' ]6 e
  132. void LCD_ClrScreen(unsigned char value)% D7 A5 }& Q9 i: ~' H
  133. {; w9 l4 N  j& t! c
  134.         unsigned char i,j;
    : L0 N- A  N& y$ i* e* e. P
  135.         const unsigned char tt[]={0x00,0x49,0x92,0xff,};! R' F; }8 S$ a2 p: ?  O
  136.         value=value&0x03;( q' h1 q- ]9 [4 G: q
  137.         value=tt[value];
    5 X, ^, S; ?' j6 R( t' g
  138.         LCDSetXY(0,0,53,119);
    9 @9 t% r: l% j: t; d! N; ^- j
  139.         LCDWriteCmd(0x2C);  //向DDRAM写入显示数据/ `) e9 u3 u* i- }" Z
  140.         for(i=0;i<120;i++); [( y* P8 E$ u2 a$ }  A" [
  141.                 for(j=0;j<54;j++)% H. q9 w4 H5 E1 Q5 `( w
  142.                         LCDWriteData(value);
    ! @8 Y* g8 g3 S2 ?4 I% ^4 v
  143. //        P1 ^=BIT6;0 l% h& T" i+ ~6 b3 T& Y: y
  144. }8 G: q" ^& O. \& P: ~
  145. void GPM1306_DISBMP1(const unsigned char *BMP1)6 @3 Q# E8 `' z3 d% T
  146. {
    # d# a  a+ y1 K) v- N$ z
  147.         unsigned long MCx8x31;5 a# i* g; p7 z7 t, {: B7 h
  148.         unsigned char LINE_COUNT1,COLUNM_COUNT1,color1,t2;
    7 Z. n* I' W  X4 N
  149.           signed char vaild_bit1=8;% K. `8 @  e) u
  150.         ((unsigned char *)&MCx8x31)[2]=*BMP1;) v3 E/ c+ M) e2 |1 R' K$ u0 h
  151.         BMP1++;& c5 O! q* {* t2 b% T
  152.         LCDSetXY(10,0,36,60);* U1 ^: L2 D; m* v( Q- f" Y! R' E
  153.         LCDWriteCmd(0x2C);  //向DDRAM写入显示数据
    % X/ W2 p# S# x5 P: [( q! S
  154.         for(LINE_COUNT1=0;LINE_COUNT1<120;LINE_COUNT1++)
    ' f1 y" ]9 A1 w4 o* ^7 M
  155.         {
    9 q  ~  v8 t) \, _) i
  156.                 for(COLUNM_COUNT1=0;COLUNM_COUNT1<53;COLUNM_COUNT1++)//160/3=53....1
    4 X, [* N  _% M! N7 V
  157.                 {
    ) M/ k5 b7 h1 J( Q7 j
  158.                         if(vaild_bit1<3)' U4 q3 y9 V, ~' M& D9 R- N
  159.                         {1 s( D/ k" [1 B4 u* z, _7 `
  160.                                 MCx8x31=MCx8x31<<vaild_bit1;6 ~8 Z, R; W: k6 {3 F1 l0 Q( ~2 n
  161.                                 ((unsigned char *)&MCx8x31)[2]=*BMP1;, H" |5 K. J1 Q' t5 T
  162.                                 BMP1++;
    ' o: i, W( [5 M1 k; n7 V" @) x! N! g
  163.                                 MCx8x31=MCx8x31>>vaild_bit1;
    8 _3 }& u  q0 b% @0 K' ]
  164.                                 vaild_bit1=vaild_bit1+8;( K! @& G* |2 w
  165.                         }
    ' O$ r$ |1 f* B6 j& a; p# C
  166.                         color1=0;
    2 b+ Q' N- r$ g" B) B
  167.                         t2=((unsigned char *)&MCx8x31)[2];
    3 R, D7 Z/ l5 }. d8 p
  168.                         if((t2&0x80))
    7 z7 z% C9 L  R# H2 W6 t
  169.                                 color1=0x03;& c) |0 H: w% f6 Y" b+ U
  170.                         if((t2&0x40))' E+ u) O' K+ u% u2 R( y
  171.                                 color1=color1+0x1c;
    ! M2 B% C2 S; X4 j4 k
  172.                         if((t2&0x20))1 a' e6 q* K. d
  173.                                 color1=color1+0xe0;& w- T7 ~! b! @, U4 s/ I7 e, V8 G% H) d
  174.                         MCx8x31=MCx8x31<<3;* s8 C; S& x$ V# j: A5 I
  175.                         vaild_bit1=vaild_bit1-3;6 C6 {! t% Z  p; y$ s- Y: k
  176.                         LCDWriteData(color1);
    1 f2 s4 X' t3 ?/ i, [
  177.                 }4 z# ~# n2 X: n  R
  178.                 if(vaild_bit1<3)
    # ^0 u. w8 w6 A2 b. \
  179.                 {/ W1 n0 Y8 Y6 N
  180.                         MCx8x31=MCx8x31<<vaild_bit1;
    - d5 c- o' K, Q
  181.                         ((unsigned char *)&MCx8x31)[2]=*BMP1;
    $ F# @# x6 F4 P  x
  182.                         BMP1++;- \( k8 K6 R" W, H( G: v
  183.                         MCx8x31=MCx8x31>>vaild_bit1;
    " f# k$ `; ]1 ~& D$ I
  184.                         vaild_bit1=vaild_bit1+8;
    $ ]* }9 C& [+ o% ~8 Z
  185.                 }6 R" M2 n* V7 O3 m  p' |  A
  186.                 color1=0;7 J. G1 S. i: d6 M/ \$ v  y
  187.                 t2=((unsigned char *)&MCx8x31)[2];
    + f& }) p- l8 b/ E
  188.                 if((t2&0x80))0 z# \& [5 h! o0 z; X' L& U  g
  189.                         color1=0x03;
    6 Z! b/ z- [  c
  190.                 MCx8x31=MCx8x31<<1;% _7 s8 s: ^: X7 k  ?& C* R
  191.                 vaild_bit1=vaild_bit1-1;; c0 u- @% y* j3 U
  192.                 LCDWriteData(color1);
    - U( A$ K2 Z$ z1 x
  193.         }
    , u7 `# `  T5 Y& k0 [9 P/ |
  194. }
      I( a, m9 p4 I4 r- s. [% ]* r
  195. //初始化函数
    " v; ^+ Y5 @& }. C3 c
  196. void LCDInit(void)
    ' I; s1 J3 A& ~3 V. B
  197. {
    : }; a7 I4 e* n: n9 i! M$ g: h
  198.         GPM1306_RST_CLR;9 ~! Q# a" G( F* v/ i
  199.         delay_us(20);6 N& k; U5 E- w5 E# P) f
  200.         //__delay_cycles(Fosc*0.2);//Delay_ms(20)   //延时20ms
    * u. f9 @) [! A  K& Q# b
  201.         GPM1306_RST_SET;- w0 K# ?0 d; ~+ n. r5 b. r
  202.         delay_us(40);/ K# Q+ [+ ^/ L+ X* [
  203.         //__delay_cycles(Fosc*0.4);//Delay_ms(200); //延时200ms& O& p, _6 N! i: s; ^: C
  204.         LCDWriteCmd(0x01);   // soft reset( x( H- B  w- e3 P
  205.         delay_us(40);
    ( K/ j/ o. Z$ Y# P" p9 A) b
  206.         //__delay_cycles(Fosc*0.4);//Delay_ms(200); //延时200ms
    ( j6 j% c, J( _; |9 L8 r8 {
  207.         LCDWriteCmd(0x11); //Set power save mode:Sleep out mode
    5 b4 ?) ]; `: s# w/ S6 D7 g
  208.         LCDWriteCmd(0xC0); // Set Vop///
    , E* t! B' N1 d1 P
  209.         LCDWriteData(0xf0); // Set Vop Low 8bit               30//全屏太黑或者太白调整这里
    9 {/ z, v/ a" J% G/ z
  210.         LCDWriteData(0x00); // Set Vop 9th bit(Total 9 bits)  01//全屏太黑或者太白调整这里
    0 V- Q0 [9 i% L$ j! h% m
  211.         LCDWriteCmd(0xC3); //Set BIAS system
    $ T( A: {* ^9 j- p# d
  212.         LCDWriteData(0x04); // 03: BIAS = 1/11  0-59 Z5 w  t! ?! t& J/ k( \, X3 M
  213.         LCDWriteCmd(0xC4); // Set booster level
    0 f" T6 R" B7 q! G8 R( q2 u' q
  214.         LCDWriteData(0x07); // 07:x8 Booster
    ! j2 g# U' T6 l5 C: T9 M% Z! j5 v7 t
  215.         LCDWriteCmd(0xD0); // Enable analog circuit
    5 r$ ]6 x+ c0 Z. r( G" D
  216.         LCDWriteData(0x1D); // Enable analog circuit( \8 m) `4 B. z) h- O; V+ `2 D
  217.         LCDWriteCmd(0x38); // Set display mode: M=1: Monochrome mode
    & q% h  M$ ^. A9 A" t
  218.         LCDWriteCmd(0x3A); //Enable DDRAM interface) x: T: s. ?0 X) r/ T' ~1 q
  219.         LCDWriteData(0x02); //RIF=0: Monochrome mode & 4-level gray scale mode, m- T0 n: N7 r% `
  220.         LCDWriteCmd(0x36); // Display Control
    * X& q2 {7 M* U' ?# V
  221.         LCDWriteData(0x40); // MY=0: COM0-COM159/MX[1:0]=(0,0):SEG0<-SEG383
    ( Z. [; \. l! k, `6 z
  222.         LCDWriteCmd(0xB0); // Display Duty% }6 Y* ~) m/ |7 a
  223.         LCDWriteData(0x81); //Set display duty DT=0x9Fh(1/160)  DT=0x81(1/130)
    7 n- c( [# v7 i
  224.         LCDWriteCmd(0x20); // Inverse Display:INV=0: Normal display# Z1 z; C7 M5 v2 z+ ~; B
  225.         LCDWriteCmd(0xf1); //Frame Rate(Monochrome Mode)
    + t' L( X( z1 D1 a
  226.         LCDWriteData(0x15);//Frame Rate 92.0Hz! o6 c, d* P- o0 M' y
  227.         LCDWriteData(0x15);
    : u2 V: e" k! [  R
  228.         LCDWriteData(0x15);# U% n' c! T  b5 }. W* _; h9 }
  229.         LCDWriteData(0x15);; ?# X4 o* w6 X& a; _
  230.         LCDWriteCmd(0xb1); // First Output COM
    4 v: O' w5 w4 I# k. f
  231.         LCDWriteData(0x00); // Set first output COM           FC=00h(Start from COM0)4 o! Q/ B5 ~1 q, G, e: M0 z
  232.         LCDWriteCmd(0x29); //Display ON
    & X0 i$ t& v' E8 L
  233. }
    ! F1 ?2 B( f- d8 N% K3 t( P1 }. ~7 c

  234. / S' w+ W) w+ u2 ]8 V0 K! T2 }5 n
  235. void main()
    ' o, Q* `# x' K* r" }6 P
  236. {1 Z7 J" r, Z& K, R: W
  237. & D. O- t3 x% M" H' [( ~% o
  238.         LCDInit();  //初始化液晶2 ~( W; K) d. L2 }* b/ M
  239.                 LCD_ClrScreen(0);/ f' m' ^1 ^9 b/ E  k4 e* r" ~$ J
  240.                 delay_us(10);
    ( Q  ^' T; G4 a( X
  241.                 LCD_ClrScreen(1);* ]. Y6 K& s# v% b1 W' m' F6 k) R
  242.                 delay_us(10);
    7 Q! ^2 }# z5 J: `9 U0 X8 w7 Z
  243.                 LCD_ClrScreen(2);
    . w, }& L  m. }4 y/ w4 r2 m( W& k
  244.                 delay_us(10);
    5 z0 E8 _9 Y/ p
  245.                 LCD_ClrScreen(3);
    ' `0 k) M1 f$ M) j/ c
  246.                 delay_us(10);+ S+ C) p: f& U9 i4 ^/ e2 u
  247.                 / B% Y) J7 y, a' e) {2 V
  248.         while(1)
    1 ~7 e( y' Y; \# E1 ?
  249.         {, w+ X2 ?' f6 O8 Z' A" q4 A$ a" Y
  250.         //        GPM1306_DISBMP1(gImage_bmp1);
    & r2 Q* }+ t9 a' ~2 ?
  251.          GPM1306_DISBMP1(gImage_bmp2);9 [& I' n. u% ^6 p
  252. / ^! `2 s( R1 l9 a% k6 _1 n
  253. 4 v  j" L' g2 J) O6 C: C. F4 q
  254.         }/ S9 t% q$ X2 {& ?( c! g
  255. }" H2 C) w' `1 w: Y* G8 Z" i2 U
  256. ! n$ o0 P  \: h* |* @1 }$ \
复制代码

% Z: J% D% L1 ^6 j/ A
. T2 ~4 y7 d2 x6 [" U
- c0 k" b! m8 H# A2 E# m  K7 u1 Z, \/ l! f
& v# _% X) a% Z# ~# i1 y
发表于 2017-3-18 17:55 | 显示全部楼层
你主程序里不是一直刷屏吗?
回复

使用道具 举报

 楼主| 发表于 2017-3-18 19:45 来自手机 | 显示全部楼层
more 发表于 2017-3-18 17:55
) D  d! {( g" E7 L, H你主程序里不是一直刷屏吗?
5 ?) t# E% Z0 w
放在外面也这样的,只刷入一次也这样,不明白为什么呢
回复

使用道具 举报

发表于 2017-3-19 08:57 | 显示全部楼层
如果你不停的刷而且 MCU 速度慢的话是这样的.
6 i* s, ^2 P- o2 j, Z& v/ d你至少发个程序给大家看看啊.
回复

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2017-3-19 15:32 | 显示全部楼层
junyee 发表于 2017-3-19 08:57
6 w6 s4 i$ G# c; K% C0 M# j如果你不停的刷而且 MCU 速度慢的话是这样的.: q4 ]! k) m9 g% k) A
你至少发个程序给大家看看啊.
9 {+ T. E! a( S0 z1 n3 Y
问题解决了。换了一片同型号的还有不同型号的都试了一下,都可以,只有那一片不可以,但是那一片烧录个别的测试程序也ok。很奇怪。小概率的事件遇到了。
0 y" d& p  R7 O! G2 @9 S
回复

使用道具 举报

 楼主| 发表于 2017-3-19 15:33 | 显示全部楼层
mytomatoes 发表于 2017-3-19 12:23
* u1 c8 d3 P8 _' c  O/ B% z内存不够?瞎猜的

0 m- c/ f! C; W5 P% C问题解决了。换了一片同型号的还有不同型号的都试了一下,都可以,只有那一片不可以,但是那一片烧录个别的测试程序也ok。很奇怪。小概率的事件遇到了。' v; O7 r6 @1 j3 v+ ?
我用的确实是小内存的。2 ~) R1 D, U! B+ ~' c4 t0 U
回复

使用道具 举报

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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