본문 바로가기

[TI]/MSP0M

[MSPM0L1306 SSM] UART 테스트 - printf 사용하기

 

 

MSPM0 사용하면서 가장 기본이 되는 장치라 할 수 있는 UART 테스트를 해 보자.

syscfg를 사용하면 쉽게 UART를 추가 하고 간단하게 설정 할 수 있다.



MSPM0의 UART핀맵도 쉽게 설정가능하다.



기본 코드를 생성하고 DL_UART_Main_transmitDataBlocking() 함수로 UART로 데이터 전송이 가능하다.

#include "ti_msp_dl_config.h"

#define DELAY (32000000)

int main(void)
{
    SYSCFG_DL_init();

    while (1) 
    {
        delay_cycles(DELAY);
        DL_GPIO_togglePins(GPIO_GRP_0_PORT,  GPIO_GRP_0_PIN_0_PIN);      

        DL_UART_Main_transmitDataBlocking(UART_0_INST, ‘a’);
    }
}

 

 


printf 사용하기

printf를 사용하려면  fputc, fputs 함수를 재정의 하면 된다.

 

#include <stdio.h>
#include <string.h>

int fputc(int ch, FILE *f)
{
    DL_UART_transmitDataBlocking(UART_0_INST, ch);
    return (ch);
}

int fputs(const char* restrict s, FILE* restrict stream) 
{
    uint16_t i,len;

    len = strlen(s);
    for(i=0;i<len;i++)
    {
        DL_UART_transmitDataBlocking(UART_0_INST, s[i]);
    }
    return len;
}

int puts(const char* _ptr)
{
    int count = fputs(_ptr,stdout);
    count += fputs("\n",stdout);
    return count;
}



int main(void)
{
    SYSCFG_DL_init();

    while (1) 
    {
        delay_cycles(DELAY);
        DL_GPIO_togglePins(GPIO_GRP_0_PORT,  GPIO_GRP_0_PIN_0_PIN);      

        //DL_UART_Main_transmitData(UART0, 'a');
        printf("%d\r\n", cnt++);        
    }
}
반응형