STM32CubeMx開發之路—10使用IIC讀寫24C02

STM32CubeMx開發之路—10使用IIC讀寫24C02


運行環境

  • Windows10
  • STM32CubeMX Version 5.2.0
  • Keil5(MDK5) Version 5.28.0.0

簡介

本例程主要講解如何使用硬件IIC讀寫24C02


STM32CubeMx基本配置

基礎配置過程請參考 STM32CubeMx(Keil5)開發之路—配置第一個項目


CubeMX配置

  • IIC配置

  • 根據原理圖可知需要的配置的是IIC2

  • 調試打印配置


代碼修改

  • 添加代碼(講解寫在代碼裏面)
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */

#define EE_TYPE  255					//類型
#define ADDR_24LCxx_Write	0xA0		//寫指令IIC地址
#define ADDR_24LCxx_Read	0xA1		//讀指令IIC地址
#define BufferSize 10					//讀寫大小(注意不要設置太大)

uint8_t WriteBuffer[BufferSize] = {0,1,2,3,4,5,6,7,8,9};	//需要寫的數據在WriteBuffer當中
uint8_t ReadBuffer[BufferSize];								//讀出來的數據放進ReadBuffer當中

int i = 0;

/* 調試打印 */
int fputc(int ch, FILE *f)
{
    HAL_UART_Transmit(&huart1, (uint8_t *)&ch,1, 0xFFFF);
    return ch;
}

/* USER CODE END 0 */
  • main函數
int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */
  

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USART1_UART_Init();
  MX_I2C2_Init();
  
  /* USER CODE BEGIN 2 */
  
	/* 寫數據 */
	HAL_Delay(5);
	if(HAL_I2C_Mem_Write(&hi2c2, ADDR_24LCxx_Write, 0, I2C_MEMADD_SIZE_8BIT,WriteBuffer,BufferSize, 0x10) != HAL_OK)
	{
		printf("Write fail!\n");
	}
	
	/* 讀數據 */
	HAL_Delay(5);
	if(HAL_I2C_Mem_Read(&hi2c2, ADDR_24LCxx_Read, 0, I2C_MEMADD_SIZE_8BIT,ReadBuffer,BufferSize, 0x10) != HAL_OK)
	{
		printf("Read fail!\n");
	}
	
	/* 測試輸出 */
	for(i=0; i<BufferSize; i++)
	{
		printf("0x%02X ",ReadBuffer[i]);
	}
	
	
	
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

運行結果

  • 燒錄進去,用串口調試助手
  • 發現輸出的就是我們存進的數據,說明測試成功

源碼

STM32F103ze_IIC_24C02.rar

小結

IIC在實際應用過程非常廣泛,是嵌入式需瞭解的協議之一,所以一定要好好理解!


備註:提供一下個人微信號 Hleafleafleaf,歡迎加好友,共同學習!共同進步!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章