一知半解學CubeMX——IIC:OLED屏顯示


一知半解學習環境:
    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的顯示功能;

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com