본문 바로가기
임베디드.일렉트로닉스/nRF52

nRF52 . BLE . 연속 advertising . fatal error

by i.got.it 2023. 1. 29.

 

 

fatal error 발생 상황 . 

 

nRF5 SDK 버전 : 17.1.0 의 예제 코드 : nRF5_SDK_17.1.0_ddde560\examples\ble_peripheral\ble_app_uart\pca10056\s140

 

상기 예제 코드의 main.c 에서 advertising 시간 설정이 3분(180초) 으로 기본 설정되어있다. 

 

#define APP_ADV_DURATION                18000 // unit 100msec. 

 

즉, advertising 시작하고 3분 동안 BLE connection 없는 경우 advertising 중지하게 된다. 

 

advertising 중지없이 연속으로 하려면 상기 parameter 값을 0으로 설정하면 되는데, 예제 코드에서는 0으로 설정하고 실행해보면 fatal error 발생한다. 

 

 

원인 

 

예제코드의 advertising 설정 함수 인 advertising_init ( , , ) 내부의 init.advdata.flags 설정한 값이 fatal error 일으키는 원인 지점. 


static void advertising_init( ble_uuid_t * p_adv_uuids, uint8_t ui8_num_uuid)
{
 .. 중략
    init.advdata.flags              = BLE_GAP_ADV_FLAGS_LE_ONLY_LIMITED_DISC_MODE;
 .. 중략
}

 

해결책.

설정값을 BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE  으로 변경하면 연속 advertising ( #define APP_ADV_DURATION  0) 이든 180초 시간 설정( #define APP_ADV_DURATION  18000 )  이든 모두 정상 작동한다. 

 

 

기타. 

본 예제 에서 뿐만 아니라 nRF5 SDK 기반 BLE 연속 advertising 설정하려면 위의 설정 처럼 해줘야 함. 

 

 

 

 

 

 

 

포럼 관련글. 

continuous advertising 으로 검색된 글 들 중에서 유용한 정보  

https://devzone.nordicsemi.com/f/nordic-q-a/79685/ble_app_uart-continuous-advertise

 

 

 

연관 

 

 

STM32. nRF52. ESP32. EFM8. EFM32. PSoC 활용 정리.

STM32. nRF52. ESP32. EFM8. EFM32. PSoC 총정리 제조사 칩 주요특징 실리콘랩 8bit MCU EFM8 시리즈 32bit EFM32 시리즈 EFM8 싸다. STM STM32 . 최고 항상 만족. Cypress pSoC pSoC6 은 기대해볼만. NORDIC nRF52 블투 무선솔루

igotit.tistory.com


첫 등록 : 2023.01.29 

최종 수정 : 

단축 주소 : https://igotit.tistory.com/4204


 

 

댓글



 

비트코인




암호화폐       외환/나스닥/골드         암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)         프랍 트레이더 온라인 지원가능. MT4,MT5