一知半解学CubeMX——IIC:OLED屏显示
来源:互联网 发布:lumia拍照软件 编辑:程序博客网 时间:2024/06/04 18:08
一知半解学习环境:
1、CubeMX 4.23.0
2、uVision 5.14.2
3、MCU 启明 STM32F407 开发板(高配版) V3.1
4、中景园电子0.96寸OLED
一知半解学习目标:
1、掌握CubeMX下RCC以及SYS的相关配置;
2、掌握CubeMX下IIC的相关配置;
3、掌握OLED的使用;
一知半解实现过程:
1、配置系统调试接口及时基时钟源;
2、配置外部高速时钟源;
3、配置IIC3功能(开发板上IIC3引出);
4、配置时钟树;
5、配置IIC具体参数,此处保持默认参数即可;
6、生成工程,并添加程序;
首先,打开工程,在i2c.c文件中添加使用的OLED的驱动封装函数。由于封装函数较多,此处不一一给出,仅以OLED的初始化函数说明一下IIC写函数的使用方法(读函数同理);
函数原型:
HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout)
官方的注释如下:
/**
* @brief Write an amount of data in blocking mode to a specific memory address
* @param hi2c Pointer to a I2C_HandleTypeDef structure that contains the configuration information for the specified I2C.
* @param DevAddress Target device address
* @param MemAddress Internal memory address
* @param MemAddSize Size of internal memory address
* @param pData Pointer to data buffer
* @param Size Amount of data to be sent
* @param Timeout Timeout duration
* @retval HAL status
*/
如下理解:
/**
* @brief IIC写函数
* @param hi2c 所使用的IIC对象。文中的使用的IIC3,因此参数为&hi2c3
* @param DevAddress 设备地址,根据操作设备的说明文档确定设备地址,此处根据OLED的说明手册确定为0x78
* @param MemAddress 设备内部地址,即访问的设备内部的内存编址,根据设备的操作方法确定;
* @param MemAddSize 设备内部地址编址方式,根据设备决定是8位编址或者16位编址方式;
* @param pData 指向用户待写入的数据;
* @param Size 写入数据的字节大小;
* @param Timeout 写入执行的超时时间;
* @retval HAL status 写入函数执行的返回状态;
*/
其次,在main函数中添加如下;
8、效果图;
一知半解套路回顾:
1、掌握CubeMX配置的常规套路,如SYS、RCC以及时钟树的配置等;
2、巩固CubeMX IIC接口的配置方法;
3、学会使用OLED的显示功能;
阅读全文
0 0
- 一知半解学CubeMX——IIC:OLED屏显示
- 一知半解学CubeMX——GPIO:LED
- 一知半解学CubeMX——创建工程
- 一知半解学CubeMX——GPIO:外部(按键)中断
- 一知半解学CubeMX——UART:Printf实现
- 一知半解学CubeMX——RNG:随机数发生器
- 一知半解学CubeMX——TIM:定时中断实现LED闪烁
- 一知半解学CubeMX——UART:空闲中断结合DMA实现不定长数据收发
- 【巨窝】stm32c8t6 驱动ssd1306 oled IIC显示屏,HAL库,cubeMX配置。
- STM32模拟IIC驱动OLED屏 原理+源码
- FPGA驱动OLED动态显示(Verilog代码)——OLED初始化
- FPGA驱动OLED动态显示(Verilog代码)——向OLED写数据(关键)
- LCD后继有人——新一代OLED显示技术
- dm3730平台oled显示时钟——ssd1306驱动
- dm3730平台oled显示时钟——ssd1306驱动
- dm3730平台oled显示时钟——系统时钟的获取和刷新
- FPGA驱动OLED动态显示(Verilog代码)——Demo演示(链接)
- FPGA驱动OLED动态显示(Verilog代码)——工程文件之间关系
- 使用bannder实现轮播图
- The type List is not generic; it cannot be parameterized with arguments***
- Eclipse上创建一个Maven+Spring MVC的HelloWord项目2:发布项目
- Notes
- 【Scikit-Learn 中文文档】内核岭回归
- 一知半解学CubeMX——IIC:OLED屏显示
- 【Scikit-Learn 中文文档】广义线性模型
- Linux端安装python3.5.0开发环境
- 在RequestTracker(RT)里用msmtp通过远程smtp服务器465端口发邮件
- day6-jacascript-JS获取页面元素
- Episode Four:SIFT算法应用1
- 【Scikit-Learn 中文文档】线性和二次判别分析
- Actor--Java并发的四种风味:Thread、Executor、ForkJoin和Actor
- 【Scikit-Learn 中文文档】使用 scikit-learn 介绍机器学习 |