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

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- m' J! d( A' W2 g) p$ @3 b* I

2 J: [, \7 ~* n' Z+ A# c8 q3 {
STM32G431开发板的周边外设比较少,为了便于人际交互最先考虑的是为其配上一个显示屏,以利于信息的观察。
为了较少地占用系统资源,这里采用的是I2C接口的双色OLED屏,考虑到STM32G431开发板配有Arduino接口,就将OLED屏放到Arduino接口上来使用,从而能够不必连线就解决问题。
  R  `! Z) L4 b
OLED屏与MCU大的连接关系为:
SCL---PA5
SDA---PA6
) Y+ e2 C  s% y% j
控制相关引脚输出高低电平的语句定义为:
#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)

' U8 b; ^# M2 S( F
#defineOLED_SDIN_Clr()  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6,GPIO_PIN_RESET)

- y& [  }: I3 E( \
实现引脚输出功能配置的函数为:
  1. void GPIO_OLED_INIT(void)
    ' X' c, |- i5 n) d
  2. {
    . y  D7 y, G& n! }
  3. __HAL_RCC_GPIOA_CLK_ENABLE();
    % C0 g9 x, {. a- I1 K9 P
  4. GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;* z0 U$ ?) U% ^9 u* ?0 X0 B/ O% W
  5. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;! L; U; |0 u3 B/ e$ ?& U1 z+ I  k
  6. GPIO_InitStruct.Pin = GPIO_PIN_5;
    5 j3 B3 f  I1 i
  7. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);   
    8 r+ f* W2 `) O. O
  8. GPIO_InitStruct.Pin = GPIO_PIN_6;, K' |4 I$ Y# T& F
  9. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);+ m/ h# f6 q+ @& U$ i2 Y" M5 `
  10. }
复制代码
, u7 ?# v" f, ~: w2 c7 t
由于STM32G431的主频速度比较高,故直接移植程序代码是有问题的,需要添加相应的延时函数来辅助解决。
修改后的辅助显示函数为:
  1. void IIC_Start()' y- M% s1 g  A9 K
  2. {
    : O8 y( _, J, |# t# j/ _/ |
  3. OLED_SCLK_Set();
    5 ?, F+ Q7 s! E
  4. Delay(1);
    4 L0 [) E! k0 ~1 R. |2 `
  5. OLED_SDIN_Set();$ k: d9 |! Z- L9 G. \' M
  6. Delay(1);2 Y, T* Y$ J( O  U  x7 S$ r  M
  7. OLED_SDIN_Clr();
    2 }7 d. M" X, G9 x
  8. Delay(1);
    . D9 [! Y2 ^9 [9 r, V
  9. OLED_SCLK_Clr();7 Z7 {) K4 H" ~: X7 \. @/ l
  10. Delay(1);
    * ^& s2 L) S# c
  11. }/ C6 I2 S/ _5 f7 A
  12. 1 M1 l) K: o* u( A
  13. void IIC_Stop()
    : n* y. p: l3 G% `' r. D, v
  14. {$ y' u/ Q4 U& z
  15. OLED_SCLK_Set();$ K- N% T7 d" K# C" X' r
  16. Delay(1);, }7 g/ w0 k" J: s4 O6 V. Y/ {/ W
  17. OLED_SDIN_Clr();# G5 o( U2 [2 ]
  18. Delay(1);! Q- u8 q& W; D. V" B
  19. OLED_SDIN_Set();2 M/ w7 c4 g+ F
  20. Delay(1);, A" t" L; k( c; W. a: x- h9 t
  21. }
    ' N  b: W( C5 c) r4 z1 L! B6 Y

  22.   F. K- y. @! v. P  J. q
  23. void IIC_Wait_Ack()
    % F( U5 G2 Z% N% z3 L! h! W* y
  24. {
    0 W- i' Z! k  \% i: d
  25. OLED_SCLK_Set();" F$ M' r& @, b- X/ l
  26. Delay(1);
    ! z% u- z$ R' `5 Y
  27. OLED_SCLK_Clr();
    : o' `2 w* L6 w$ m. H
  28. Delay(1);
    4 c" j4 u6 t' G4 F( p$ m
  29. }
复制代码
+ k, N3 J# G9 I0 X
实现下图显示效果的主程序为:
  1. int main(void)
    ) P1 D  m1 \, }
  2. {6 A3 U6 W. U0 i7 v) y$ g6 Y
  3. HAL_Init();( J- ^( e3 e2 ^% Q4 A, g& A0 ^
  4. SystemClock_Config();
    / d7 ~. W  m/ N; b7 l- o
  5. GPIO_OLED_INIT();
    / ~7 d# K9 z7 n! U' |) P' D
  6. OLED_Init();
    6 E% n6 ]: W1 N  J
  7. OLED_Clear();
    5 V" E  ], n$ g7 Z0 B) N% `( X
  8. OLED_ShowString(10,2,"STM32G431",16);* L+ x. j. F# i& B$ k8 ^6 l
  9. OLED_ShowString(10,4,"OLED TEST",16);
    7 {2 w  E/ y0 v
  10. OLED_ShowCHinese(79,2,9);; F1 G: _$ j( v) }. c0 `0 [( }
  11. OLED_ShowCHinese(95,2,10);
    3 j# r) B& @3 W" I2 L6 R
  12. OLED_ShowCHinese(111,2,11);3 V+ A8 G5 B0 [5 H! G7 }3 G5 }
  13. while (1);
    & r' y- P# r& M3 l. \
  14. }
复制代码
" T7 n- s" W9 I5 p: {# ^' n& n
a.jpg
* Z8 K4 I5 ]! l  P+ B3 t
OLED屏显示效果
; s6 l1 e. [& B$ W/ X: d, i+ A
* l0 b# D* X1 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
5 O  Q" B0 }9 L$ y# c& v赞!
9 Y8 i# M0 O, M/ y9 C
感谢支持!!!

所属标签

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