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

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 引脚。
6 N2 g4 Y3 F  b* [. H7 o
# P( r0 q' o4 V% M$ |! m
STM32G431开发板的周边外设比较少,为了便于人际交互最先考虑的是为其配上一个显示屏,以利于信息的观察。
为了较少地占用系统资源,这里采用的是I2C接口的双色OLED屏,考虑到STM32G431开发板配有Arduino接口,就将OLED屏放到Arduino接口上来使用,从而能够不必连线就解决问题。

! X+ }7 y  Y6 g, Q9 o
OLED屏与MCU大的连接关系为:
SCL---PA5
SDA---PA6

$ g0 @  i5 ^0 `
控制相关引脚输出高低电平的语句定义为:
#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)
; a( S. o! [. R/ d: E7 M
#defineOLED_SDIN_Clr()  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6,GPIO_PIN_RESET)

$ S+ E, n( W- Z/ @7 o% l: P9 w' [
实现引脚输出功能配置的函数为:
  1. void GPIO_OLED_INIT(void)) l7 V2 o: W: P0 u" V( B
  2. {
    9 {. {% p% W1 |$ n+ V, |
  3. __HAL_RCC_GPIOA_CLK_ENABLE();5 k0 [7 c  n+ A9 ~
  4. GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;+ r( J  Y$ ]4 e: e% W
  5. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    $ @7 _8 W# J4 b: j6 ~% I+ j+ t
  6. GPIO_InitStruct.Pin = GPIO_PIN_5;
    ( v" k( R1 N0 F7 F: b/ ?
  7. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);   
    ) F# e1 x- b% C" @
  8. GPIO_InitStruct.Pin = GPIO_PIN_6;9 _$ L# a7 g! w8 S2 b
  9. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);* v8 b$ ]& I5 ~" P
  10. }
复制代码
  D) z& ]0 @! X: O: l4 }% |, J
由于STM32G431的主频速度比较高,故直接移植程序代码是有问题的,需要添加相应的延时函数来辅助解决。
修改后的辅助显示函数为:
  1. void IIC_Start()* ?1 }! Z4 ?: Y# _; |2 e
  2. {
    * `- S4 T; z" p. D7 @& c: L
  3. OLED_SCLK_Set();
    9 a8 s: A8 r9 f7 |3 _- v
  4. Delay(1);
    9 m. |+ f! }: `0 I' l; E" C0 u+ m
  5. OLED_SDIN_Set();6 _2 f4 ~7 X1 s. \8 T+ a  k) n& L3 A
  6. Delay(1);
    1 x  d/ L6 d- b* [1 v* M6 g
  7. OLED_SDIN_Clr();8 H  ?1 F4 W( R6 R
  8. Delay(1);
    2 H7 A( w+ A% i
  9. OLED_SCLK_Clr();
    ! M  R. R6 w  J
  10. Delay(1);
    6 ^; ]6 b! w7 S
  11. }
    1 m# p0 G1 r1 E7 X3 h  v( Z( G+ x
  12. ! H$ W( S: _" M" G
  13. void IIC_Stop()
    : u/ O+ U) P7 G8 D0 z8 @$ [
  14. {
    : s! r9 H: X) H/ `5 E& K- L* i
  15. OLED_SCLK_Set();" n; e5 T/ Q1 F
  16. Delay(1);
    ! g, W  Y2 y& ]/ X1 D
  17. OLED_SDIN_Clr();
    / b8 ?6 ?- s8 e
  18. Delay(1);0 W) J. z/ a9 G6 i: u# E4 B2 W
  19. OLED_SDIN_Set();
    1 A! V* G4 I6 y) F' K* h$ g! l
  20. Delay(1);& e' P1 m% f5 _4 d: S9 j
  21. }
    ! n2 [: ^: ^$ m7 m% o) C
  22. 0 T- y, T9 Z4 |$ d9 R/ L
  23. void IIC_Wait_Ack()
    & q' w' d+ B. z7 V3 I; O" y
  24. {9 K/ u0 L$ ^6 ?& f7 C+ o
  25. OLED_SCLK_Set();1 k' w" d9 o. ^& N
  26. Delay(1);
    3 s' U" h$ V6 |  E. F* \- \8 ]
  27. OLED_SCLK_Clr();
    * W( z" y) y# m) S. Q! f  t
  28. Delay(1);7 k; `( z8 x$ E" |! P
  29. }
复制代码
: Z8 W: E. n% A0 ^, d$ J6 e' R
实现下图显示效果的主程序为:
  1. int main(void)6 w+ F5 U: u3 r1 k; Z6 k7 \; \0 c
  2. {& {& q% I/ h2 A
  3. HAL_Init();( o( z% Z" p: Y1 s; O: O4 d% a
  4. SystemClock_Config();  R/ ^& v( g( J; m4 ]: m" l3 T
  5. GPIO_OLED_INIT();: J% k. V6 M5 v7 v
  6. OLED_Init();/ I3 h# ]8 P' d; N2 u" ]- w3 i- e
  7. OLED_Clear();
    1 G8 L0 C/ X6 W2 i6 `
  8. OLED_ShowString(10,2,"STM32G431",16);, _) l+ {$ e0 w( x( `
  9. OLED_ShowString(10,4,"OLED TEST",16);
      j- q2 ?6 Z& {" C- m& [* r
  10. OLED_ShowCHinese(79,2,9);( O4 p: d" X" m* y0 Z5 o! b  a
  11. OLED_ShowCHinese(95,2,10);) Q4 v# V# I' G( b% i( e
  12. OLED_ShowCHinese(111,2,11);4 P/ m3 G  E! h: p. o
  13. while (1);
    $ t( B9 c1 O" `6 i8 e1 j7 p8 l
  14. }
复制代码

9 Q9 L: t+ N( I
a.jpg

; `4 q# I  q) i% M9 w6 g* O$ D
OLED屏显示效果
! Y3 {7 `. e7 n/ n
9 e: @4 |0 ~4 j  J
收藏 评论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:316 T1 y3 b0 o0 x% g' W& I
赞!
( E& a% r* d+ h; f; B" Q* C
感谢支持!!!

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版