본문 바로가기

[ST_MICRO]/STM8

STM8S - UART 테스트

STM8S - UART 테스트




SS-Type EVM 보드와 USB2UART를 이용하여 STM8S UART 테스트를 진행했다.



STM8S UART 블록도

뭐 그리 특별한것은 없고 다른 8bit MCU와 같이 간단한 레지스터 구조로 구성되어 있다. 몇가지 레지스터만 확인하면 될것 같다.



STM8S UART 송수신 함수

unsigned char U0_GetByte(void)

{

while ((UART1->SR & UART1_FLAG_RXNE) == RESET);

return UART1->DR;

}



void U0_PutByte(unsigned char Data)

{

    UART1->DR = Data;


    while ((UART1->SR & (u8) UART1_FLAG_TXE) == RESET);

}



STM8S UART 테스트 예제

int main( void )

{

    unsigned int cnt = 0;


    SystemInit();

    

    DebugInit(BAUD_115200);

    U0_PutStr("test\r\n");


    Led1Init();

    Led1On();

    

    while(1)

    {

        Led1Toggle();

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

        Delay(500);

    }

    

    return 0;

}







STM8S UART 인터럽트 테스트

UART 인터럽트 초기화함수로 UART1_ITConfig() 를 이요하면되고 STM32와 유사해서 코드 수정하는데 편한것 같다.

    UART1_ITConfig(UART1_IT_RXNE, ENABLE);

    enable();



STM8S  UART 인터럽트 핸들러 함수

INTERRUPT_HANDLER(UART1_RX_IRQHandler, 18)

{

    unsigned char data;


    U0_PutByte(U0_GetByte());

}



반응형