stm32 spi 예제

태그: 16bit16bit spi6spiabpahpb1apb2microcontrollersserial 주변 인터페이스spistm32f4STM32F4 디스커버리32f429디스커버리stm32f4디스커버리 보이드 루프() { int pot = analogRead(A0); // 아날로그 슬레이브센드 = 지도(pot,0,1023,0,255); 마스터 stm32 SPDR = 슬레이브센드로 전송하기 위한 값 포트(0-1023)를 (0-255)로 변환; SPDR lcd.setCursor(0,0)를 통해 STM32F103C8 마스터에 연고 값을 보냅니다. lcd.print(« 슬레이브: 아두이노 »); lcd.setCursor (0,1); lcd.print(« 마스터발: »); Serial.println(« 마스터 STM32에서 슬레이브 아두이노까지 »); 직렬.println (슬레이브 수신); 마스터 STM32F103C8에서 수신된 값을 직렬 모니터 lcd.print(슬레이브 수신)에 넣습니다. 마스터 STM32F103C8로부터 받은 값을 LCD 디스플레이 지연(500)에 둔다. lcd.clear(); } #include // 주소가 0x80 및 0x40인 SPI 통신 메모를 사용하기 위한 라이브러리 포함. ADXL 데이터 시트에 따르면, 우리는 데이터를 읽으려면, 우리는 마지막 비트를 설정해야하고 또한 멀티 바이트 읽기 / 쓰기 6 비트는 Github에서 사용할 수 있어야합니다, 아래의 라이브러리를 다운로드. #include // SPI 통신 #include 사용하기 위한 라이브러리 포함 // LCD 디스플레이 라이브러리 액정 액정 액정(2, 4, 5, 6, 7); // LCD 모듈 핀 정의(RS, EN, D4, D5, D6, D7) 휘발성 부울 수신; 휘발성 바이트 노예 수령, 노예 선물; void 설정() . SPCR |= _BV(SPE); 수신된 슬레이브 모드에서 SPI를 켜십시오 = false; SPI.attach인터럽트(); Interuupt ON은 SPI 커너션 } 에 대해 설정됩니다. . SPI를 사용하지 마십시오. 먼저 I2C를 사용하여 I2C를 사용하여 시도 I2C를 사용하여 자습서를 작성했습니다. 당신은 웹 사이트 자체를 wihtin 을 검색 할 수 있습니다. const int rs = PB0, en = PB1, d4 = PB10 , d5 = PB11 , d6 = PC13, d7 = PC14; LCD {lcd.begin(16,2); //LCD를 16×2 모드 lcd.setCursor(0,0);// 첫 번째 행및 첫 번째 열 lcd.print에서 커서 설정(« 회로 다이제스트 »)의 핀 이름 및 핀 번호 선언); //CIRCUIT 다이제스트 LCD 지연(3000); //3초 LCD 지연에 회로 다이제스트 를 넣습니다.명확 (); LCD 디스플레이 직렬.begin(9600)을 지웁습니다. Baud Rate 9600 핀모드(SS, OUTPUT)에서 직렬 통신을 시작합니다.

SS를 출력 SPI.begin(); SPI 통신 SPI.setClock분할(SPI_CLOCK_DIV16)을 시작합니다. 16 (72/16 = 4.5Mhz) 디지털 쓰기 (SS, HIGH)에서 SPI 통신에 대한 시계를 설정합니다. 슬레이브 셀렉트 (그래서 마스터는 슬레이브와 connnect하지 않습니다) } MOSI -> 마스터 아웃 슬레이브인은 우리의 STM32F429 디스커버리가 6 개의 스피스를 지원하는 슬레이브에 데이터를 보내는 데 사용됩니다. SPI6를 제외한 모든 SPI에는 사용하려는 구성 가능한 핀이 2개 이상 있습니다. 주변 기기에 사용되는 핀을 검색하여 하단 테이블에 표시합니다. 액정 액정(rs, en, d4, d5, d6, d7); LCD 및 그 paramaters 보이드 루프 (void) { 바이트 MasterSend, MasterReceive; int pot = analogRead (PA0); // 아날로그는 핀 PA0 MasterSend = 지도 (pot,4096,0,255)에서 입력 포트 값을 읽습니다. (SS, LOW); 마스터 수신=SPI.transfer(MasterSend)에 연결된 슬레이브와의 통신을 시작합니다. 슬레이브에 마스터 엔드 값을 보내또한 슬레이브 Serial.println에서 값을 수신 (« 마스터 STM32에 슬레이브 아두 이노 »);; 직렬 모니터 직렬.println (마스터 수신)에 사용; [0,0] lcd.print(« 마스터: STM32 »); lcd.setCursor (0,1); lcd.print(« 살베발: »); lcd.print(마스터수신); 슬레이브 아두이노 딜레이로부터 수신된 값을 넣는다(500); 디지털 쓰기(SS, HIGH); 슬레이브 lcd.clear()와 통신하지 않도록 SS 라인을 HIGH로 다시 확인합니다.

이 자습서에서는 STM32CubeMX HAL API를 사용하여 STM32 장치의 SPI 인터페이스를 사용하는 방법을 보여 줍니다. 여러 가지 모드에서 SPI를 구성하고 생성된 신호에 미치는 영향을 표시하고 이중 버퍼링 모드를 설정하여 연속 중단 모드가 시연됩니다.

Ce contenu a été publié dans Non classé par samuel. Mettez-le en favori avec son permalien.