[STM32F4XX]HAL_I2C 사용하기

2021년 10월 27일 by 진아사랑해

    [STM32F4XX]HAL_I2C 사용하기 목차
반응형

센서와 연결을 하기 위해 IC2를 사용하여야 한다

기본적으로 CubeMX에서 I2C에 대한 설정을 한다

 

I2C2를 사용하고 속도는 100KHz인 표준 모드를 사용한다

 

나는 non-blocking 방식인 인터럽트를 사용할 것임으로 위 그림처럼 인터럽트를 enable해 주어야 한다

 

인터럽트 방식의 명령어로는

송신: HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size)

수신: HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size)

 

사용의 예로는

if(HAL_I2C_Master_Transmit_IT(&hi2c2, (0x31<<1), cm1106ls_data, 1)!= HAL_OK)

{

    print("I2C 송신에러");

}

 

if(HAL_I2C_Master_Receive_IT(&hi2c2, ((0x31<<1)+ 0x01), cm1106ls_data, 5) != HAL_OK)
{
    print("I2C 수신에러");
}

 

즐거운 시간되시기 바랍니다.

 

참고) I2C 및 STM의 I2C에 대한 내용은 아래의 링크를 참ㅈㅗ하시기 바랍니다.

https://deepbluembedded.com/stm32-i2c-tutorial-hal-examples-slave-dma/

 

STM32 I2C Tutorial HAL Code Examples Slave & Master - DMA / Interrupt

STM32 I2C Tutorial With HAL Code Examples. STM32 i2c slave HAL code example. I2C DMA interrupt polling examples. I2C Scanner, TX, RX

deepbluembedded.com

 

반응형