stm32模块系列(2)——4针0.96寸OLED模块

系列文章目录

第一章 DHT11温湿度模块

第二张 4针0.96寸OLED模块



前言

        使用的软件是Clion和STM32CubeMX,你需要购置一块4针的0.96寸OLED屏幕一块。


一、4针0.96寸OLED

        某宝上4针0.96寸OLED如下图

图 1-1

        10元以内拿下,选择4针是因为占用引脚少,使用的是较为简单的IIc协议

二、使用步骤

1.创建工程

1)选择芯片并设置调试方式为SW

图2-1

2)设置高速时钟为外部晶振

图2-2

3)设置时钟树

图2-3

4)配置OLED引脚(此处用的A1 A2)

图2-4

5)生成工程

2.移植OLED驱动代码

 1.在工程目录下新建文件Hardware

图2-5

2.将OLED文件复制Harware文件里,此时工程目录如下

下载OLED文件

OLED文件下载链接(百度网盘)

图2-6

3.在CMakeLists.txt中添加Hardware

图2-7

图2-8

        然后鼠标右击工程中的CMakeLists.txt文件,点击Reload CMake Project

3.main函数中添加代码

        在main.c中引用OLED头文件后,在主函数添加如下代码

图2-9

代码a

//code_01
int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  /* USER CODE BEGIN 2 */
  OLED_Init();                 //OLED初始化
  OLED_ColorTurn(0);         //0正常显示 1 反色显示
  OLED_DisplayTurn(0);       //0正常显示 1 屏幕翻转显示
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
      OLED_ShowString(15,0,"succeed",24,1); //显示字符
      OLED_Refresh();           //刷新OLED
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

4.修改OLED连接MCU引脚

        在olediic.h中有4个宏,定义了MCU连接OLED模块的引脚,如下图

图2-10

        通过修改替换内容即可更改OLED模块连接MCU的引脚。


总结

        总的来说比较简单,主要是移植的过程,只要移植成功,一般是没有问题的。

### STM32CubeMX OLED 显示屏配置与使用 #### 一、准备工作 为了成功配置并驱动OLED显示屏,需准备必要的硬件和软件环境。确保拥有支持SPI或IIC接口的STM32开发板以及相应的0.96OLED显示屏模块。 #### 二、STM32CubeMX配置 在STM32CubeMX中完成基本设置之后,OLED屏幕的操作主要包括外设的选择与初始化参数设定: - **选择通信协议**:依据所使用的OLED型号决定采用SPI还是IIC作为传输方式[^1]。 对于本案例中的0.96OLED屏来说,既可以选择通过硬件SPI来提高数据传输速率,也可以选用更简单的两线制IIC接口进行控制[^2]。 - **GPIO引脚分配**:按照实际电路连接情况,在Pinout & Configuration页面指定用于SPI/IIC通讯的具体管脚,并开启对应的时钟源。 - **启用DMA(可选)**:如果希望进一步优化性能,则可以在Advanced Settings里打开Direct Memory Access功能以便于批量发送图像数据给显示器缓冲区。 ```c // 在stm32_hal_conf.h文件内取消注释下面这行以激活DMA特性 #define HAL_DMA_MODULE_ENABLED ``` #### 三、代码编写 接下来就是向项目添加自定义函数库来进行具体的显示操作了。通常情况下会涉及到以下几个部分: ##### oled.h 和 oled.c 文件 这两个文件包含了所有关于OLED的基本命令集及其解释器逻辑。例如初始化序列、清屏指令等都应在此处实现。 ##### oledfont.h 及 oledfont.c 文件 负责处理字体渲染工作,提供字符映射表供上层调用打印字符串等功能。 最后还需要调整`main.c`里的部分内容使其能够正确加载上述组件并执行预期的任务流程。 ```c #include "oled.h" int main(void){ /* 初始化全局变量 */ MX_GPIO_Init(); MX_SPI1_Init(); // 或者是 I2C /* 进一步初始化其他资源... */ /* 开始绘制界面 */ OLEDDisplayInit(); while (1){ // 主循环体... } } ``` 以上即为基于STM32CubeMX平台下对OLED显示屏的一般性配置过程概述。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值