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

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

[复制链接]
Inc_brza 发布时间:2016-3-9 22:21
2 S1 q5 {# a+ J5 N4 Z' {. U$ Q' ~1 m
麻雀虽小,五脏俱全之【STM32F042 Nucleo32】评测/ l# J- \3 n5 R1 P
3 }- D8 A; h1 b5 Z4 ^0 z4 v
(续)STM32F042评测之:玩玩串口+GPIO, u5 ]0 ^2 m9 f' R% b, ~
! ^! ]+ n# N; X; A  N# @3 V

" F) H+ E  l8 K- ~- ?1 w! d  h! R     晚上回到家,小睡一下觉得无聊,试试用 STM32F042来玩玩OLED,硬件平台当然是我们的Nucleo32主角了。" S- K  m; o5 Y
OLED驱动方式有很多,而我手上的OLED接口均为SPI,SPI速度快,占用IO少,比IIC速度快许多,适合刷屏。
2 W( H1 q( [; N关于SPi,为了省时间,我么仍然用CubeMx软件生成。% D! Z+ \* U7 z5 C
8 a! I/ F% m& h/ {
首先,打开我们之前的工程。按照之前的步骤在Pin界面上配置外设,由于我们的OLED具有SPI加普通IO组成,
1 R+ T- B* U' A) @/ u4 m所以,我们打开SPI,模式选用Transmit Only Master,因为OLED的SPI模式下是没法进行读取的,所以我们也不需要  f' R1 H/ p8 m. e# c
设置双工了,直接发送即可,另外,我们还得设置软件SPI_CS,OLED_REC, OLED_DC这3个控制IO,均设置为Output,: o( b% D) n: N* f0 N) q
具体请看下图:
; `& L7 ]. y- U1 x2 a% V QQ截图20160309220703.png ( S, N) s- @6 @' s4 [" ]
然后,我们选中Configuration,并且双击SPI1,设置DataSize为8bit,First Bit为MSB First(高位在前),分频系数为4,即) q% M" P9 J& q8 E* G
SPI时钟速度为12Mbit/s, Clock Polarity(CPOL)为Low,CLOCK Phase(CPHA)为1 Edge,具体请看下图:
7 A5 [) e0 M" f, }' h然后点击Apply, OK。
5 ^; B& ]+ E& k, O QQ截图20160309221046.png 5 a  l- u: f$ `
然后我们就可以生成工程了。
! |) M9 D% @" p  ]" y: @$ v- f5 ]$ i; D5 A8 z
最后,我们把写好的OLED驱动文件加进工程,修改GPIO和OLED写数据命令函数即可结束:9 \$ I5 \) H  v& U) z# q
关于详细修改,请看附件工程!9 x2 R( n: R1 g% x
QQ截图20160309221410.png
  ]1 [( C: w7 s
6 E8 v. m  Y3 p最后,我们把OLED驱动起来看看效果:
/ E, D' y8 x( O2 ?+ ? QQ图片20160309221759.jpg % U0 {2 [! A7 j3 R
5 x$ k; [2 N2 l7 n! f$ @6 v% |
最后的最后,源代码工程附上:编译IDE:MDKV5% J& `# B& d' {
因为附件的OLED代码是完全由楼主自己想自己写出来的,所以可能写得比较难懂,没有其他的好看,所以喜欢的用自己的7 @9 m  h1 A$ j! L  X3 ?% v
驱动文件代替即可
6 M5 n) r' n- ]/ u 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 ”
8 @7 b0 v: H" H  v8 I
2 J7 ?* f, \4 W  i( A4 f请问,前面的帖子 怎么找不到呀 ?
2279769173 回答时间:2016-7-19 16:59:40
想问一下楼主 , 使用的keil的版本是多少。我安装的5.11不支持f042
2 N. j: x1 s, {4 F
狂奔的丶蜗牛 回答时间: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管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版