Senza categoria

stm32f103 i2c 예제

속도는 상대적으로 느려야합니다, 내 예에서 나는 50khz로 설정 된 속도를 가지고 있지만 I2C는 훨씬 더 높은 속도로 실행됩니다. 또한 마스터 (stm32)로 보는 것은 시계 펄스에 관계없이 그냥 따라 가기 때문에 슬레이브 장치에 일치하는 것에 대해 걱정할 필요가 없습니다. 그것을 제공 하면 물론 유지할 수 있습니다.. I2C_핸들TypeDef & ast;hi2c: 통신하는 데 사용하는 I²C 모듈에 대한 포인터. 예를 들어 CubeMX에서 2개의 I²C 모듈을 사용하도록 정의하면 hi2c1 및 hi2c2의 2개의 사용 가능한 포인터가 있습니다. I²C1을 사용하는 경우 이 매개 변수의 포인터로 `hi2c1`을 넣습니다. 이 주변 장치를 사용하는 방법을 배울 때 HMC5843과 통신하려고했기 때문에 예제에 사용할 것입니다. HMC5843과 통신하는 데 사용한 방법은 다른 I2C와 다를 수 있지만 원칙은 동일하게 유지되므로 다른 I2C 장치마다 할당이 다릅니다. 필요에 맞게 코드를 수정할 수 있도록 모든 베이스를 다루려고 합니다. uint16_t 개발자 주소: 연결하려는 I²C 슬레이브의 주소입니다. 일반적으로 이 주소는 슬레이브 장치의 데이터시트에 비트 0에서 비트 6까지 7비트 번호 형태로 제공됩니다. 그러나 실제 전송 프레임에는 다음 이미지에서 볼 수 있는 8비트 데이터가 포함되어야 하며, 여기서 7비트 주소는 실제로 프레임의 비트 1에서 비트 8 대신에 있으며 읽기/쓰기 작업 비트에 대해 비트 0을 예약합니다.

따라서 이 매개 변수를 사용하기 전에 장치 주소를 1비트를 왼쪽으로 이동해야 합니다(주소<1). 나중에 HDC1080 센서가 있는 예제는 이 점에 대해 더 많은 것을 보여줍니다. 예를 들어 HMC3843은 0x1E 또는 0b00011110의 I2C 주소를 가지고 있지만 장치에서 읽기 요청을 보내려면 주소 0x3D 또는 0b00111101을 보내야하며 0x3C 또는 0b00111100을 보내달라는 요청을 보내야합니다. 마지막 비트는 쓰기 요청에서 지워지고 읽기 요청에 설정됩니다. github에 코드를 넣었습니다. 코드를 컴파일하고 stm32f103에 업로드하는 방법에 대한 README.md 참조하십시오. 이 문서에서는 stm32f103에서 사용자 지정 i2c 슬레이브 장치를 디자인하는 방법에 대해 설명합니다. I²C 메모리 칩이 없기 때문에 먼저 다음 예제 두 가지와 함께 그룹 1 함수를 살펴보겠습니다. 내 지식에 모든 I2C 장치 주소는 특정 장치에 고정되어 있으므로 한 줄에 갈 하나 이상을 구입하기 전에 확인 변경할 수 없습니다. 일반적으로 AT24C02와 같은 간단한 I²C 메모리 칩은 I2C 프로토콜을 시연하는 데 사용됩니다. 그러나, 이러한 메모리 칩 하지만 다른 I2C 온도 습도 센서, 매우 간단한 독서 프로토콜, 내가 먼저 그것으로 시도 하기로 결정.

센서 이름은 텍사스 인스트루먼트의 HDC1080입니다.

Founder e direttore di "Perdersi a Roma" ha pubblicato libri di prose, poesie e narrativa di viaggio tra cui "Le persone" (Kolibris) e "Letti" (Voland).