stm32f103 i2c 예제

uint16&lowbar;t 개발자 주소: 연결하려는 I²C 슬레이브의 주소입니다. 일반적으로 이 주소는 슬레이브 장치의 데이터시트에 비트 0에서 비트 6까지 7비트 번호 형태로 제공됩니다. 그러나 실제 전송 프레임에는 다음 이미지에서 볼 수 있는 8비트 데이터가 포함되어야 하며, 여기서 7비트 주소는 실제로 프레임의 비트 1에서 비트 8 대신에 있으며 읽기/쓰기 작업 비트에 대해 비트 0을 예약합니다. 따라서 이 매개 변수를 사용하기 전에 장치 주소를 1비트를 왼쪽으로 이동해야 합니다(주소<1). 나중에 HDC1080 센서가 있는 예제는 이 점에 대해 더 많은 것을 보여줍니다. I2C&lowbar;핸들TypeDef & ast;hi2c: 통신하는 데 사용하는 I²C 모듈에 대한 포인터. 예를 들어 CubeMX에서 2개의 I²C 모듈을 사용하도록 정의하면 hi2c1 및 hi2c2의 2개의 사용 가능한 포인터가 있습니다. I²C1을 사용하는 경우 이 매개 변수의 포인터로 `hi2c1`을 넣습니다. 이 문서에서는 stm32f103에서 사용자 지정 i2c 슬레이브 장치를 디자인하는 방법에 대해 설명합니다. github에 코드를 넣었습니다.

코드를 컴파일하고 stm32f103에 업로드하는 방법에 대한 README.md 참조하십시오. I²C 메모리 칩이 없기 때문에 먼저 다음 예제 두 가지와 함께 그룹 1 함수를 살펴보겠습니다. 속도는 상대적으로 느려야합니다, 내 예에서 나는 50khz로 설정 된 속도를 가지고 있지만 I2C는 훨씬 더 높은 속도로 실행됩니다. 또한 마스터 (stm32)로 보는 것은 시계 펄스에 관계없이 그냥 따라 가기 때문에 슬레이브 장치에 일치하는 것에 대해 걱정할 필요가 없습니다. 그것을 제공 하면 물론 유지할 수 있습니다.. 예를 들어 HMC3843은 0x1E 또는 0b00011110의 I2C 주소를 가지고 있지만 장치에서 읽기 요청을 보내려면 주소 0x3D 또는 0b00111101을 보내야하며 0x3C 또는 0b00111100을 보내달라는 요청을 보내야합니다. 마지막 비트는 쓰기 요청에서 지워지고 읽기 요청에 설정됩니다. 이 주변 장치를 사용하는 방법을 배울 때 HMC5843과 통신하려고했기 때문에 예제에 사용할 것입니다. HMC5843과 통신하는 데 사용한 방법은 다른 I2C와 다를 수 있지만 원칙은 동일하게 유지되므로 다른 I2C 장치마다 할당이 다릅니다. 필요에 맞게 코드를 수정할 수 있도록 모든 베이스를 다루려고 합니다. I2C 마스터 코드 (STM32F103C8) //I2C STM32와 아두 이노 //회로 다이제스트 사이의 통신 . /*활성화 NACK 비트 */ I2C_NACKPositionConfig (I2C1, I2C_NACKPosition_Current); I2C_인정Config (I2C1, 사용 안 함); I2C 또는 Inter Integrated Circuit(때로는 2선 인터페이스라고도 함)은 2개의 와이어에서만 100개 이상의 장치와 개별적으로 통신할 수 있는 훌륭한 방법입니다.

그러나 I2C는 전체적으로 적절한 양의 프로토콜 오버헤드가 필요하므로 외부 주변 장치와 통신하는 가장 빠른 방법이 아닙니다. 그러나 프로세서에 들어가는 데 2개의 데이터 라인만 필요하기 때문에 공간에서 중요한 설계에서 배선을 줄이는 것이 매우 좋습니다. uint32&lowbar;t 시간 시간 지정: I²C 연결에 문제가 있는 경우 함수가 중지하고 기본 프로그램으로 돌아갈 시간 지정을 위한 시간 지정 구성입니다. 마스터 STM32 및 슬레이브 아두 이노에 대한 완전한 코딩은 데모 비디오와 함께 아래에 주어집니다 따라서,이 튜토리얼에서, 나는 다음 부분을 다룰 것입니다 : STM32VLDiscovery STM32F100RB에이 코드를 시도하지만 동안 시작 플래그를 생성하지 않습니다 (! I2C_GetFlagStatus(I2C1, I2C_FLAG_SB)); 코드가 생성되지 않으면 내 추측은 두 가지 중 하나입니다 : 내 블로그의 새로운 모습에 오신 것을 환영합니다. 나는 마침내 유료 웹 호스트에서 내 블로그를 이동 … HDC1080 센서가 작동하게 된 후 I²C 통신을 사용하는 SSD1306 OLED 화면에서 온도와 습도를 표시할 수 있습니다. 이 부분에서는 STM32F051을 사용하여 0.91″128×32 SSD1306 OLED 디스플레이에 연결, 설정 및 표시하는 방법을 설명합니다.

Die Kommentarfunktion ist geschlossen.