안녕하세요 공돌이는공돌공돌 입니다.

 

Nordic 사의 nRF51822을 이용해 간단한 프로그램을 하나 짜려고 합니다.

 

개발환경은 아래 Nordic Devzone에 자세히 나와 있으니 참고 하시면 됩니다.

https://devzone.nordicsemi.com/tutorials/2/

 

Base 예제는 ble_app_uart를 사용하였으며, 아래 링크에 설명이 나와 있습니다.

http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk51.v10.0.0/ble_sdk_app_nus_eval.html?cp=5_0_1_4_2_2_18

 

프로그램의 컨셉은 Keyboard 입력을 통해 Advertising의 Device Name을 입력하고, Button3을 누른 후 Reset을 하면 Device Name이 지워져 다시 입력 할 수 있는 형태의 프로그램입니다.

 

 

1. main 문

 

 

위 그림에서 네모 박스 부분이 추가한 부분입니다. sd function을 사용하기 위해서는 반드시 ble_statck_init을 해야하기 때문에, 위와 같이 배치를 하였습니다.

 

2. check_button

단순히 Button3이 눌러져 있으면 Device Name이 저장되어 있는 Flash Page를 지우고 Reset을 하는 형태로 되어 있습니다.

 

3. check_device_name

 

Device Name이 저장되어있는 영역이 비워 있으면 flag를 false로 한 뒤, 무한 루프 대기 합니다. 무한 루프 대기중에 UART Interrupt를 통해 Device Name을 입력 받을 수 있습니다.

 

4. uart_event_handle

 

flag가 false인 경우, Line Feed나 Device Name 길이가 꽉 찰 때까지 입력을 받고 그 Data를 Device Name Flash 영역에 저장합니다.

 

Test

 

 

터미널을 이용하여 Device Name을 입력 후, 스마트폰의 BLE Scan App을 이용하여 확인 하면 Device Name이 변경 된 것을 확인 할 수 있습니다.

 

프로젝트도 첨부 했으니 이외의 설정도 참고 해 보시기 바랍니다.

ble_app_uart_device_name.zip

 

 

'공돌 이야기' 카테고리의 다른 글

온습도 센서 DHT11 사용기  (0) 2016.09.06
Cortex M4에서 Json format 사용하기  (0) 2016.08.31
BLE to Ethernet  (0) 2016.08.05
IoT에 관한 생각  (0) 2016.06.13
Wiznet W7500으로 ARM Cortex-M0 MCU 완전정복 강의 후기  (0) 2016.06.13
블로그 이미지

공돌이는공돌공돌

,