안녕하세요 공돌이는공돌공돌 입니다.
Nordic 사의 nRF51822을 이용해 간단한 프로그램을 하나 짜려고 합니다.
개발환경은 아래 Nordic Devzone에 자세히 나와 있으니 참고 하시면 됩니다.
https://devzone.nordicsemi.com/tutorials/2/
Base 예제는 ble_app_uart를 사용하였으며, 아래 링크에 설명이 나와 있습니다.
프로그램의 컨셉은 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이 변경 된 것을 확인 할 수 있습니다.
프로젝트도 첨부 했으니 이외의 설정도 참고 해 보시기 바랍니다.
'공돌 이야기' 카테고리의 다른 글
온습도 센서 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 |