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

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 引脚。
  o0 ^+ [( k% v+ A

5 }. ]( I" L1 C
STM32G431开发板的周边外设比较少,为了便于人际交互最先考虑的是为其配上一个显示屏,以利于信息的观察。
为了较少地占用系统资源,这里采用的是I2C接口的双色OLED屏,考虑到STM32G431开发板配有Arduino接口,就将OLED屏放到Arduino接口上来使用,从而能够不必连线就解决问题。

0 @/ E$ O! Q& F9 R& ^8 F
OLED屏与MCU大的连接关系为:
SCL---PA5
SDA---PA6
/ F& r" R- J+ s. v
控制相关引脚输出高低电平的语句定义为:
#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)
  y" U& G  S& I
#defineOLED_SDIN_Clr()  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6,GPIO_PIN_RESET)

, T1 R# ?5 i' W/ T5 Z# u
实现引脚输出功能配置的函数为:
  1. void GPIO_OLED_INIT(void)  j; O: }% s# |( o& M
  2. {% t1 a& \2 j" S" D8 x5 s7 D
  3. __HAL_RCC_GPIOA_CLK_ENABLE();
      D3 \6 n6 m( u4 P& c0 \# {
  4. GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;) A" B) M, o% c( a! i& x6 d) s
  5. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;+ P2 M' f; k8 ^; G
  6. GPIO_InitStruct.Pin = GPIO_PIN_5;
    2 K! N7 B- Q9 g6 I, H
  7. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);   
    0 _; B$ ~+ i0 L3 K- W3 t& h
  8. GPIO_InitStruct.Pin = GPIO_PIN_6;
    " o2 c- `9 K' U; N% d" I
  9. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
    $ o4 X. I9 O# s( u6 X; o) e* c5 P; v
  10. }
复制代码
4 a8 N& C( w. \, f. G
由于STM32G431的主频速度比较高,故直接移植程序代码是有问题的,需要添加相应的延时函数来辅助解决。
修改后的辅助显示函数为:
  1. void IIC_Start()
    9 Q$ s! ]; g; @: Q' X
  2. {
    3 p" f- F3 n2 f, |. e
  3. OLED_SCLK_Set();3 u3 Y  x. u( ^2 q+ y6 y
  4. Delay(1);$ h. ?! w( O9 C3 g) \  Q- o# k
  5. OLED_SDIN_Set();+ G) b% S8 Y( r1 j
  6. Delay(1);# {9 u; S  ^5 @0 j3 A
  7. OLED_SDIN_Clr();4 v6 y$ Z" l3 `2 p& x# @
  8. Delay(1);1 l. D  f& ]) S, V1 J
  9. OLED_SCLK_Clr();
    8 D2 X) Q0 O, P( e
  10. Delay(1);: U. R6 U0 \$ D, N: T4 V8 r( e, e
  11. }6 l5 _  m( u+ F$ k! P" B$ P/ p

  12. 7 t) C: A3 c3 a1 H
  13. void IIC_Stop()' q$ p; f! h; V8 F) i
  14. {
      ], [4 w) U' N! K6 ^
  15. OLED_SCLK_Set();/ v3 n+ L; Y$ X7 n. R
  16. Delay(1);
      G2 L6 Z" s' C2 c; ~! k: t
  17. OLED_SDIN_Clr();; z7 [+ v0 w! Z. m
  18. Delay(1);
      K/ R# P8 F+ n4 b& X( K' N" F
  19. OLED_SDIN_Set();
    ' \+ t4 _0 }" ^# L& s. ]) B9 X
  20. Delay(1);- x, b% W) `" t1 D% B. Q
  21. }+ K4 y" X9 c- r& O

  22. 5 Y" E+ q8 S5 y" ?* F5 C) Q; m: u
  23. void IIC_Wait_Ack()
    # T# Z4 d8 ]/ ]- F& z
  24. {( n# @1 G' X3 V: j6 N
  25. OLED_SCLK_Set();
    8 K- D% U1 O/ i; S# k, w0 `5 a
  26. Delay(1);- V* ~1 K" f6 z  f- o4 ?. p
  27. OLED_SCLK_Clr();
    1 @8 r* V, x6 }4 X
  28. Delay(1);9 ?, L9 {: s7 X" Q
  29. }
复制代码

# n2 o6 }& b3 j  ?8 p7 y
实现下图显示效果的主程序为:
  1. int main(void)
    9 C* R9 W! B$ D3 c  B4 u- {
  2. {; Q0 q7 i0 J, E2 A4 h2 b, F; \) P% ]# w
  3. HAL_Init();
    5 Y) P, }& a9 O1 L
  4. SystemClock_Config();7 K" s% Q+ n9 o2 W* s; Y
  5. GPIO_OLED_INIT();# [) `+ z, P7 |, B
  6. OLED_Init();
    ( ^) u& X$ Q7 i, X# s( U9 Y: c1 X
  7. OLED_Clear();
    6 C5 `3 [" V$ ?5 X3 [, G
  8. OLED_ShowString(10,2,"STM32G431",16);" k/ }( A4 M" J" n; f
  9. OLED_ShowString(10,4,"OLED TEST",16);
    ) W1 W9 g8 G3 r( z# I* f
  10. OLED_ShowCHinese(79,2,9);! u, l$ m/ |/ g" o% s7 p7 s+ _
  11. OLED_ShowCHinese(95,2,10);
    # {: i6 k8 B! w3 a0 H
  12. OLED_ShowCHinese(111,2,11);6 _& U5 }5 N+ g! k4 d. K; X$ L, f
  13. while (1);2 [6 `. R7 e& P, S0 s. y
  14. }
复制代码

5 O' A. W) ~! d; t
a.jpg

+ ~' l1 d, @- j" x3 Z$ V
OLED屏显示效果
7 k8 B$ b' k0 t) R- h% D  h" b$ j
! a0 z) z! Q" o) @
收藏 评论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& j- @4 B# p5 M4 H9 [4 X/ q6 ]& F
赞!
" Y9 K* p# \4 {: ~5 r  I. ~" \
感谢支持!!!

所属标签

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