stm32f spi 통신 예제

0 0

아날로그 입력은 전위차계를 회전시켜 STM32F10C8 핀 PA0(0 ~3.3V)에서 촬영됩니다. 그런 다음 이 입력 값은 아날로그에서 디지털 값(0 ~4096)으로 변환되고 이 디지털 값은 SPI 통신을 통해 8비트(바이트) 데이터만 한 번에 전송할 수 있으므로(0~255)에 더 매핑됩니다. SPI 통신에 대한 자세한 내용은 이전 기사 태그: 16bit16bit spi6spiabpapb1apb2마이크로 컨트롤러직렬 주변 인터페이스spistm32f4STM32F4 디스커버리32f429디스커버리32f429디스커버리32f4디스커버리 아래 표를 참조하세요. 아두 이노와 STM32 SPI 통신을 위해 연결된 핀. AD7705를 사용할 수 있으며 SPI를 사용하여 MCU에 통신할 수도 있지만 AD7705를 사용하는 경우 매개 변수 1을 수정해야 합니다. 우선 우리는 LCD 기능을 사용하기 위한 SPI 통신 기능 및 LCD 라이브러리를 사용하기 위한 SPI 라이브러리를 포함해야 합니다. 또한 16×2 LCD용 LCD 핀을 정의합니다. STM32를 통해 LCD 인터페이싱에 대해 자세히 알아보려면 여기를 참조하십시오. 이전 자습서에서는 두 개의 Arduino 보드 간의 SPI 및 I2C 통신에 대해 배웠습니다. 이 튜토리얼에서 우리는 STM32F103C8이며, SPI 버스를 사용하여 아두 이노 보드와 통신 할 블루 필 보드하나의 아두 이노 보드를 대체합니다.

{ lcd.begin (16,2); // LCD를 16×2 모드 lcd.setCursor (0,0); // 첫 번째 행및 첫 번째 열 lcd.print에서 커서 설정(„회로 다이제스트“); // LCD 지연에 회로 다이제스트(3000); // 3초 동안 지연()////지우기 LCD 디스플레이 직렬(serial.begin) 9600); Baud Rate 9600 핀모드(SS, OUTPUT)에서 직렬 통신을 시작합니다. SS를 출력 SPI.begin(); SPI 통신 SPI.setClock분할(SPI_CLOCK_DIV16)을 시작합니다. 16 (72/16 = 4.5Mhz) 디지털 쓰기 (SS, HIGH)에서 SPI 통신에 대한 시계를 설정합니다. 슬레이브 셀렉트 (그래서 마스터는 슬레이브와 연결되지 않습니다) } } 그래서 이것은 SPI 통신이 STM32에서 일어나는 방법입니다. 이제 모든 SPI 센서를 STM32 보드와 인터페이스할 수 있습니다. 보이드 루프(void) { 바이트 마스터센드, 마스터수신; int pot = analogRead(PA0); // 아날로그는 핀 PA0 MasterSend = 맵에서 입력 포트 값을 읽습니다(pot,0,4096,0,255); // 0에서 4096 디지털쓰기(SS, LOW)로 냄비 값을 변환하는 데 사용됨 마스터 수신 = SPI.transfer (마스터 센드)에 연결된 슬레이브와의 통신; 슬레이브에 마스터 엔드 값을 보내또한 슬레이브 Serial.println에서 값을 수신 („마스터 STM32에 슬레이브 아두 이노“);; 직렬 모니터 직렬.println (마스터 수신)에 사용; [0,0] lcd.print(„마스터: STM32“); lcd.setCursor (0,1); lcd.print(„살베발:“); lcd.print(마스터수신); 슬레이브 아두이노 딜레이로부터 수신된 값을 넣는다(500); 디지털 쓰기(SS, HIGH); 슬레이브 lcd.clear()와 통신하지 않도록 SS 라인을 HIGH로 다시 확인합니다. 참고 : 우리는 아두 이노 IDE의 직렬 모터에서 결과를 보려면 serial.println()를 사용합니다. 안녕하세요, STM32F401 및 truestudio를 사용하여 ADXL375에 대해 동일한 코드를 시도했습니다. 나는 cpol과 cpha에 대한 올바른 값을 넣어 내 속도는 5MHz 미만입니다. 그러나 장치 ID를 얻으려고 하면 쓰레기 (프로그램을 실행할 때마다 값이 변경됨)가 되고 다른 축을 읽을 때 특히 z 축에 대해 정말 이상한 값을 얻습니다. 기본적으로 아무 것도 작동하지 않습니다. 디버깅하는 동안 MOSI 라인만 작동하는 것 같습니다 (MISO 아니오).