历史上的今天
今天是:2024年10月08日(星期二)
2018年10月08日 | STM32F103RCT6的SPI驱动OLED
2018-10-08 来源:eefocus
硬件条件:采用中景园电子0.96寸的OLED,7线分别如下:
VCC-------->电源
GND------->地
D0--------->SCK,连接SPI1的SCK,PA5
D1--------->MOSI,MCU作为主机输出,OLED作为从机接收,接PA7
RST-------->复位接口,很重要,PC0
DC--------->命令或者数据控制线,连接PC1
CS---------->PC2片选
以上是OLED和STM32103的接线,也可以采用其他的SPI接口,这里只要D0和D1保证和SPI接口对应上就可以了,其他的线都是自定义的,作为普通IO口输出就可以了。
正确配置以下接口就可以点亮OLED了:
1、SPI接口初始化:
SPI也是串口的一种,和USART配置差不多,初始化IO口复用以及IO和SPI时钟,如果需要中断,那么需要配置中断优先级、写中断函数等。
发送和接收和USART一样,都是先将数据发送/接收到一个DR缓冲中,然后等待发送/接收,利用判断SR寄存器的标志位来判断是否发送/接收。
2、OLED的读写和初始化操作。
OLED的初始化操作网上有很多,购买时,肯定都会把初始化的那些命令过程全部给出来,照着写出来就好。不过有一点,在初始化时,需要将RST先拉低,然后持续50ms,再拉高。
然后就是写命令和写数据操作了。写数据和写命令通过DC来定,高电平写数据,低电平写命令。注意这里 还需要拉低CS片选。然后通过SPI将数据写到DR缓冲中。这里还有一点,OLED只能作为从机,只能向OLED中写,不能读。
3、还有两点很重要,OLED的CPOL的极性,我用的中景园的是0,即空闲状态高电平,以及时钟相位,要在第一个跳变沿取样。
然后就是清屏操作,其实就是将各个像素点点亮。全部写0XFF就好了,这里注意的就是,读写坐标的命令写对了就行了。OLED的坐标,纵坐标是0-7,横坐标是0-127。
以上这些都配置正确了,那么就可以点亮OLED了,剩下的就是去做怎样显示字符等等了。我一直认为,屏这个外设,只要点亮了,那么剩下的就是动脑的问题了,只要写好了画点函数,那么点构成线,线构成面。就是这样的道理。
史海拾趣
|
大家好,现在情况是这样的,HID设备可以正常枚举并且Windows提示可以使用,我也基本知道了在 VC中如何访问HID设备,但是现在的问题是,CreateFile之后可以得到正确的句炳,并且HidD_GetAttributes,HidD_GetPreparsedData以及HidP_GetCaps都正确得 ...… 查看全部问答> |
|
wince高手们,小弟现在用的是华硕的626的一款pda,操作系统是windows mobile6.0,支持无线Wi-Fi; 小弟现有一个问题,我在程序中用什么函数能够自动启用无线功能?… 查看全部问答> |
|
二段式:状态切换用时序逻辑,次态输出和信号输出用组合逻辑。 三段式:状态切换用时序逻辑,次态输出用组合逻辑,信号输出用时序逻辑。信号输出的process中,case语句用next state做条件,可以解 ...… 查看全部问答> |




