본문 바로가기

Nordic/nRF51

[nRF51822 xBee EVM] 기본동작테스트 - UART 테스트(IAR)

[nRF51822 XBEE EVM] 보드의 UART는 IO0(RXD), IO1(TXD)에 할당 되어 있다. nRF5x ARDUINO 기본 할당 핀맵에 맞도록 설계 했다.

 

nRF5 SDK의 /examples/peripheral/uart 폴더에 예제 코드를 이용하여 테스트 해 보았다.

 

우선 핀정의 파일을 보드에 맞도록 수정 한다.

/components/boards/pca10028.h
//#define RX_PIN_NUMBER  2
//#define TX_PIN_NUMBER  3

#define RX_PIN_NUMBER  0
#define TX_PIN_NUMBER  1

 

 

기본 예제 소스코드는 UART 에코 테스트 코드로 문제 없이 잘 동작 한다.

int main(void)
{
    uint32_t err_code;

    bsp_board_leds_init();

    const app_uart_comm_params_t comm_params =
      {
          RX_PIN_NUMBER,
          TX_PIN_NUMBER,
          RTS_PIN_NUMBER,
          CTS_PIN_NUMBER,
          APP_UART_FLOW_CONTROL_ENABLED,
          false,
          UART_BAUDRATE_BAUDRATE_Baud115200
      };

    APP_UART_FIFO_INIT(&comm_params,
                         UART_RX_BUF_SIZE,
                         UART_TX_BUF_SIZE,
                         uart_error_handle,
                         APP_IRQ_PRIORITY_LOWEST,
                         err_code);

    APP_ERROR_CHECK(err_code);

#ifndef ENABLE_LOOPBACK_TEST
    printf("\r\nStart: \r\n");

    while (true)
    {
        uint8_t cr;
        while (app_uart_get(&cr) != NRF_SUCCESS);
        while (app_uart_put(cr) != NRF_SUCCESS);

        if (cr == 'q' || cr == 'Q')
        {
            printf(" \r\nExit!\r\n");

            while (true)
            {
                // Do nothing.
            }
        }
    }
반응형