你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32G431驱动OLED屏显示

[复制链接]
jinglixixi 发布时间:2020-12-8 22:41
STM32G431是一款 STM32G4 系列的入门级芯片,它内嵌了运行频率为 170 MHz Arm Cortex-M4内核,支持 FPU DSP 指令,属混合信号微控制器。
该系列芯片具有:
•2 个高速12 ADC(采样率 4 M/秒)
•4 12 DAC(采样率 15 M/秒)
•4 个高速比较器(17 纳秒)
•3 个高速运放(具有可编程增益)
•ARTCCM SRAM 和数算加速器
单存储区 Flash存储容量范围为 32 128 KB,封装为 32 100 引脚。

- S8 r3 s7 x4 Z2 V6 n: N4 l  W. p- _( J2 a
STM32G431开发板的周边外设比较少,为了便于人际交互最先考虑的是为其配上一个显示屏,以利于信息的观察。
为了较少地占用系统资源,这里采用的是I2C接口的双色OLED屏,考虑到STM32G431开发板配有Arduino接口,就将OLED屏放到Arduino接口上来使用,从而能够不必连线就解决问题。

7 |6 i; b: Q, h. `  G
OLED屏与MCU大的连接关系为:
SCL---PA5
SDA---PA6

5 H, n! a+ U8 c3 Q
控制相关引脚输出高低电平的语句定义为:
#defineOLED_SCLK_Set()  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5,GPIO_PIN_SET)
#defineOLED_SCLK_Clr()  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5,GPIO_PIN_RESET)
#defineOLED_SDIN_Set()  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6,GPIO_PIN_SET)

3 w' X7 t7 g) g+ R& E
#defineOLED_SDIN_Clr()  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6,GPIO_PIN_RESET)

+ g* Y) K' o5 j2 ]' x; _
实现引脚输出功能配置的函数为:
  1. void GPIO_OLED_INIT(void)
    2 m9 z; ?, ~% K" Z0 t7 n4 f2 A
  2. {
    " ~4 H% E; Y! y. y' h% @
  3. __HAL_RCC_GPIOA_CLK_ENABLE();7 ?/ G+ {7 s0 _( V9 {4 o
  4. GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
    ' _: \+ U9 ~* c2 n
  5. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;1 m  O+ u. v! t3 f
  6. GPIO_InitStruct.Pin = GPIO_PIN_5;* Z5 T0 q( Q- \* H  s4 Z
  7. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);   
    ' A5 D, W) R! z6 i
  8. GPIO_InitStruct.Pin = GPIO_PIN_6;
    5 K% s/ @3 v( m4 G% S
  9. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);! b& F7 @, @5 o/ [7 o" n
  10. }
复制代码

! M( P' a- F( r
由于STM32G431的主频速度比较高,故直接移植程序代码是有问题的,需要添加相应的延时函数来辅助解决。
修改后的辅助显示函数为:
  1. void IIC_Start()* T3 j: @! y4 \) ~, R3 F
  2. {
    " |, b: M0 ]7 u' x/ ?* `
  3. OLED_SCLK_Set();$ i8 @6 f- {2 g. a: W3 K5 v; t
  4. Delay(1);+ r( [0 c* r# }4 p5 K8 o* Q
  5. OLED_SDIN_Set();
    6 Z* N3 |1 g1 p2 n
  6. Delay(1);6 O5 o6 N7 G# `+ l- B( P
  7. OLED_SDIN_Clr();
    4 |4 b1 r8 g0 V  S$ t; D  J
  8. Delay(1);
      h6 y( I/ H3 _3 Z
  9. OLED_SCLK_Clr();
    5 M, W& G% w, o9 v5 S' l& u
  10. Delay(1);0 w7 `3 u3 @6 U9 Z2 [& x2 Z
  11. }
      E  G5 h0 y4 m* y* s% E; U  r: E

  12. ; D! p9 B/ h) g1 S# t, a0 J
  13. void IIC_Stop()
    $ c4 U2 g& b# o
  14. {7 Q4 h  I2 D% \/ L3 s) h% M' o/ D
  15. OLED_SCLK_Set();" V0 B( @2 b! A, G* ]( V1 ?- L
  16. Delay(1);
    4 `% [# O! ^8 K" e# V* \
  17. OLED_SDIN_Clr();
    & W+ E, C+ Z6 W, R- K8 B
  18. Delay(1);& j( r5 I, x+ U
  19. OLED_SDIN_Set();+ ~6 j. b! x! R/ O2 ]
  20. Delay(1);3 Z3 D9 E( g) l# p0 d  F" h, p
  21. }5 s; T7 `2 N1 u# H" |# p/ H1 C

  22. 7 c- N6 T, y) |: z  h+ |/ @- t
  23. void IIC_Wait_Ack()
    * a3 ~% a, f) o0 q( c+ E3 x/ u
  24. {
    ; i7 I0 h1 @* t  j
  25. OLED_SCLK_Set();6 F! l0 N1 r* s" d& Q9 h0 h" E+ j9 R
  26. Delay(1);4 D5 p) P' I% T* w! w
  27. OLED_SCLK_Clr();
    2 W$ `3 e/ K$ \+ r9 m
  28. Delay(1);
    , U6 T& \: V7 N) C7 s7 i
  29. }
复制代码
- q) K9 k5 v. S- Q' O# h4 U! z; o
实现下图显示效果的主程序为:
  1. int main(void)
    8 p/ O/ s/ L# r1 c( Y0 u. P- S8 o
  2. {( F% W9 H8 |& a
  3. HAL_Init();+ [& T, O. R/ X5 l6 F) C7 `
  4. SystemClock_Config();% o; o2 J! h: c7 w/ {: v+ |1 S
  5. GPIO_OLED_INIT();
    & L. q# E; R% b5 u/ B
  6. OLED_Init();' n9 i% F$ P" o* S& C7 a
  7. OLED_Clear();8 u  @$ L  m+ |) Y9 K: K( t
  8. OLED_ShowString(10,2,"STM32G431",16);* E: Y( U. T# x# T0 t: G0 K
  9. OLED_ShowString(10,4,"OLED TEST",16);
    / n+ Q( L7 ~  @" B- R
  10. OLED_ShowCHinese(79,2,9);
    - T3 ?, Y# c" u) e9 k4 x
  11. OLED_ShowCHinese(95,2,10);; D# m2 r3 N5 A
  12. OLED_ShowCHinese(111,2,11);  o( U5 T, x6 c5 @1 b9 ?
  13. while (1);
    % I! S  \& k1 W/ v3 H
  14. }
复制代码

8 |1 A; K, g9 T$ j' T) w( t4 b
a.jpg

+ e' z2 t. v6 t/ U) e
OLED屏显示效果
$ z3 p: b' e3 X: ~, H

/ v+ i3 j! J; Q. z7 k# h" O
收藏 评论2 发布时间:2020-12-8 22:41

举报

2个回答
kylixyao 回答时间:2020-12-9 11:31:33
赞!
jinglixixi 回答时间:2020-12-9 17:13:52
kylixyao 发表于 2020-12-9 11:31
: ]/ D, R$ a) {2 ~, o% @赞!
/ X; J9 P' H# K* u7 [
感谢支持!!!

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版