[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.
}
}
}
반응형