一知半解学习环境:


    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、配置系统调试接口及时基时钟源;


cubemx 配置_IIC




    2、配置外部高速时钟源;


cubemx 配置_CUBEMX_02




    3、配置IIC3功能(开发板上IIC3引出);


cubemx 配置_CUBEMX_03




    4、配置时钟树;


cubemx 配置_IIC_04




    5、配置IIC具体参数,此处保持默认参数即可;


cubemx 配置_OLED_05




    6、生成工程,并添加程序;


首先,打开工程,在i2c.c文件中添加使用的OLED的驱动封装函数。由于封装函数较多,此处不一一给出,仅以OLED的初始化函数说明一下IIC写函数的使用方法(读函数同理);






cubemx 配置_一知半解_06



函数原型:


     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函数中添加如下;


cubemx 配置_一知半解_07




     8、效果图;


cubemx 配置_OLED_08




一知半解 套路 回顾:


    1、掌握CubeMX配置的常规套路,如SYS、RCC以及时钟树的配置等;


    2、巩固CubeMX IIC接口的配置方法;


    3、学会使用OLED的显示功能;