欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
基于NRF52832的低功耗藍牙手環(huán)門鎖的設(shè)計方案
[打印本頁]
作者:
樺的木
時間:
2019-9-7 11:40
標題:
基于NRF52832的低功耗藍牙手環(huán)門鎖的設(shè)計方案
八月的時候做的一個單子,是用NRF52832芯片做一個門鎖以識別到手環(huán)等廣播藍牙設(shè)備的MAC地址,進行分析后判斷開鎖任務(wù),由于他們提出的要求中對于功耗的要求較高,四個南孚電池要帶電機工作半年以上,于是就加入了睡眠和睡眠喚醒系統(tǒng)。代碼以下:
int main(void)
{
NRF_POWER->DCDCEN = 1;
nrf_gpio_cfg_default(O1);
nrf_gpio_cfg_default(K1);
log_init();
timers_init();
//buttons_init();
power_management_init();
ble_stack_init();
gap_params_init();
gatt_init();
advertising_init();
services_init();
conn_params_init();
control_set();
NRF_LOG_INFO("Template example started.");
//advertising_start();
scan_start();
while(true)
{
idle_state_handle();
nrf_delay_ms(5000);
<div class="blockcode"><blockquote>nrf_gpio_cfg_sense_input(BUTTON_1, NRF_GPIO_PIN_PULLUP, NRF_GPIO_PIN_SENSE_HIGH);
復(fù)制代碼
nrf_gpio_cfg_default(INTA);
nrf_gpio_cfg_default(INTB);
//nrf_gpio_cfg_default(LED1);
nrf_gpio_cfg_default(LED2);
nrf_gpio_cfg_default(beep);
app_timer_stop_all();
//nrf_gpio_cfg_default(BUTTON_1);
NRF_POWER->SYSTEMOFF = 1;
}
}
上述的代碼中,較為重要的是設(shè)置
BUTTON_1為喚醒口:
nrf_gpio_cfg_sense_input(BUTTON_1, NRF_GPIO_PIN_PULLUP, NRF_GPIO_PIN_SENSE_HIGH);
復(fù)制代碼
該函數(shù)可以配置低電平喚醒,高電平喚醒,高電平之后低電平喚醒
之后使用
NRF_POWER->SYSTEMOFF = 1;
復(fù)制代碼
使得單片機進入睡眠。
下面是藍牙事件的核心:
case BLE_GAP_EVT_ADV_REPORT:
if (p_adv_report->type.scan_response&&p_adv_report->rssi>-35)
{
NRF_LOG_INFO(" peer_addr = %02x %02x %02x %02x %02x %02x\r\n", p_adv_report->peer_addr.addr[5],p_adv_report->peer_addr.addr[4],p_adv_report->peer_addr.addr[3],p_adv_report->peer_addr.addr[2],p_adv_report->peer_addr.addr[1],p_adv_report->peer_addr.addr[0] );
NRF_LOG_INFO(" p_gap_evt->params.adv_report.rssi = %d\r\n", p_adv_report->rssi );
send_deta_band[0]=-p_adv_report->rssi;
send_deta_band[1]=p_adv_report->peer_addr.addr[5];
send_deta_band[2]=p_adv_report->peer_addr.addr[4];
send_deta_band[3]=p_adv_report->peer_addr.addr[3];
send_deta_band[4]=p_adv_report->peer_addr.addr[2];
send_deta_band[5]=p_adv_report->peer_addr.addr[1];
send_deta_band[6]=p_adv_report->peer_addr.addr[0];
//uint8_t my_adv_manuf_data[5] = {0xDE,0x02,0x03,0x04,0x05};
send_deta_band_1[5]=send_deta_band[1];
send_deta_band_1[4]=send_deta_band[2];
send_deta_band_1[3]=send_deta_band[3];
send_deta_band_1[2]=send_deta_band[4];
send_deta_band_1[1]=send_deta_band[5];
send_deta_band_1[0]=send_deta_band[6];
sd_ble_gap_adv_stop(m_advertising.adv_handle);
//advertising_init();
//advertising_start();
beep_start();
beep_stop();
control_right();
nrf_delay_ms(30);
control_stop();
nrf_delay_ms(10);
led_start();
//nrf_delay_ms(10);
advertising_init();
advertising_start();
nrf_delay_ms(2000);
control_left();
nrf_delay_ms(30);
control_stop();
//application_timers_start1();
// application_timers_start();
//advertising_start();
}
sd_ble_gap_scan_start(NULL, &m_scan_buffer);
break;
復(fù)制代碼
app.rar
2019-9-7 11:37 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
7.5 KB, 下載次數(shù): 66, 下載積分: 黑幣 -5
作者:
blueskyl
時間:
2020-12-7 09:12
謝謝!正在學(xué)習(xí)中
作者:
onono
時間:
2021-3-17 08:20
感謝分享,有沒sdk_config配置的教程呢。
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1