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

(再续)STM32F042 Nucleo32评测之SPI驱动OLED

[复制链接]
Inc_brza 发布时间:2016-3-9 22:21

# j  h8 m: Q! [$ R5 E9 u) F  u6 N麻雀虽小,五脏俱全之【STM32F042 Nucleo32】评测+ \& I; ]/ c- W9 W2 m4 A

7 P" @$ b* J8 N$ V7 B( f! |7 p(续)STM32F042评测之:玩玩串口+GPIO
9 N" d$ i" G: O5 h0 X/ M* B; o
8 m( i# x  s& P. a1 `2 _& R
' x; E& O* l9 P  v9 \9 `' ?" e     晚上回到家,小睡一下觉得无聊,试试用 STM32F042来玩玩OLED,硬件平台当然是我们的Nucleo32主角了。3 {% ]2 g8 B: p
OLED驱动方式有很多,而我手上的OLED接口均为SPI,SPI速度快,占用IO少,比IIC速度快许多,适合刷屏。: N* Y  z; {0 a  p% h& D1 U
关于SPi,为了省时间,我么仍然用CubeMx软件生成。+ W5 G& I5 u6 q$ o* R- I' Q

5 x8 x+ h/ A3 v6 j* G5 U$ Z5 j首先,打开我们之前的工程。按照之前的步骤在Pin界面上配置外设,由于我们的OLED具有SPI加普通IO组成,  e* q1 e5 u/ d
所以,我们打开SPI,模式选用Transmit Only Master,因为OLED的SPI模式下是没法进行读取的,所以我们也不需要
" G  u+ C$ A0 [# o1 q设置双工了,直接发送即可,另外,我们还得设置软件SPI_CS,OLED_REC, OLED_DC这3个控制IO,均设置为Output,0 [0 t5 a, G" X  y
具体请看下图:
7 P- j  n. _) t2 Z. e QQ截图20160309220703.png 8 Q2 p6 m  k( j0 N
然后,我们选中Configuration,并且双击SPI1,设置DataSize为8bit,First Bit为MSB First(高位在前),分频系数为4,即# B6 y+ v5 a" y, ~% L) e
SPI时钟速度为12Mbit/s, Clock Polarity(CPOL)为Low,CLOCK Phase(CPHA)为1 Edge,具体请看下图:
' c: _5 c9 |/ z7 Y7 o然后点击Apply, OK。
6 \1 y1 v/ Q/ U1 t: _ QQ截图20160309221046.png
! Z( Y8 u% I( ]8 y5 H  a0 T然后我们就可以生成工程了。' ^+ C0 k# V9 Y, P( }: K

/ ]6 f* ~  g( }最后,我们把写好的OLED驱动文件加进工程,修改GPIO和OLED写数据命令函数即可结束:
- V) ?, s. M2 O) B关于详细修改,请看附件工程!& d3 J5 T' K& c3 S. t, N2 C
QQ截图20160309221410.png
' @( j! d& t1 c2 E  @$ I
  f3 v2 \$ ]! ?! r( a6 a7 f最后,我们把OLED驱动起来看看效果:0 N6 G3 B# |3 N8 ?- Y. D$ P' H
QQ图片20160309221759.jpg
2 v3 X. K6 {1 C5 c# P: C
; R: s3 T+ T; a6 L, t% L( I3 ~最后的最后,源代码工程附上:编译IDE:MDKV5+ l6 Q6 o0 n8 }: r. c, c( I( S
因为附件的OLED代码是完全由楼主自己想自己写出来的,所以可能写得比较难懂,没有其他的好看,所以喜欢的用自己的
6 i, r  a6 w4 s7 p: p# k  B$ @6 {驱动文件代替即可; `) {2 r' S4 G0 R5 J1 b
Demo.rar (833.68 KB, 下载次数: 288)
1 收藏 3 评论17 发布时间:2016-3-9 22:21

举报

17个回答
myfocus-2048857 回答时间:2016-9-29 10:54:35
“ (再续)STM32F042 Nucleo32评测之SPI驱动OLED ”+ G4 J; M& T3 J! M9 W, {
; w4 j1 }# {) {1 P( M& J
请问,前面的帖子 怎么找不到呀 ?
2279769173 回答时间:2016-7-19 16:59:40
想问一下楼主 , 使用的keil的版本是多少。我安装的5.11不支持f042
3 i- y4 M0 O+ y5 l2 R/ l9 {
狂奔的丶蜗牛 回答时间:2018-7-17 15:25:30
OLED点不亮啊 例程里没有用到SPI的引脚啊 用的E5 B0通讯的呀
Paderboy 回答时间:2016-3-10 07:18:11
不错不错。。
那就地方 回答时间:2016-3-10 10:52:21
谢谢楼主分享
肽宰1 回答时间:2016-3-10 18:13:47
谢谢楼主分享
沐紫 回答时间:2016-3-11 10:30:50
不错哦,谢谢楼主分享
yanhaijian 回答时间:2016-3-11 10:38:09
做的不错。
紫嫣0302 回答时间:2016-6-1 14:54:57
不错哦
2279769173 回答时间:2016-7-19 20:53:13
已经知道了 , 5.14可以
pythonworld 回答时间:2016-7-25 12:41:06
楼主有bin文件吗?能分享一下,正好测测oled屏。谢谢!
MSP 回答时间:2016-8-1 17:26:38
谢谢楼主分享
lisingch 回答时间:2016-8-1 19:06:44
谢谢楼主分享!
gtembeded 回答时间:2016-8-6 00:00:12
还需要两个积分
寂寞,点燃一支烟 回答时间:2017-6-2 16:02:11
赞赞赞
12下一页

所属标签

相似分享

官网相关资源

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