ARDUINO-SM EXP 보드를 이용하여 STM32G431의 Arduino 보드를 만들어 보자
Arduino Board 파일은 https://github.com/stm32duino/Arduino_Core_STM32 를 사용한다.
먼저 Arduino
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
Arduino Boards Manager 에서 Genernic STM32G4 Series를 선택한다.
Board part number를 ELAB_G431_SM 보드를 선택 한다.
Generic G431 보드파일을 수정해서 ELAB_G431SM 보드파일로 만들었다.
STM32G431 Arduino variants 파일
#define PA0 PIN_A0
#define PA1 PIN_A1
#define PA2 PIN_A2
#define PA3 PIN_A3
#define PA4 PIN_A4
#define PA5 PIN_A5
#define PA6 PIN_A6
#define PA7 PIN_A7
#ifndef PIN_SPI_MOSI
#define PIN_SPI_MOSI PB15
#endif
#ifndef PIN_SPI_MISO
#define PIN_SPI_MISO PB14
#endif
#ifndef PIN_SPI_SCK
#define PIN_SPI_SCK PB13
#endif
// I2C definitions
#ifndef PIN_WIRE_SDA
#define PIN_WIRE_SDA PB9
#endif
#ifndef PIN_WIRE_SCL
#define PIN_WIRE_SCL PB10
#endif
// Timer Definitions
// Use TIM6/TIM7 when possible as servo and tone don't need GPIO output pin
#ifndef TIMER_TONE
#define TIMER_TONE TIM6
#endif
#ifndef TIMER_SERVO
#define TIMER_SERVO TIM7
#endif
// UART Definitions
#ifndef SERIAL_UART_INSTANCE
#define SERIAL_UART_INSTANCE 101
#endif
// Default pin used for generic 'Serial' instance
// Mandatory for Firmata
#ifndef PIN_SERIAL_RX
#define PIN_SERIAL_RX PA10
#endif
#ifndef PIN_SERIAL_TX
#define PIN_SERIAL_TX PA9
#endif
[STM32G4 SM] 보드의 기본 동작 테스트를 아래 코드로 진행하면 보드내의 LED가 깜박이는 것을 확인할 수 있다.
#define LED_PIN1 PC13
#define LED_PIN2 PC14
void setup() {
pinMode(LED_PIN1, OUTPUT);
pinMode(LED_PIN2, OUTPUT);
Serial.begin(115200);
}
int cnt = 0;
int led_toggle = 0;
void loop() {
led_toggle ^= 1;
digitalWrite(LED_PIN1, led_toggle);
digitalWrite(LED_PIN2, !led_toggle);
Serial.println(cnt++);
delay(500);
}
반응형