본문 바로가기

[ST_MICRO]/STM32F4

[STM32F4-RP] STM32F405 UART 테스트

STM32F4-RP Board 보드에서 UART는 PA9(TXD), RXD(PA10) 에 연결되어 있다.

 

확장 테스트 핀맵은 Raspberry Pi 핀맵과 동일하며 RX, TX 크로스로 연결 될 수 있다.

 

그리고 보드내의 SSM 커넥터는 아래와 같이 연결 되어 USB UART SSM 모듈 보드를 연결하여 테스트 할 수 있다.


먼저 STM32CubeIDE를 이용하여 새로운 프로젝트를 생성하고 UART, FSMC, DCMI, I2C 등의 각종 장치들을 설정해야 한다.

 

우선 가장 기본이 되는 UART 통신으로 “W5300 Hello World” 메시지를 출력해 보자 .

STM32CubeIDE에서 Connectivity항목에서 USART1의 Mode를 Asynchronous로 설정하고 디폴트 옵션으로 사용하면된다.




STM32의 클럭 설정은 8Mhz의 외부 크리스털로 설정하고 클럭스피드를 최대 168Mhz로 설정해 준다.




설정이 끝나고 저장하면 자동으로 기본 동작 코드가 생성된다.

 

printf 함수를 사용하기 위해 _write() 함수를 재 정의 해서 UART1으로 출력 하도록 설정하면 된다.

int _write( int32_t file , uint8_t *ptr , int32_t len )
{
    /* Implement your write code here, this is used by puts and printf for example */
    for ( int16_t i = 0 ; i < len ; ++i )
    {
        HAL_UART_Transmit( &huart1, ptr++, 1, 100);
    }
    return len;
}

 

printf 함수를 이용해서 W5300 Hello World 메시지를 출력하는 코드를 작성하고 다운로드 한다.

int main(void)
{
  HAL_Init();

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USART1_UART_Init();

  /* USER CODE BEGIN 2 */
  printf("W5300 Hello World!\r\n");

  while(1);
}



프로그램을 실행하면 시리얼 포트로 메시지가 출력되는 것을 확인 할 수 있다.



반응형