예제 소스를 실행하면 pc에서 데이터를 전송할때 데이터 마지막에 \n 문자가 들어가서나 20바이트 이상 보내야지만 휴대폰에 출력된다.
1바이트씩 통신하기 위해서는 아래와 같이 수정하면 된다.
main.c를 열어보면
void uart_event_handle(app_uart_evt_t * p_event) 함수가 존재한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | case APP_UART_DATA_READY: UNUSED_VARIABLE(app_uart_get(&data_array[index])); index++; if ((data_array[index - 1] == '\n') || (index >= (BLE_NUS_MAX_DATA_LEN))) { err_code = ble_nus_string_send(&m_nus, data_array, index); if (err_code != NRF_ERROR_INVALID_STATE) { APP_ERROR_CHECK(err_code); } index = 0; } break; | cs |
위 부분을 아래 처럼 변경하면 1 바이트씩 통신되는것을 확인할수 있다.
1 2 3 4 5 6 7 8 9 10 | case APP_UART_DATA_READY: UNUSED_VARIABLE(app_uart_get(&data_array[0])); err_code = ble_nus_string_send(&m_nus, data_array, 1); if (err_code != NRF_ERROR_INVALID_STATE) { APP_ERROR_CHECK(err_code); } break; | cs |
하지만 이렇게 바꾸면 8 바이트 이상 한번에 전송하면 블루투스 연결이 끊어지는 문제점이 발생한다.
왜 이런 현상이 발생하는지는 확인하지 못했지만 나중에라고 말게되면 글을 수정하겠다.
'Programing > Nordic(BLE)' 카테고리의 다른 글
nrf51 시리즈 개발환경 구축 (0) | 2016.01.10 |
---|---|
LED 인티케이터 동작시 다른 LED가 꺼지는 현상 (0) | 2016.01.09 |
ble_app_uart 인디케이터 LED 설정 변경 (0) | 2015.09.24 |
시중에 판매중인 모듈 사용하기 (0) | 2015.09.23 |
외부 인터럽트 & 타이머 인터럽트를 이용한 롱버튼 구현 (1) | 2015.05.25 |