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

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 引脚。
  \' z' ^- z" I9 \6 \+ i2 M# l/ o. O

! y  Z5 ~* C% [
STM32G431开发板的周边外设比较少,为了便于人际交互最先考虑的是为其配上一个显示屏,以利于信息的观察。
为了较少地占用系统资源,这里采用的是I2C接口的双色OLED屏,考虑到STM32G431开发板配有Arduino接口,就将OLED屏放到Arduino接口上来使用,从而能够不必连线就解决问题。
0 O9 G. i- N  ^4 B* E! c
OLED屏与MCU大的连接关系为:
SCL---PA5
SDA---PA6
7 N+ l3 a- B- _2 t; 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)

4 G8 x' n( j8 Z+ I2 R: c9 O
#defineOLED_SDIN_Clr()  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6,GPIO_PIN_RESET)
7 I  N4 L# f: l5 N7 b6 h: x' E7 [7 Q
实现引脚输出功能配置的函数为:
  1. void GPIO_OLED_INIT(void): C6 o" b" _; P& L7 u: H+ Q0 p
  2. {* w) M' Z) |+ G* K
  3. __HAL_RCC_GPIOA_CLK_ENABLE();: X3 S8 U4 `1 j3 `
  4. GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
    ; v) N- N* X# D8 f
  5. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    8 l4 \0 v* z$ ]( r6 t) j
  6. GPIO_InitStruct.Pin = GPIO_PIN_5;  y7 A, S2 N# |$ m; o, T! K
  7. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);   
    7 z3 V* {$ w2 J5 I* v' k
  8. GPIO_InitStruct.Pin = GPIO_PIN_6;  Q3 l# \2 U5 X3 f! o+ E
  9. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);& ~/ Z1 }0 _7 F/ ]: C5 j  A6 n3 p
  10. }
复制代码
# u- u) A* [5 ]9 A* F, {% _. X* P
由于STM32G431的主频速度比较高,故直接移植程序代码是有问题的,需要添加相应的延时函数来辅助解决。
修改后的辅助显示函数为:
  1. void IIC_Start()) F9 H0 H2 {1 j
  2. {: ]6 C1 u5 w( N; |6 w
  3. OLED_SCLK_Set();
    ) m; t4 ]0 r- r9 V: Q  @  W
  4. Delay(1);
    ! q, p3 y. ~$ C
  5. OLED_SDIN_Set();
    5 I4 \. N- s) c$ u
  6. Delay(1);
    # I+ R4 o8 V, a6 ^: T$ c
  7. OLED_SDIN_Clr();+ m4 e  W  t0 k- B+ ?
  8. Delay(1);! @1 \0 E8 M9 L
  9. OLED_SCLK_Clr();  N) Z+ |- \/ p7 x3 ~  V1 j
  10. Delay(1);: x# v( ^3 I6 K0 D
  11. }5 B; @! Z1 N& o' t- r- R- f. W" u

  12. 9 J9 N) x$ P1 {+ |; e6 l
  13. void IIC_Stop()5 `' ^7 H& R' j2 |6 [) E
  14. {
    0 j0 U# [; U/ e- u! R* L2 b
  15. OLED_SCLK_Set();
    . H* X  Z1 O3 t) q0 P5 E
  16. Delay(1);
    0 G% |( R0 D8 W- C- x
  17. OLED_SDIN_Clr();5 ?4 q7 [6 i- |
  18. Delay(1);" |, w' E6 I- @7 B
  19. OLED_SDIN_Set();7 n, ~. E5 D3 N8 F! a
  20. Delay(1);
    / z& W/ l+ S. A( j" E0 @
  21. }
    / Q( {3 G6 F- t- w
  22. 3 Q/ R: L. |" N8 W- N8 v* ^# ]; [
  23. void IIC_Wait_Ack()
    + t8 p4 e% C0 b
  24. {
    ! s6 s# ]4 l# D# m3 u+ j! U
  25. OLED_SCLK_Set();. e" p; N' n: z4 T
  26. Delay(1);0 L0 c- [* j  I8 s
  27. OLED_SCLK_Clr();
    - ?4 q' X, g7 f! |
  28. Delay(1);
      B# L+ b! H( b& k) _4 X+ E" b# B
  29. }
复制代码

2 n" h" F4 |& C; g
实现下图显示效果的主程序为:
  1. int main(void)& @& ?$ ?$ J6 L' ]% q% P
  2. {
    % R9 W2 @0 X- b$ X7 B! j+ Q
  3. HAL_Init();
    # ^8 B3 V3 I1 W5 O' i& ?4 N4 q
  4. SystemClock_Config();. K3 @2 U  y  ^% |4 t
  5. GPIO_OLED_INIT();8 Y. c, m9 f  i& B: q5 h# I9 P
  6. OLED_Init();3 p# e( d) k- t9 F7 q
  7. OLED_Clear();2 P0 y1 U8 {" ?% y
  8. OLED_ShowString(10,2,"STM32G431",16);
    % {6 u+ @. p* E
  9. OLED_ShowString(10,4,"OLED TEST",16);4 E7 U4 A3 K  |" h$ U2 r
  10. OLED_ShowCHinese(79,2,9);  B/ y4 J3 c) H! B- R8 H6 [0 D
  11. OLED_ShowCHinese(95,2,10);; T$ d/ g. M0 X- p
  12. OLED_ShowCHinese(111,2,11);( ]2 {5 d) G  w# D. T0 ~
  13. while (1);6 O/ y0 Y- l/ z( Z" J9 e, k+ Z
  14. }
复制代码

; Q# N* z, M! K. \+ y, I
a.jpg

" Q; l, _( t/ ^  c, [1 F
OLED屏显示效果

0 N5 e9 }4 K6 B) E
6 b1 V7 K! a1 o% K; A- L; R
收藏 评论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) x( ^  S% x. `赞!
/ S" X, e9 _, f2 H
感谢支持!!!

所属标签

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