中景园屏幕介绍

就是最普通的OLED显示屏,没有啥特殊的,0.96和1.3寸的屏幕都拥有128X64的分辨率,代码相互兼容,仅仅在尺寸和PPI上有一定的区别
用这家的OLED只是因为这家现在能发货,而且开发板能代焊排针

移植过程

代码分析

中景园所提供的库文件是基于软件定义的SPI协议,这种实现方式在性能上有一定的损失,但是可以带来较好的兼容性.后续会尝试利用32自带的SPI硬件部分进行通信.
中景园所提供的库文件主要基于标准库,与HAL库相比,没啥太大的缺点(个人认为),表面上来看就是封装方式上有一定的区别.因此需要进行一定的移植和配置.

IO控制函数

由于基于标准库的IO控制语句为:

GPIO_ResetBits(GPIOA,GPIO_Pin_15)
GPIO_SetBits(GPIOA,GPIO_Pin_15)

而在HAL库当中,这些语句被统一为:

HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_RESET)

主要有以下几点需要注意

  • GPIO_Pin_x需要更改为GPIO_PIN_x
  • ResetBits和SetBits被函数的参量GPIO_PIN_RESET和GPIO_PIN_SET所代替,其中,reset为置零(LOW),set为置一(HIGH).

    延时控制函数

    那么换用HAL库的另外一点就是,本身中景园采用的是自己编写的delay.h库文件,没有经过测试,但是并不能够保证这是一个与MCU主频无关的延时库.

    delay_ms();

    修改为

    HAL_Delay();

    就可以实现延时的转换,其中下面的延时函数是由HAL库提供的延时函数,单位为ms

    IO配置函数

    在中景园的实现当中,使用了自行配置引脚的配置方法,但是在使用了CubeIDE之后,我们可以很方便的使用CubeMX进行配置,这种图形化的配置方式显然比全代码的控制方式简单的多了.
    需要做的是屏蔽所有的IO配置函数语句,之后使用CubeMX进行相应的配置.

    CubeIDE的配置方式

    将所有的.h文件放到Inc目录下,将.c文件放到Src目录下.之后使用

    #include "OLED.h"

    同时屏蔽所有的

    #include "sys.h"

    同时在OLED.h当中引用

    #include "main.h"

    至此OLED移植完成,可以进行使用.

最后修改日期:2021年12月6日