
麻雀虽小,五脏俱全之【STM32F042 Nucleo32】评测+ \& I; ]/ c- W9 W2 m4 A (续)STM32F042评测之:玩玩串口+GPIO 晚上回到家,小睡一下觉得无聊,试试用 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 首先,打开我们之前的工程。按照之前的步骤在Pin界面上配置外设,由于我们的OLED具有SPI加普通IO组成, e* q1 e5 u/ d 所以,我们打开SPI,模式选用Transmit Only Master,因为OLED的SPI模式下是没法进行读取的,所以我们也不需要 设置双工了,直接发送即可,另外,我们还得设置软件SPI_CS,OLED_REC, OLED_DC这3个控制IO,均设置为Output,0 [0 t5 a, G" X y 具体请看下图: ![]() 然后,我们选中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,具体请看下图: 然后点击Apply, OK。 ![]() 然后我们就可以生成工程了。' ^+ C0 k# V9 Y, P( }: K 最后,我们把写好的OLED驱动文件加进工程,修改GPIO和OLED写数据命令函数即可结束: 关于详细修改,请看附件工程!& d3 J5 T' K& c3 S. t, N2 C ![]() 最后,我们把OLED驱动起来看看效果:0 N6 G3 B# |3 N8 ?- Y. D$ P' H ![]() 最后的最后,源代码工程附上:编译IDE:MDKV5+ l6 Q6 o0 n8 }: r. c, c( I( S 因为附件的OLED代码是完全由楼主自己想自己写出来的,所以可能写得比较难懂,没有其他的好看,所以喜欢的用自己的 驱动文件代替即可; `) {2 r' S4 G0 R5 J1 b ![]() |
; w4 j1 }# {) {1 P( M& J
请问,前面的帖子 怎么找不到呀 ?