본 단행본은 inflearn에 있는 ChrisP 강사님의 "HAL, CubeMX, TrueSTUDIO를 이용한 STM32F4 무료 강좌"를 정리한 글입니다.
강좌 바로 보기 >> https://www.inflearn.com/course/stm32f4/dashboard
[무료] HAL, CubeMX, TrueSTUDIO를 이용한 STM32F4 무료 강좌 - 인프런 | 강의
고성능 마이크로컨트롤러인 STM32F 시리즈를 처음 접하는 분들이 쉽게 시작할 수 있도록 무료 컴파일러 TrueSTUDIO 및 코드자동생성 프로그램 CubeMX 설치부터 칩 기능의 개념설명, 소스코드작성(HAL
www.inflearn.com
- I2C
강의는 영상에서 잘 해주므로, 여기서는 핵심만 보도록 하겠습니다.
- 회로도
위에 있습니다.
- CubeMX 설정
1. Pinout & Configuration
I2C 1 -> I2C 활성화
I2C 1에서는...
I2C Speed Mode -> Fast Mode.
- 코드 생성
#include "CLCD.h"
uint8_t str[20];
uint8_t eeprom[10] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99};
// 불러온 함수마다 I2C 통신하는 방식이 다르므로, 데이터시트와 hal_i2c.c를 보면서 확인할 것!!
HAL_I2C_Mem_Write(&hi2c1, 0xA0, 0x00, I2C_MEMADD_SIZE_8BIT, &eeprom[0], 10, 10);
HAL_Delay(3); // eeprom의 특성에 의해, 다른 동작을 수행하기 전에 딜레이가 필요햐다.
for(int i=0; i<10; i++) eeprom[i] = 0x00; // eeprom 배열 초기화
HAL_I2C_Mem_Read(&hi2c1, 0xA0, 0x00, I2C_MEMADD_SIZE_8BIT, &eeprom[0], 10, 10);
// eeprom에서 데이터를 잘 불러왔는지 확인해본다.
CLCD_GPIO_Init();
CLCD_Init();
sprintf(str, "%02x %02x %02x %02x %02x", eeprom[0], eeprom[1], eeprom[2], eeprom[3], eeprom[4]);
CLCD_Puts(0, 0, str);
sprintf(str, "%02x %02x %02x %02x %02x", eeprom[5], eeprom[6], eeprom[7], eeprom[8], eeprom[9]);
CLCD_Puts(0, 1, str);
'Develop Knowledge > STM32F4 by ChrisP' 카테고리의 다른 글
11강. SDIO + FATFS 파일입출력 (0) | 2023.02.05 |
---|---|
10강. SPI 통신 (VS1003 음성코덱) (0) | 2023.02.04 |
8강. DAC (0) | 2023.02.03 |
7강. ADC with DMA (0) | 2023.02.03 |
6강. PWM 생성하기 (0) | 2023.02.02 |