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

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

[复制链接]
Inc_brza 发布时间:2016-3-9 22:21
+ ^- {2 ^% O9 D" L
麻雀虽小,五脏俱全之【STM32F042 Nucleo32】评测# g" u0 d! m! J9 d5 D
, b" N. I* x4 ~' t4 U9 G
(续)STM32F042评测之:玩玩串口+GPIO
' S# A" e% y9 e0 s9 C7 T8 z+ c( G3 M: v4 c& B/ G6 ^

# N( r4 v% o% N* ^$ P1 z$ U     晚上回到家,小睡一下觉得无聊,试试用 STM32F042来玩玩OLED,硬件平台当然是我们的Nucleo32主角了。# Q! k: g2 ~# z; c
OLED驱动方式有很多,而我手上的OLED接口均为SPI,SPI速度快,占用IO少,比IIC速度快许多,适合刷屏。
1 v  u0 Q8 g5 e) w+ _关于SPi,为了省时间,我么仍然用CubeMx软件生成。
$ ?# P$ n5 `% [" u5 U; n. Z; b0 w% [( g" O% p$ ^7 G; n
首先,打开我们之前的工程。按照之前的步骤在Pin界面上配置外设,由于我们的OLED具有SPI加普通IO组成,
& |* \: x" q. E% c所以,我们打开SPI,模式选用Transmit Only Master,因为OLED的SPI模式下是没法进行读取的,所以我们也不需要! i9 y, y( O# @% G8 \) b  H
设置双工了,直接发送即可,另外,我们还得设置软件SPI_CS,OLED_REC, OLED_DC这3个控制IO,均设置为Output,8 M! N, b! j. S! V( ~) D
具体请看下图:( f9 n- z: J* ^& @( M
QQ截图20160309220703.png
+ y) h. w! w: c" x/ l然后,我们选中Configuration,并且双击SPI1,设置DataSize为8bit,First Bit为MSB First(高位在前),分频系数为4,即# V/ c# ]& }2 x# ^
SPI时钟速度为12Mbit/s, Clock Polarity(CPOL)为Low,CLOCK Phase(CPHA)为1 Edge,具体请看下图:* A' o7 I, S- [8 u
然后点击Apply, OK。
6 F" _1 E! ]" j; L" R- H, P3 {& [ QQ截图20160309221046.png # }' f1 v6 G/ y' }
然后我们就可以生成工程了。
& `: b# z! t, u- z; C" Z' H/ u8 g, w$ _& x9 v, e( e6 s6 Y  l& S
最后,我们把写好的OLED驱动文件加进工程,修改GPIO和OLED写数据命令函数即可结束:* ~- s+ [/ j/ ^4 S# S& V
关于详细修改,请看附件工程!
9 a6 b5 G8 x* z QQ截图20160309221410.png 1 J; L* f' o9 u3 j/ F2 n1 j% V; _+ q

: Q6 a( W+ ~7 ~: Q$ N( C最后,我们把OLED驱动起来看看效果:) l$ J7 m$ z; \7 w; P! h
QQ图片20160309221759.jpg . K+ y2 p' W2 J7 M* a

3 J- w8 w( L! h0 V最后的最后,源代码工程附上:编译IDE:MDKV5
; `# c, |- n8 G, [; t因为附件的OLED代码是完全由楼主自己想自己写出来的,所以可能写得比较难懂,没有其他的好看,所以喜欢的用自己的4 r8 c5 K# C' @) c
驱动文件代替即可
. e# c9 M2 p" _4 x 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 ”. s/ _# R9 Q5 z9 J( d, G: V; }! K

9 v8 W- i- U- O请问,前面的帖子 怎么找不到呀 ?
2279769173 回答时间:2016-7-19 16:59:40
想问一下楼主 , 使用的keil的版本是多少。我安装的5.11不支持f042
- f6 R# T( r9 D# u/ c1 o4 B9 q
狂奔的丶蜗牛 回答时间: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 手机版