
麻雀虽小,五脏俱全之【STM32F042 Nucleo32】评测' a- n. G# ~; [& p: R" L 3 s, U1 p- W: k; M; w" Y (续)STM32F042评测之:玩玩串口+GPIO2 \3 l2 s/ X) R9 w2 B+ |: P7 U " k c/ J2 `9 X' p4 [! V 晚上回到家,小睡一下觉得无聊,试试用 STM32F042来玩玩OLED,硬件平台当然是我们的Nucleo32主角了。* a7 N: H7 Q: v+ {4 {0 R OLED驱动方式有很多,而我手上的OLED接口均为SPI,SPI速度快,占用IO少,比IIC速度快许多,适合刷屏。 关于SPi,为了省时间,我么仍然用CubeMx软件生成。 首先,打开我们之前的工程。按照之前的步骤在Pin界面上配置外设,由于我们的OLED具有SPI加普通IO组成,* j( d4 k: S3 e; O, V1 y 所以,我们打开SPI,模式选用Transmit Only Master,因为OLED的SPI模式下是没法进行读取的,所以我们也不需要4 X* \( a3 U1 L: a0 b4 U: g# t 设置双工了,直接发送即可,另外,我们还得设置软件SPI_CS,OLED_REC, OLED_DC这3个控制IO,均设置为Output,8 C% L1 b* v2 i# n! {4 F 具体请看下图:9 {& k- ~: T4 X: }/ Y% s" X ![]() 然后,我们选中Configuration,并且双击SPI1,设置DataSize为8bit,First Bit为MSB First(高位在前),分频系数为4,即. H) S1 T* p+ P SPI时钟速度为12Mbit/s, Clock Polarity(CPOL)为Low,CLOCK Phase(CPHA)为1 Edge,具体请看下图:# E8 Z1 ~! a3 @" C8 g 然后点击Apply, OK。 ![]() 然后我们就可以生成工程了。$ B# Z- F& R8 q$ A4 L @) g U4 B 最后,我们把写好的OLED驱动文件加进工程,修改GPIO和OLED写数据命令函数即可结束: 关于详细修改,请看附件工程!( |5 z8 b2 S" ]6 J ![]() 最后,我们把OLED驱动起来看看效果:0 o2 x, b- m/ z6 e ![]() . V) @- Z; b$ m: @. z5 n& v 最后的最后,源代码工程附上:编译IDE:MDKV53 E, S6 y" d+ u: B 因为附件的OLED代码是完全由楼主自己想自己写出来的,所以可能写得比较难懂,没有其他的好看,所以喜欢的用自己的) A# K- e' o5 X. Z 驱动文件代替即可 ![]() |
7 |3 V- a. o- Z7 `
请问,前面的帖子 怎么找不到呀 ?