一知半解学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