# 2023电赛E题STM32F407部分代码 **Repository Path**: nanhaibei/stm32-f407-c-personal-codebase ## Basic Information - **Project Name**: 2023电赛E题STM32F407部分代码 - **Description**: 在CubeMax+CLion环境下用C++为2023电赛编写的电控代码 - **Primary Language**: C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2023-07-15 - **Last Updated**: 2025-06-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # STM32F407C++个人代码库 ### 1. 介绍 ​ 在CubeMax+CLion环境下用C++给STMF407VET6编写的外设驱动库,为电赛做准备。电赛的嵌入式开发大多数情况下就是在对各种外设进行操作,比如说LED、按键、OLED、电机等等,这些外设天然适合写成一个类,并使用面向对象的思想进行编程。当我们想操作多个同样的外设时,只需要对类进行新的实例化即可,可以大大简化代码编写的流程。因此,我想要使用C++编写一个为电赛服务的外设驱动库。 ### 2.已完成内容以及使用方法 #### 2.1 LED ​ 代码见文件夹 ​ 点灯是最基础的功能,调用比较简单,看LED.cpp代码注释即可 #### 2.2 按键 ​ 按键有两个函数 #### 2.3 0.96寸OLED ​ 使用硬件IIC驱动0.96寸OLED(也叫12864OLED)进行显示。驱动代码改编自[STM32F407霸天虎HAL库学习笔记——通过I2C驱动OLED_stm32f407 oled_物联网小白Jayce的博客-CSDN博客](https://blog.csdn.net/weixin_43329283/article/details/126865004)。 使用时,需要先实例化类,构造函数的参数是硬件IIC端口号 ```c++ OLED096H_ oled(&hi2c1); ``` 然后在工程的初始化函数中调用OLED的初始化函数 ```c++ oled.OLED_Init(); oled.OLED_Clear(); ``` 接下来就可以正常使用OLED了,例如 ```c++ oled.OLED_ShowString(0,0,(uint8_t*)"F407Borad Test",16); ``` 注意:这里的y坐标的单位是页,1页是16个像素,所以y坐标范围是`0-7`