STM32G 시리즈도 Arduino 환경에서 개발 가능하다.
Ardunio를 사용하면 기존 라이브러리를 그대로 사용할 수 있어서 간단히 테스트 하기에는 편리 한것 같다.
우선 전체 환경 설정은 variants 폴더의 DISCO_G0316 를 기준으로 제작했다.
핀맵은 STM32G0-SSM EVM보드를 기준으로 수정했고 보드 메니저에서 STM32G_SSM 로 표기 되도록 했다.
STM32G Arduino 기본 핀맵
const PinName digitalPin[] = {
PA_0, //0 SCLK
PA_1, //1 I2S_CK
PA_2, //2 I2S_SD
PA_5, //3
PA_6, //4 I2S_MCK
PA_7, //5
PA_11, //6 SCL
PA_12, //7 SDA
PA_3, //8 MISO
PA_4, //9 MOSI
PC_14, //10 SS
PB_0, //11
PC_15, //12 LED
PB_5, //13
PB_6, //14 TXD
PB_7, //15 RXD
PB_8,
PB_9,
PC_14,
PF_2
};
Serial이 정상 출력 되지 않는다.
CubeIDE 에서 핀맵 설정할 때 TX를 PB3으로 설정 해서 PB3으로 알고 있었는데...
STM32CubeIDE 에서 생성된 코드를 보니 TX가 PB6으로 설정되어 있다.
void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
{
if(huart->Instance==USART1)
{
/* Peripheral clock disable */
__HAL_RCC_USART1_CLK_DISABLE();
/**USART1 GPIO Configuration
PB7 ------> USART1_RX
PB6 ------> USART1_TX
*/
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_7|GPIO_PIN_6);
}
}
variant.h 파일에서 아래와 같이 설정 해 주니 정상 동작 한다.
// Default pin used for 'Serial' instance
// Mandatory for Firmata
#define PIN_SERIAL_RX PB7
#define PIN_SERIAL_TX PB6
반응형