请选择 进入手机版 | 继续访问电脑版

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

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 引脚。

% e% j% w$ M- @- B1 F3 p( ^, h8 A) J) x
STM32G431开发板的周边外设比较少,为了便于人际交互最先考虑的是为其配上一个显示屏,以利于信息的观察。
为了较少地占用系统资源,这里采用的是I2C接口的双色OLED屏,考虑到STM32G431开发板配有Arduino接口,就将OLED屏放到Arduino接口上来使用,从而能够不必连线就解决问题。
& V3 F3 z* a2 u5 @
OLED屏与MCU大的连接关系为:
SCL---PA5
SDA---PA6
0 L5 W0 B& _+ h- A& A
控制相关引脚输出高低电平的语句定义为:
#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)
1 B) X5 t- R) F
#defineOLED_SDIN_Clr()  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6,GPIO_PIN_RESET)

! ]3 r, F$ s3 p7 U$ t' R5 f
实现引脚输出功能配置的函数为:
  1. void GPIO_OLED_INIT(void): \/ E( a3 A- j. H0 y! ?9 U# \5 W# w( J
  2. {+ o7 t% U7 R/ t4 ^7 ]9 S7 z
  3. __HAL_RCC_GPIOA_CLK_ENABLE();
    * F& p% o* \/ _& k5 G
  4. GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
    0 d. J  h* }, i# d3 n- U
  5. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;$ U1 V, o% A- a$ s  u  z
  6. GPIO_InitStruct.Pin = GPIO_PIN_5;( s* {! i( T0 q3 f( i7 J' f+ E
  7. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);   
    0 T! p) b, I/ |1 Q9 n) c0 L1 }
  8. GPIO_InitStruct.Pin = GPIO_PIN_6;
    4 I! N7 c6 x2 l8 [) `3 J5 w9 e
  9. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);% D. M' j8 x) Q4 z$ y
  10. }
复制代码

! e% w9 {) D  M% Q9 R  w
由于STM32G431的主频速度比较高,故直接移植程序代码是有问题的,需要添加相应的延时函数来辅助解决。
修改后的辅助显示函数为:
  1. void IIC_Start()! B& S0 q) ]2 r+ A4 C& P
  2. {/ J6 o0 G6 Y: q. d% p$ A6 I
  3. OLED_SCLK_Set();# ]9 H& y/ K2 k- u& Z
  4. Delay(1);
    + H7 Z# V" _  r- S
  5. OLED_SDIN_Set();
    2 e( K0 X, |+ ^4 X% `4 d
  6. Delay(1);) Y! |* u7 B+ d+ v6 B! Y6 X
  7. OLED_SDIN_Clr();8 e" V& H# N6 m8 o  y! k5 `* r" d
  8. Delay(1);
    * ^( V+ k' S4 y( z: s/ N) ~
  9. OLED_SCLK_Clr();6 W! Q% C6 L1 L- e/ K" L( c6 Q% ~& z
  10. Delay(1);  C0 q1 U( o) [1 c
  11. }
    4 [/ Q# `5 e4 a! e& @8 O
  12. 2 h6 G' ?: T8 W
  13. void IIC_Stop()
    / D$ Z" Y! W; C7 s/ M3 Y1 F
  14. {
    6 Q0 D. j% L: S3 {
  15. OLED_SCLK_Set();+ e- ^3 l7 Z( c( O( k9 h1 w
  16. Delay(1);; L3 ~9 a2 H9 E, ]& ^0 |9 t$ @/ u
  17. OLED_SDIN_Clr();
    5 h, ?" }* {* v, V  j1 S
  18. Delay(1);
    $ U/ P" ^+ {3 l. P1 Y) d. @
  19. OLED_SDIN_Set();
    * [6 G5 {  q# j+ O! L$ V' j
  20. Delay(1);- g: O8 }) r  @  ?8 N/ `
  21. }) ]9 o! i; V# q
  22. 0 R( P- [1 ?- i/ ^! E( U
  23. void IIC_Wait_Ack()$ J: `  n. M5 s3 w3 z: V; ]7 [( ^
  24. {$ M/ C* [+ A9 M4 @, z  S6 o6 |
  25. OLED_SCLK_Set();, e5 W& S' q5 Y2 N" U1 S9 C
  26. Delay(1);
    / s& m2 m. z! p4 T( V
  27. OLED_SCLK_Clr();
    / V1 D9 f3 J1 ~) \. q7 O7 F3 p
  28. Delay(1);
    ! ^8 R3 N5 M' {) ]
  29. }
复制代码
# W, y5 ?3 a5 Z' H
实现下图显示效果的主程序为:
  1. int main(void)
    2 |* z; d' [* ]1 q0 Q
  2. {, m5 b& r3 u; N) l" p2 s( L
  3. HAL_Init();8 c/ K$ w( p9 o2 J* L9 M( u
  4. SystemClock_Config();: g% X1 f* \2 X3 t6 J* w1 Q; F! }: o( q
  5. GPIO_OLED_INIT();
    5 K" ]& {9 _$ l4 W' X$ k5 b# d2 B
  6. OLED_Init();
      _8 I! b3 d8 t
  7. OLED_Clear();' X) ?9 I$ i- M" w- u8 ~
  8. OLED_ShowString(10,2,"STM32G431",16);: T4 b" Q" L& F7 i  @7 _& k/ w2 P
  9. OLED_ShowString(10,4,"OLED TEST",16);
    # V2 f! P7 n/ h9 e
  10. OLED_ShowCHinese(79,2,9);
    - [8 m# O7 e; ?; o: ~& e: r
  11. OLED_ShowCHinese(95,2,10);% N. D4 ^1 `5 t* l2 ~6 d
  12. OLED_ShowCHinese(111,2,11);+ d: j* a- P1 Q, {; t6 z4 _
  13. while (1);! J+ M) L* E; h% {
  14. }
复制代码

, v# L, l6 W/ f( J
a.jpg
5 I. v& P  e8 q; |1 K
OLED屏显示效果

; |; N) H/ [7 L: |* h9 b8 B) [
% P1 L( p6 K- R! X8 H
收藏 评论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:313 `' W9 U. D3 p$ f: T& ?
赞!

+ W) ^9 S* T4 K$ u2 p感谢支持!!!

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版