天天看点

STM32F407_OLED

STM32F407_OLED
STM32F407_OLED

一、硬件概述

1.1、硬件组成:STM32F407ZGT6+OLED显示屏;

1.2、管脚接线对应关系表

MCU管脚 OLED管脚 备注
3.3V VCC 电源
GND GND 接地
PA1 DC 数据/命令
PA2 RES 复位
PA3 CS 片选
PA5 D0 时钟线
PA7 D1 数据线

二、工程建立及OLED驱动移植

2.1、工程建立

2.1.1、本工程使用CubeMX V4.25.0进行创建;

MCU管脚定义如下图所示:

STM32F407_OLED

2.1.2、时钟配置如下图所示:

STM32F407_OLED

2.1.3、工程设置及生成工程

STM32F407_OLED
STM32F407_OLED

2.2、驱动添加

2.2.1、将OLED驱动拷贝至工程当中;

在生成的工程中添加OLED文件夹,如下图所示:

STM32F407_OLED

OLED文件夹包括内容如下图所示:

STM32F407_OLED

2.2.2、使用Keil V5.24打开工程,在工程中添加OLED分组,并添加驱动文件;

STM32F407_OLED

添加头文件路径:

STM32F407_OLED

2.2.3、主程序中添加头文件,并调用相关函数

/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "stm32f4xx_hal.h"
#include "usart.h"
#include "gpio.h"

/* USER CODE BEGIN Includes */
#include "oled.h"
/* USER CODE END Includes */
           
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();
  MX_USART1_UART_Init();
  /* USER CODE BEGIN 2 */
    OLED_Init();
    OLED_Display_On();
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
        OLED_ShowString(,, "STM32F407_OLED");
        OLED_ShowString(,, "SKYPHY");
        OLED_ShowString(,, "Wang Haipeng");
        HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin);
        HAL_Delay();
      /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */

  }
  /* USER CODE END 3 */

}
           
STM32F407_OLED
STM32F407_OLED

2.3、程序烧录并运行

STM32F407_OLED

三、工程源码

https://download.csdn.net/download/hpw99/10642667

继续阅读