[ST_MICRO]/STM32G2018. 12. 14. 05:10

#STM32G030 EVM - UART 테스트 (STM32CubeIDE 에서 printf 사용하기)

#STM32G030 EVM -  UART 테스트 (STM32CubeIDE  에서 printf 사용하기)





STM32g030F6에는 3채널의 UART포트가 있고 UART1(Tx-PB3, Rx-PB7) 포트가 보드상의 UART커넥터에 할당되어 있다.





STM32CubeIDE에서 새로운 프로젝트를 생성하고 UART탭의 핀맵과 보레이트 등을 설정한다.






STM32CubeIDE 로 코드 생성하면 자동 코드가 생성되고 기존 STM32 HAL코드와 동일하게 작성하면 UART 통신 테스트를 할 수 있다.



int main(void)
{
  /* USER CODE BEGIN 1 */
  /* USER CODE END 1 */
  /* MCU Configuration--------------------------------------------------------*/
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();
  /* USER CODE BEGIN Init */
  /* USER CODE END 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 */
  HAL_UART_Transmit( &huart1, "STM32G-SSM EVM", 1, 100);
  /* USER CODE END 2 */
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */

}




STM32CubeIDE  에서 printf 사용하기


STM32CubeIDE 에서 printf 를 사용하려면 _wrte 함수를 재 정의 해 주면 된다.


#define hUART           huart1
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( &hUART, ptr++, 1, 100);
    }
    return len;

}




printf 로 간단히 카운트 값을 증가 하는 코드 작성해서 테스트 해 보니 잘 동작한다.


  while (1)
  {
    /* USER CODE END WHILE */
    printf("%d\r\n", cnt++);
    HAL_Delay(100);
    /* USER CODE BEGIN 3 */

  }


Posted by nexp

댓글을 달아 주세요

[ST_MICRO]/STM32G2018. 11. 13. 06:31

#STM32G0-SSM EVM 보드 제작 - STM32G031F6

#STM32G0M-SSM EVM 보드 제작 - STM32G031F6







STM32의 저렴한 MCU로 STM32F0 를 많이 사용하고 있었는데 성능면에서 약간 아쉬울 때가 있으면 STM32F1 시리즈 F4시리즈를 선택 해야 한다.


성능을 위해 가격을 올리기가 약간 부담스러울 때가 있었는데 이번에 STM32G가 출시 되었다고 해서 제작 해 보았다.


한가지 아쉬운점은 기존의 STM32F시리즈와 핀 호환이 안된다. ST의 가장 큰 장점 이었는데...




보드는 가장 간단히 MCU및 센서모듈등의 표준 핀맵으로 사용하는 SSM 모듈 핀맵으로 20핀 TSSOP패키지의 STM32G031F6 로 제작 했다.







STM32G의 장점으로 온도 스펙이 -40 ~ 125도로 산업용으로 적용 가능해 졌다. ADC속도도 빨라지고 내부 클럭 정밀도도 높아 졌다고 한다.











파워 핀을 하나로 정리하고 내부 클럭 정밀도가 높아져 외부 클럭이 필요 없다는 장점으 부각하고 있다.





전류 소모도 줄어서 저전력에도 도움이 될것 같고...





핀맵도 정리 했다고 하는데 PCB한번에 여러 패키지를 적용 시킬 수도 있을것 같다.


Posted by nexp

댓글을 달아 주세요