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

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 引脚。
' l  O" P4 h6 K  n. D& D
! l9 B; x$ \* g5 m9 a3 k
STM32G431开发板的周边外设比较少,为了便于人际交互最先考虑的是为其配上一个显示屏,以利于信息的观察。
为了较少地占用系统资源,这里采用的是I2C接口的双色OLED屏,考虑到STM32G431开发板配有Arduino接口,就将OLED屏放到Arduino接口上来使用,从而能够不必连线就解决问题。
* v7 a7 X. B" I& g) ]) T$ W$ T  G+ B
OLED屏与MCU大的连接关系为:
SCL---PA5
SDA---PA6
8 ?3 z$ U( g% ?0 U. B
控制相关引脚输出高低电平的语句定义为:
#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 F- r, z( b: s
#defineOLED_SDIN_Clr()  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6,GPIO_PIN_RESET)

8 u- {8 I8 j# Z/ i, a% T
实现引脚输出功能配置的函数为:
  1. void GPIO_OLED_INIT(void)
    / {8 ~2 B* ~0 i
  2. {
    ! @: K9 s2 O8 h# e# B# W* Q5 f; a
  3. __HAL_RCC_GPIOA_CLK_ENABLE();5 S) H. }" ?  Q1 C1 x
  4. GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;4 h  |, F. f. y6 H1 T  ], M3 O
  5. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    + s* R" b4 s% K( g
  6. GPIO_InitStruct.Pin = GPIO_PIN_5;8 \5 c: H& E8 [
  7. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);   * h' a' z5 i; i; f; V" ?9 A/ l
  8. GPIO_InitStruct.Pin = GPIO_PIN_6;
    $ Q" q( i, ^/ y: P, e& W
  9. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
    , P9 e1 S$ s% h' f1 O  f) U
  10. }
复制代码

  X8 K3 A1 x1 ^) x0 s) ^" f8 ]: _
由于STM32G431的主频速度比较高,故直接移植程序代码是有问题的,需要添加相应的延时函数来辅助解决。
修改后的辅助显示函数为:
  1. void IIC_Start()6 R4 ^+ q0 X! X5 v" f
  2. {- H8 }$ W+ j0 |- X) f
  3. OLED_SCLK_Set();, w- ^8 K, O0 C4 _
  4. Delay(1);
    3 w( O5 c3 \, j
  5. OLED_SDIN_Set();
    5 Y" Z' j- E  v+ q1 ^
  6. Delay(1);
    2 e" e8 f% O3 x  N  f
  7. OLED_SDIN_Clr();
    ' F% C! U7 N2 L) h5 I$ g' j+ P
  8. Delay(1);
    & r) ^1 s' s% e. V5 _3 V
  9. OLED_SCLK_Clr();
    8 u/ V+ x* z/ k+ _/ y# e
  10. Delay(1);
    # }' x3 s5 j- I2 f1 ^
  11. }
    + M' a9 Z% e( ^! F  O
  12. % O, f& ?1 o  z+ N  h; `0 ^
  13. void IIC_Stop()
    / z' V  s( t0 q; f' u) j7 x1 y
  14. {! K: v" C* O# j3 A  o9 M; |
  15. OLED_SCLK_Set();1 n, I; c" r" d" U; p$ U8 }8 n
  16. Delay(1);
    % a% j+ @4 I  R) ~" Y; ?
  17. OLED_SDIN_Clr();% A' j6 E; l3 q
  18. Delay(1);
    ' V, A+ t0 ?9 I; f, D0 L
  19. OLED_SDIN_Set();
    4 g: P0 p  M* s" X
  20. Delay(1);
    7 f4 G2 }( i& a# r4 \' E0 W
  21. }
    - a$ K  c" H' b
  22. ! E% |7 Z# q6 k) b* X, U
  23. void IIC_Wait_Ack(); g* s/ Y9 Z3 o
  24. {& C' T3 C/ e$ u, s
  25. OLED_SCLK_Set();3 ^0 o' {9 |$ j1 |( Z9 j7 d
  26. Delay(1);
    9 O' i* F& J  @: U4 P+ K* r3 v4 _6 V
  27. OLED_SCLK_Clr();/ V$ x# h) F( p/ ?# b
  28. Delay(1);
    6 }# T, e4 Q. `! z- r0 R
  29. }
复制代码
% T) c) Q- f8 W& S  ]# C7 F7 n7 j+ c  X
实现下图显示效果的主程序为:
  1. int main(void)( A  u( @5 k+ j1 T) @
  2. {
    0 u' M8 g( o2 O, {" u6 S7 E
  3. HAL_Init();8 `+ D+ L' H  i- N0 w
  4. SystemClock_Config();5 K0 {% P' ^. r( l+ O. p
  5. GPIO_OLED_INIT();
    + I4 T0 S. g7 c% o# u, g' c
  6. OLED_Init();  ^0 F) T! @9 N4 _0 q3 z
  7. OLED_Clear();" H2 W; v1 t1 K+ p
  8. OLED_ShowString(10,2,"STM32G431",16);' K+ m: F0 o  t+ s- l, p
  9. OLED_ShowString(10,4,"OLED TEST",16);
      z4 |9 w7 u1 @+ x9 `
  10. OLED_ShowCHinese(79,2,9);
    3 Y  r6 G; l. U& ~
  11. OLED_ShowCHinese(95,2,10);$ ~2 ^9 N$ R* A( ?/ @& a% V
  12. OLED_ShowCHinese(111,2,11);
    2 X% X" G8 l, b- X  t
  13. while (1);1 K3 S" U+ ]. Y0 y5 }4 z+ V
  14. }
复制代码
% X1 u/ D, `; K3 F' h
a.jpg

2 {, G- Y, T/ ^5 s3 I( X) ?
OLED屏显示效果

, `- _' W+ H% k
) ^# D! g+ ?3 T$ E1 {1 P+ n
收藏 评论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
" N# @1 H3 e& ^9 G( V$ ~- |" K赞!
" {6 w0 @! ~. Y/ K' l2 m, u
感谢支持!!!

所属标签

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