STM32407VE 에서 I2C를 먼저 설정해주자
설정은 이렇게만 해주고 코드를 작성하자.
코드는 다음과 같다.
라이브러리는 https://github.com/alixahedi/i2c-lcd-stm32
이곳에서 제공해준 라이브러리를 사용한다.
I2C_HandleTypeDef hi2c1;
I2C_LCD_HandleTypeDef lcd1;
/* USER CODE END 0 */
/**
* @brief The application entry point.
* @retval int
*/
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_RTC_Init();
MX_USART2_UART_Init();
MX_I2C1_Init();
/* USER CODE BEGIN 2 */
char str1[20];
int16_t count = 0;
lcd1.hi2c = &hi2c1;
lcd1.address = 0x4E;
lcd_init(&lcd1);
lcd_clear(&lcd1);
lcd_puts(&lcd1, "STM32 I2C LCD");
lcd_gotoxy(&lcd1, 0, 1);
lcd_puts(&lcd1, "Library Demo");
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
lcd_clear(&lcd1);
lcd_puts(&lcd1, "STM32 I2C LCD");
lcd_gotoxy(&lcd1, 0, 1);
sprintf(str1, "count=%3d", count++);
lcd_puts(&lcd1, str1);
HAL_Delay(500);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
다른 플랫폼에서도 구동시켜보았는데 LCD가 불량인것같다. 그래도 자세히 보면 보이니 참고바란다.
'STM32' 카테고리의 다른 글
STM32 익히기 1) (0) | 2024.12.02 |
---|---|
RTC사용해보기 (0) | 2024.11.26 |
STM32F407VE - 기초 7) Timer (0) | 2024.11.25 |
MCU Internal 온도 측정하기 (0) | 2024.11.24 |
STM32F407VE - 기초 6) ADC-2 (0) | 2024.11.24 |