[Restart가 어디에 사용되는가?]
- Restart는 I2C Master에서 명령을 보낸 뒤에 I2C의 Stop 없이 I2C Slave로부터 데이터를 읽는데 사용된다.
[Restart를 사용하는 이유]
- Restart를 사용하는 것은 I2C 통신에서 I2C Master가 2개 이상 여러개가 있을 때 다른 I2C Master가 제어권을 가져가지 못하도록 하는데 목적이 있다.
- Restart는 Stop없이 Start하기 때문에 다른 I2C Master가 통신을 시작할 수 없다.
[read 할 때 Restart가 들어가는 I2C 통신방식에 있어서 어떤 HAL 함수를 써야 하는지?]
- 단순한 패킷의 경우에 (sub address 1개만 써주면되는 경우) HAL_I2C_Mem_Read()를 사용하면된다.
- 복잡한 패킷 (AK처럼 3개나 더 이상 써야하는 경우) HAL_I2C_Master_Sequential_Transmit_IT 와 HAL_I2C_Master_Sequential_Receive_IT의 조합을 사용한다.