- [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
'STM32' 카테고리의 다른 글
[CubeIDE]Third-party의 라이브러리 파일(XXX.a) 추가 (0) | 2021.11.04 |
---|---|
[STM32]STM32CubeIDE에서 include path 추가하기 (0) | 2021.11.01 |
[touchGFX]배경색이 없는 버튼(Button) 만들기 및 버튼 크기(Size) 조정 (0) | 2021.10.22 |
터미널 프로그램에서 AT 명령어 입력 (0) | 2021.10.05 |
[STM32]TouchGFX: section `ExtFlashSection' will not fit in region `FLASH', region `FLASH' overflowed by 290224 bytes 오류 해결 (0) | 2021.09.23 |