본문 바로가기

[ST_MICRO]/STM32F3

[STM32F373 EVM] UART Test


[STM32F373 EVM] UART Test




STM32F3시리즈의 소스코드 코드는 기존의 STM32F1, F2, F4 시리즈와 100% 호환이 안되는것 같다.

STM32F1, F2, F4에서는 거의 동일한 코드로 잘 동작 했는데 컴파일이 안된다.


레지스터 명이 약간 변경된것 같다. 


아래와 같이 수정해 주니 잘 동작한다. (왜 이렇게 자주 바뀌지...?)


unsigned char U0_GetByte(void)

{

  //while ((USART1->SR & USART_FLAG_RXNE) == RESET);

//return USART1->DR; 

    

    while ((USART1->ISR & USART_FLAG_RXNE) == RESET);

    return USART1->RDR;

}


void U0_PutByte(unsigned char Data)

{

//while((USART1->SR & USART_FLAG_TXE) == RESET);

//USART1->DR = Data;


    while((USART1->ISR & USART_FLAG_TXE) == RESET);

    USART1->TDR = Data;

}




[STM32F373 EVM] UART Test 예제 소스코드

int main(void)

{

    int cnt = 0;

    _SystemInit();


    SystemClock_Config();


    Led1Init();


    U0_Init(BAUD_115200);

    DebugPrint("STM32F373 EVM UART Test\r\n");

    

    while (1)

    {

        Led1Toggle();

        DebugPrint("cnt =%d\r\n", cnt++);

        Delay(100);

    }

}





반응형