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

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# }6 [7 \2 p
4 @7 u& h3 E) y; T: y
STM32G431开发板的周边外设比较少,为了便于人际交互最先考虑的是为其配上一个显示屏,以利于信息的观察。
为了较少地占用系统资源,这里采用的是I2C接口的双色OLED屏,考虑到STM32G431开发板配有Arduino接口,就将OLED屏放到Arduino接口上来使用,从而能够不必连线就解决问题。

% w  Q* y# D. B8 Q, V
OLED屏与MCU大的连接关系为:
SCL---PA5
SDA---PA6

; c! f& Y3 K0 L9 [- O' c) 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 K6 u( v# [3 A: j
#defineOLED_SDIN_Clr()  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6,GPIO_PIN_RESET)

, k6 t) Q2 M  k3 j+ U3 n* S/ h! M$ n, p
实现引脚输出功能配置的函数为:
  1. void GPIO_OLED_INIT(void)9 Z4 |$ q: X+ q4 a
  2. {
    1 E& W0 ]+ C2 ]: e: g! Y
  3. __HAL_RCC_GPIOA_CLK_ENABLE();+ f- L" n( F5 y  N- e; ^4 I
  4. GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
    0 b) W  [) F/ k2 G8 q( P# L
  5. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;0 C  l# |$ P& V
  6. GPIO_InitStruct.Pin = GPIO_PIN_5;
    9 t1 B+ f5 b9 {5 [& m! U) ~" l; s8 N
  7. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);   " F& K0 X% d; i
  8. GPIO_InitStruct.Pin = GPIO_PIN_6;. \: ~7 Y. S6 ^( X
  9. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
    ; n% j4 d4 U+ D' K
  10. }
复制代码
! n7 F. B' k" [1 ]9 l- I. i
由于STM32G431的主频速度比较高,故直接移植程序代码是有问题的,需要添加相应的延时函数来辅助解决。
修改后的辅助显示函数为:
  1. void IIC_Start()
    " n) X3 G7 g( P: \6 W8 S- C2 n
  2. {) J, g5 C: W$ }% b; k+ O! r7 J  p9 `9 [
  3. OLED_SCLK_Set();
    5 F' ^8 `# u4 m5 e% a  m: x
  4. Delay(1);9 k+ y& j1 [6 c9 W, T: x9 p
  5. OLED_SDIN_Set();
    2 j9 B, _, y4 b) I
  6. Delay(1);+ q1 j9 `3 ]3 K4 S4 c
  7. OLED_SDIN_Clr();/ n: Y! N; A- s2 C6 u! U
  8. Delay(1);
    0 v6 |6 ?8 O$ \- l
  9. OLED_SCLK_Clr();. T( E2 g/ P! Y; p5 t
  10. Delay(1);5 Z6 d+ t& R( T2 v
  11. }
      M8 w1 |/ K2 P6 c" t
  12. 7 v' \0 Y7 C8 S; b& `  j( A2 z5 I
  13. void IIC_Stop()7 T6 l8 [* [9 A- q0 D
  14. {
    3 U+ _  }% a7 ?. h$ Z/ P% |4 g" r
  15. OLED_SCLK_Set();
    , T8 q! N$ I& P: |
  16. Delay(1);
    * w% ?9 u# U- j2 i. _/ Z
  17. OLED_SDIN_Clr();
    : ^) }  F% F8 j& H0 y
  18. Delay(1);
    . f: y+ I/ x1 u- c
  19. OLED_SDIN_Set();2 ^4 m8 N! D5 K) T5 @3 s  j0 x
  20. Delay(1);5 H( k0 p* C# f5 R. u0 n
  21. }* y- ~! _- ^- L' A1 c; ?
  22. 5 d9 t$ }; c5 C1 Z* `2 C
  23. void IIC_Wait_Ack()
    0 V  E/ v& c4 L- P
  24. {# X/ s4 h& _: m1 ?( T$ O# z& o$ S
  25. OLED_SCLK_Set();6 e/ u7 e5 @( A
  26. Delay(1);
    4 r) [1 ?6 U# J" ^+ K$ Z# T0 B
  27. OLED_SCLK_Clr();
    % e2 t9 s' N# r+ i* _$ Z- z
  28. Delay(1);
    7 a, y/ G6 S6 u  c8 r$ C# Q  v( S
  29. }
复制代码

$ H5 S$ e6 W) G
实现下图显示效果的主程序为:
  1. int main(void)
    2 D  f$ `0 e% W* A" E' k/ k
  2. {, a" y3 L. p: |1 @& ?) P9 W2 N7 h
  3. HAL_Init();
    5 h& H5 q7 c) t8 y
  4. SystemClock_Config();  Q6 g# N. K/ [- n8 n$ C
  5. GPIO_OLED_INIT();
    ) }- v7 v2 t6 G7 k3 U, C
  6. OLED_Init();* }! d' O) W: ~( K0 D; |
  7. OLED_Clear();
    ! `' P2 g' E$ I% b" ?
  8. OLED_ShowString(10,2,"STM32G431",16);: F  u5 M" P" K6 M. n
  9. OLED_ShowString(10,4,"OLED TEST",16);
    3 w5 d+ _  z' L0 M: c* w/ C
  10. OLED_ShowCHinese(79,2,9);: |8 T; Z6 d, g+ q
  11. OLED_ShowCHinese(95,2,10);  |; n; Y7 o' R4 e
  12. OLED_ShowCHinese(111,2,11);
    % `2 \1 Z+ j4 C! y6 }
  13. while (1);( G! h+ d& X2 [! c, ?( h$ L
  14. }
复制代码
( _, Z7 t$ d' y/ O+ |
a.jpg
3 z1 s' c3 q! W6 H7 F7 @: }+ F
OLED屏显示效果
4 u7 _% Y( B. T, Z: @% ^

! }" \/ Q/ D6 p2 y4 c1 w
收藏 评论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:318 H. y' Q) y9 X5 R; H2 M- R
赞!
. [2 q9 C: h) ^  O9 R
感谢支持!!!

所属标签

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