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

基于STM32的OLED显示屏经验分享

[复制链接]
攻城狮Melo 发布时间:2023-3-21 18:14
简介
! s- X, g, U6 N3 _OLED主要涉及SPI协议/IIC协议,汉字点阵编码原理等知识,在这里且先不谈,这个系列主要讲运用,尽量减少文本的书写。本文利用STM32RCT6操作七针OLED显示屏,工程代码会分享出来,可以自行修改。主要是掌握运用,怎么修改代码能显示自己设置的内容,怎么移植到其他同系列芯片上面。至于模块原理,可以查看相关资料,或者上网查资料,因为写原理方面的文章进度较慢,也不适合零基础的人,所以先写运用系列,再写原理系列。
) S& O4 s0 _  s0 }7 t
: u# c  i& I" j4 C8 \2 E3 P, c由于时间有限,这里先直接利用代码在单片机上面测试,注意显示的内容与函数调用的关系,要知道为什么会这样,如果要修改显示的内容,怎么去修改。; q. R) p% s" P* \

- a5 E% K3 d* E% V! S! g
$ o) J2 e3 O- L. K. Y  m) E4 E. }
1.代码测试" C' ^8 P7 Z7 K3 F# P6 \% ~9 `
硬件环境:(STM32RCT6 + 七针0.96寸OLED显示屏): |, Q9 @, G1 U) B2 F2 K, c! D; s' X* X  T, i
STM32与OLED连线" {  r1 q, \% e

! C3 v9 S$ ?4 r8 v7 ?: X# ^
38d68e1438094a8b9f757d24fe3d00c0.png
- P  O2 P7 l! L, ~1 b- S2 [$ t2 b0 x! f
主函数代码
' k; O3 g6 {! o" r) @* \/ m- H3 F8 m  J0 J6 s4 y# D) w- t* s# N
9a39971433954180922f00a4ea3ea115.png
, ?! b5 I7 a+ c/ q& q8 D% `6 V
/ S0 \5 H) t1 ?! s- N8 e) q

% A  i3 v- f2 Q( @: l' h+ V实物测试图
# o) r: d' Y, Q) S) ^) F  g
3a4a778550ef47828f6fc38856d1e83f.png 1 M& E( X! |. j, @* f
0 h: S& T9 c" K3 [6 _& H
如果能成功显示出来,说明软件硬件环境没问题,接下来是修改显示内容。
: B5 d5 C% z+ v; d! n
' I0 J  D: K( o  O' D2 @- |( d
$ h8 \- P3 p; z; l
2.修改显示内容
* U5 k) W/ n5 f在工程中进入oledfont.h头文件,找到SHOW二维数组。通过实物图显示的内容来看,每个汉字都是许多的十六进制组合成的,那么如何得到每个汉字的模,这就需要取模工具。/ S0 [" H# Y7 N9 g" ]% ~- k

, e8 }' x% e8 L3 U7 E
显示汉字程序
* |* o0 `3 _' V" L( z0 K  t7 B, g. w$ Y- O! x% Q/ t
2a93ae40e2674996802f4075a421d499.png 4 b% T% b- }* k) i3 s

0 a$ U( i& `1 d6 u. ?! Y: N取模工具操作图7 }0 U2 ?, y; O7 j

" v) u& p0 e4 X2 E. w
89be776646ea4e0e8241bae17a798a2c.png
6 e  f9 U6 [/ |

5 X5 G$ O+ y. h, j7 m% r取模工具主要操作就行在指定的地方输入自己想要显示的汉字,图中是无人机协会,然后生成字模,得到下面的字模,将下面的字模内容复制到oledfont.h头文件中的SHOW二维数组中,效果如图显示汉字程序所示。
+ e0 N, ~. N/ K4 _OLED_ShowCHinese函数功能如图主函数所示。
5 F- T( R% B  k
6 z+ L# H6 b2 w( a: r3 K$ L, \
第一个参数代表汉字的纵坐标,! D9 }& o. R* W' k4 X3 @  L  S
第二个参数代表汉字的横坐标,
! S. X% ]+ C& [: f8 u第三个参数代表具体的汉字,由SHOW二维数组得来。
1 Z8 y: d; @  P4 w+ F- |+ F
- E. U6 ?  \  L) I% _) D
95655f04ec1b4650839de1f96f77c13a.png
; E8 E2 ~. D& c/ ]: m
. `  v% w& B( K, z, Z* c& X
4 o' O7 O" z9 u8 G( f' i
在程序中调用这个函数传入相应的参数,然后就可以在指定的地方显示指定显示的汉字,可以自己修改参数,调整汉字显示得位置。
, Y4 }# `, m( J6 H% N- ?8 ~7 s- J% ~4 ]0 n0 \, b) u( H4 h! o, i% Z( X) e
3.显示字符串
% N8 s7 e5 z7 r% v! Q
6 |  Y$ T+ O6 U# h. p& w
0e931185735544f38557b6289ffdf895.png
- V5 l. [0 v& i+ U5 c5 ~0 V* B4 b( P5 j5 k5 n
显示字符串函数主要是显示数字、字母和其他符号。显示汉字的步骤比较多,显示字符串比较方便,直接调用OLED_ShowString函数就行。如图2-4所示,前面两个参数代表字符串的位置,最后一个参数代表显示的字符串。: {. h8 b" ]8 h
! C0 Y( [5 O6 n, z& J1 N7 s% c5 \

$ a5 t2 \2 t. y% V$ {9 p  e/ D4、总结:
+ x. Q) k, S' C/ [/ L7 S根据代码修改难度不大,先掌握OLED的运用,然后再渐渐去了解原理。因为IIC协议和SPI协议在嵌入式中非常重要,可以先用实物测试,分析代码,通过现象去分析原理。/ d6 D- U/ G% s5 p8 `
————————————————
; E' C* _. D- b版权声明:嵌入式开发体系6 f( N  g  A+ |9 m
如有侵权请联系删除
1 P+ T4 }, ~. p8 a7 ?. K. x- h8 j8 r3 @: {$ m$ C9 j5 M# B
收藏 评论3 发布时间:2023-3-21 18:14

举报

3个回答
STMWoodData 回答时间:2023-8-10 10:12:37

学习一下OLED显示

shenxiaolin_mai 回答时间:2023-8-10 10:17:45
感谢分享,操作步骤很详细!
lospring 回答时间:2023-8-10 10:18:23

好用,软件也应该分享一下

所属标签

相似分享

官网相关资源

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