ESP 32 블 루 투 스 모듈 초기 분석

3077 단어 esp32
1. 지식 비축
    블 루 투 스 개발 의 가장 중요 한 조건 은 블 루 투 스 의 확률, 협의 와 절 차 를 기본적으로 파악 하 는 것 이다.개발 내용 은 대동소이 하 다.
    추천 글:
    a. 블 루 투 스 개념 소개, 개발 의 기본 절차
    https://blog.csdn.net/changyourmind/article/details/60137061
    b. 블 루 투 스 핵심 기술 개술 (1): 블 루 투 스 개술
    http://blog.csdn.net/xubin341719/article/details/38145507
    c. 블 루 투 스 핵심 기술 개술 (2): 블 루 투 스 사용 장면
    http://blog.csdn.net/xubin341719/article/details/38228705
    d. 블 루 투 스 핵심 기술 개술 (3): 블 루 투 스 협의 규범 (무선 주파수, 베이스밴드 링크 제어, 링크 관리)
    http://blog.csdn.net/xubin341719/article/details/38303881
    e. 블 루 투 스 핵심 기술 개요 (4): 블 루 투 스 프로 토 콜 규범 (HCI, L2CAP, SDP, RFOCMM)
   http://blog.csdn.net/xubin341719/article/details/38305331
    f. 블 루 투 스 핵심 기술 개술 (5): 블 루 투 스 프로 토 콜 규범 (irOBEX, BNEP, AVDTP, AVCTP) 
    http://blog.csdn.net/xubin341719/article/details/38335533
2. 블 루 투 스 초기 화
    A2DP (Advanced Audio Distribution Profile 블 루 투 스 오디 오 전송 모델 협정) 사용 초기 화 만 소개 하고 구체 적 으로 는 낙 흠 의 공식 문서 에서 볼 수 있다.http://esp-idf.readthedocs.io/en/latest/get-started/index.html
    기본적으로 esp - idf / examples / bluetooth / a2dpsink 의 예제 코드 가 수정 되 었 습 니 다. 대부분 변경 되 지 않 았 습 니 다.   
void init()
{
    esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT();
    if (esp_bt_controller_init(&bt_cfg) != ESP_OK) {
        ESP_LOGE(BT_AV_TAG, "%s initialize controller failed
", __func__);         return;     }     if (esp_bt_controller_enable(ESP_BT_MODE_BTDM) != ESP_OK) {         ESP_LOGE(BT_AV_TAG, "%s enable controller failed
", __func__);         return;     }     if (esp_bluedroid_init() != ESP_OK) {         ESP_LOGE(BT_AV_TAG, "%s initialize bluedroid failed
", __func__);         return;     }     if (esp_bluedroid_enable() != ESP_OK) {         ESP_LOGE(BT_AV_TAG, "%s enable bluedroid failed
", __func__);         return;     }     /* create application task */     bt_app_task_start_up();     /* Bluetooth device name, connection mode and profile set up */     bt_app_work_dispatch(bt_av_hdl_stack_evt, BT_APP_EVT_STACK_UP, NULL, 0, NULL); } static void bt_av_hdl_stack_evt(uint16_t event, void *p_param) { ESP_LOGD(BT_AV_TAG, "%s evt %d", __func__, event); switch (event) { case BT_APP_EVT_STACK_UP: { /* set up device name */ char *dev_name = "ESP_SPEAKER"; esp_bt_dev_set_device_name(dev_name); /* initialize A2DP sink */ esp_a2d_register_callback(&bt_app_a2d_cb); esp_a2d_register_data_callback(bt_app_a2d_data_cb); esp_a2d_sink_init(); /* initialize AVRCP controller */ esp_avrc_ct_init(); esp_avrc_ct_register_callback(bt_app_rc_ct_cb); /* set discoverable and connectable mode, wait to be connected */ esp_bt_gap_set_scan_mode(ESP_BT_SCAN_MODE_CONNECTABLE_DISCOVERABLE); break; } default: ESP_LOGE(BT_AV_TAG, "%s unhandled evt %d", __func__, event); break; } }

 

좋은 웹페이지 즐겨찾기