亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

BK3432低功耗藍(lán)牙開發(fā)實(shí)戰(zhàn):從環(huán)境搭建到產(chǎn)品化

BK3432低功耗藍(lán)牙開發(fā)實(shí)戰(zhàn):從環(huán)境搭建到產(chǎn)品化 1. 項(xiàng)目概述與核心需求解析1.1 為什么偏偏是BK3432做藍(lán)牙開發(fā)這些年我接觸過不少芯片方案從早期的HC-05、HC-06這類串口透傳模塊到后來的ESP32、nRF52832再到杰理、泰凌微這些國產(chǎn)方案各有各的脾氣。但BK3432這顆芯片是我個(gè)人認(rèn)為在“低成本經(jīng)典藍(lán)牙方案”里非常值得花時(shí)間研究的一顆。BK3432是上海博通集成Beken Corporation推出的一款低功耗藍(lán)牙IC主打BLE 4.2協(xié)議棧同時(shí)兼容經(jīng)典藍(lán)牙SPP串口透傳模式。在市面上大量藍(lán)牙水控器、藍(lán)牙臺秤、藍(lán)牙像素屏、藍(lán)牙充電倉、藍(lán)牙手柄等產(chǎn)品里你都能看到它的影子。最關(guān)鍵的是這顆芯片的價(jià)格非常有競爭力批量拿貨單價(jià)可以壓到幾塊錢人民幣級別這在產(chǎn)品量產(chǎn)時(shí)是巨大的優(yōu)勢。這顆芯片最吸引我的點(diǎn)在于它內(nèi)置了ARM968E內(nèi)核主頻最高可以跑到96MHzRAM有64KBFlash有128KB??赡苡腥藭X得這個(gè)配置對比ESP32、nRF52840這些“大塊頭”顯得寒酸但實(shí)際上對于做BLE透傳、傳感器數(shù)據(jù)上報(bào)、簡單遙控器、水控設(shè)備這類應(yīng)用來說這配置完全夠用而且功耗表現(xiàn)相當(dāng)不錯(cuò)。休眠電流可以做到微安級別這對電池供電的IoT設(shè)備來說太重要了。1.2 這篇博文能幫你解決什么問題網(wǎng)上關(guān)于BK3432的中文資料其實(shí)不少但大部分都比較零散要么是芯片datasheet的翻譯片段要么是某個(gè)具體功能的討論帖要么是代理商給的Demo代碼注釋。很少有人把這顆芯片從“怎么搭環(huán)境”到“怎么上手寫代碼”再到“怎么調(diào)試排坑”完整串起來講一遍。我這篇博文想做的就是這件事。我會以一個(gè)實(shí)際做項(xiàng)目的視角把BK3432的開發(fā)流程從頭捋一遍包括開發(fā)環(huán)境的搭建、燒錄工具的選擇SDK整體架構(gòu)、協(xié)議棧和驅(qū)動層的分工GPIO、UART、ADC這幾個(gè)最常用外設(shè)的編程要點(diǎn)藍(lán)牙廣播、掃描、連接、數(shù)據(jù)傳輸?shù)耐暾鞒膛鋵壎ā⒐膬?yōu)化、量產(chǎn)燒錄這些產(chǎn)品化必須面對的問題實(shí)際調(diào)試中經(jīng)常踩的坑和排查思路無論你是剛接觸這顆芯片想快速上手的新手還是已經(jīng)在用BK3432但卡在某個(gè)具體環(huán)節(jié)的老手這篇內(nèi)容應(yīng)該都能給你一些參考。我盡量把話說得直白少一些教科書式的繞彎子多一些實(shí)際跑過代碼、焊過板子、抓過包之后才有的經(jīng)驗(yàn)。2. 開發(fā)環(huán)境搭建與工具鏈詳解2.1 硬件準(zhǔn)備你需要哪些東西開始寫代碼之前先把硬件準(zhǔn)備齊。我建議的清單如下硬件/工具說明注意事項(xiàng)BK3432模組或自繪板推薦先買現(xiàn)成模組留意模組引腳是否全部引出USB轉(zhuǎn)TTL模塊CH340/CP2102均可必須有3.3V電平嚴(yán)禁用5VJ-Link或CMSIS-DAP調(diào)試器可選但強(qiáng)烈建議單步調(diào)試非常有用穩(wěn)壓電源或電池3.0~3.6VBK3432工作電壓范圍注意別超邏輯分析儀建議8通道以上分析UART時(shí)序極好用BLE抓包工具nRF Sniffer或兼容硬件排查藍(lán)牙協(xié)議問題必備我第一次用BK3432的時(shí)候偷懶直接用5V的USB轉(zhuǎn)TTL去接模組的UART引腳結(jié)果燒了好幾塊板子才反應(yīng)過來是電平不匹配。BK3432的IO口不是5V容忍的電平轉(zhuǎn)換這件事千萬別省。2.2 下載SDK與Keil工程配置BK3432的SDK博通官方有發(fā)布代理商一般也會提供。拿到SDK之后第一件事不是急著編譯先把目錄結(jié)構(gòu)看明白。我用的SDK版本目錄結(jié)構(gòu)大致是這樣的BK3432_SDK/ ├── apps/ │ ├── bk3432/ │ │ ├── src/ │ │ ├── include/ │ │ └── project/ │ └── ... ├── drivers/ ├── protocols/ │ ├── ble/ │ └── ... ├── platforms/ │ └── ... └── tools/開發(fā)環(huán)境用的是Keil MDK我用的是Keil 5.36版本編譯ARM968E內(nèi)核沒問題。老版本的Keil可能也能編譯但我在5.24版本上遇到過一些莫名其妙的編譯錯(cuò)誤升級到5.36之后問題消失所以建議直接裝新版。打開工程文件通常后綴是.uvprojx先別急著編譯檢查一下Target Options里的幾個(gè)關(guān)鍵配置Device選擇確認(rèn)選擇的是ARM968E-S內(nèi)核的對應(yīng)設(shè)備。有些SDK版本可能默認(rèn)選的別的芯片會導(dǎo)致鏈接錯(cuò)誤或者啟動文件不匹配。Flash Download燒錄算法是否正確。BK3432內(nèi)部Flash燒錄需要專用的Flash算法文件SDK的tools目錄下一般有。如果沒有可以用J-Link的通用燒錄方式但需要確保地址映射正確。優(yōu)化等級Debug階段建議選-O0或者-O1Release再上-O2。我在-O2下遇到過變量被優(yōu)化掉導(dǎo)致邏輯錯(cuò)亂的情況排查了整整一天。2.3 燒錄工具的選用與配置BK3432的燒錄方式主要有兩種串口燒錄和J-Link SWD燒錄。串口燒錄是最簡單的。模組一般會保留一個(gè)燒錄引腳通常是EN或者BOOT引腳上電時(shí)拉低這個(gè)引腳芯片就會進(jìn)入燒錄模式。然后用串口工具比如Python腳本或者廠商提供的燒錄工具把編譯好的固件發(fā)過去。這種方式適合生產(chǎn)階段的批量燒錄成本最低。J-Link SWD燒錄則更適合開發(fā)調(diào)試階段。接線方式很簡單SWDIO、SWCLK、GND、VCC供電四根線。如果板子上的SWD引腳沒有引出那只能靠串口燒錄所以畫板的時(shí)候一定記得把SWD測試點(diǎn)留出來別省這幾個(gè)焊盤。我第一次畫板子就忘了引SWD引腳后面調(diào)試全靠串口打印看代碼執(zhí)行流程只能用笨辦法——在關(guān)鍵位置加打印。后來換了第二版板子把SWD引出來了配合J-Link單步調(diào)試效率至少翻倍。3. SDK架構(gòu)分析與藍(lán)牙協(xié)議棧解讀3.1 BK3432的軟件分層結(jié)構(gòu)BK3432的SDK架構(gòu)延續(xù)了嵌入式BLE芯片的經(jīng)典分層方式大致可以分為四層應(yīng)用層App你的業(yè)務(wù)邏輯所在位置。比如水控器的計(jì)費(fèi)邏輯、臺秤的稱重?cái)?shù)據(jù)上報(bào)邏輯、像素屏的顯示刷新邏輯都在這層。協(xié)議棧層BLE Protocol Stack負(fù)責(zé)處理藍(lán)牙鏈路層的連接管理、廣播、配對、加密等。這一層通常是庫的形式提供不需要你修改內(nèi)部代碼但你需要調(diào)用它的API。驅(qū)動層Driver封裝了芯片內(nèi)部外設(shè)的寄存器操作包括GPIO、UART、SPI、I2C、ADC、PWM、定時(shí)器等。平臺層Platform與芯片啟動、時(shí)鐘配置、中斷向量、電源管理相關(guān)的基礎(chǔ)代碼。理解這個(gè)分層的意義在于你寫應(yīng)用的時(shí)候基本上只跟App層和Driver層打交道但如果遇到連接不穩(wěn)定、功耗異常這類問題就要往協(xié)議棧層和平臺層去排查。3.2 BLE協(xié)議棧的工作機(jī)制BLE協(xié)議棧對很多新手來說是個(gè)黑盒我拿生活化的方式解釋一下。想象你站在一個(gè)熱鬧的廣場上想找你的朋友。你手里拿著一個(gè)喇叭每隔一段時(shí)間喊一聲“我在這里我是某某”這個(gè)喊話的過程就是廣播。你的朋友聽到廣播后走過來跟你說“我看到你了我們聊聊天吧”這個(gè)過程叫掃描和連接請求。連接建立之后你們倆就可以嘀嘀咕咕地聊具體的事了這就是數(shù)據(jù)傳輸。在BLE的世界里廣播包和掃描響應(yīng)的內(nèi)容是有固定格式的就像喇叭里喊話的內(nèi)容也有一些規(guī)范。BK3432的SDK里廣播數(shù)據(jù)的配置是通過填充一個(gè)結(jié)構(gòu)體來完成的struct bk_ble_gap_adv_param { uint16_t adv_int_min; // 廣播間隔最小值單位0.625ms uint16_t adv_int_max; // 廣播間隔最大值單位0.625ms uint8_t adv_type; // 廣播類型可連接廣播、不可連接廣播等 uint8_t channel_map; // 廣播信道37/38/39三個(gè)信道 uint8_t filter_policy; // 過濾策略 };這里有個(gè)關(guān)鍵參數(shù)廣播間隔。廣播間隔越短設(shè)備被發(fā)現(xiàn)的速度越快但功耗越高。如果你做的是需要快速配網(wǎng)或者連接的產(chǎn)品可以把廣播間隔設(shè)在30ms左右如果是長時(shí)間廣播等待連接的場景比如防丟器可以把這個(gè)間隔拉到500ms以上能顯著降低平均功耗。3.3 GATT與數(shù)據(jù)傳輸機(jī)制BLE的核心通信模型是GATT通用屬性協(xié)議。簡單來說GATT協(xié)議把數(shù)據(jù)抽象成一種“屬性表”的結(jié)構(gòu)Service服務(wù)相當(dāng)于一個(gè)功能模塊。比如電量服務(wù)、設(shè)備信息服務(wù)、自定義數(shù)據(jù)傳輸服務(wù)。Characteristic特征服務(wù)里面具體的可讀寫屬性一個(gè)服務(wù)可以包含多個(gè)特征。UUID每個(gè)服務(wù)和特征都有一個(gè)唯一標(biāo)識符。標(biāo)準(zhǔn)服務(wù)用16位UUID自定義服務(wù)用128位UUID。在BK3432的SDK中GATT服務(wù)的注冊過程一般是先定義一個(gè)服務(wù)表然后調(diào)用協(xié)議棧API注冊const struct bk_ble_gatt_service service_table[] { { .type PRIMARY_SERVICE, .uuid GATT_UUID_DEVICE_INFO, }, { .type CHARACTERISTIC, .uuid CHAR_UUID_MANUFACTURER_NAME, .properties GATT_CHAR_PROP_READ, }, // ... 更多服務(wù)和特征定義 };很多人在剛接觸GATT的時(shí)候會犯一個(gè)錯(cuò)把若干個(gè)數(shù)據(jù)打包到一個(gè)特征里然后頻繁地寫這個(gè)特征。雖然BLE協(xié)議本身支持這種操作但效率很低而且需要處理MTU最大傳輸單元的限制。BK3432上默認(rèn)的MTU是23字節(jié)其中有效載荷只有20字節(jié)。如果你要傳大數(shù)據(jù)比如像素屏的一幀圖像需要用Notification方式配合分包發(fā)送或者協(xié)商更大的MTUBK3432支持MTU協(xié)商但需要協(xié)議棧和應(yīng)用配合。4. 常用外設(shè)驅(qū)動開發(fā)要點(diǎn)4.1 GPIO編程與中斷GPIO是嵌入式開發(fā)最基礎(chǔ)的接口BK3432的GPIO編程思路和大部分ARM芯片相似// 配置PD2為輸出模式 bk_gpio_config(GPIO_PD2, GPIO_OUTPUT); bk_gpio_set(GPIO_PD2, 1); // 輸出高電平 bk_gpio_set(GPIO_PD2, 0); // 輸出低電平不過BK3432的GPIO有一個(gè)坑部分引腳復(fù)用功能比較多。比如某個(gè)引腳既可以當(dāng)作UART的TX也可以當(dāng)作PWM的輸出還可以當(dāng)作ADC的輸入通道。在配置外設(shè)功能之前一定要確認(rèn)這個(gè)引腳沒有被其他初始化代碼占用否則就會出現(xiàn)“UART怎么發(fā)不出數(shù)據(jù)”的問題。GPIO中斷的配置也不復(fù)雜bk_gpio_config(GPIO_PA1, GPIO_INPUT); bk_gpio_set_irq(GPIO_PA1, GPIO_IRQ_FALLING_EDGE, my_irq_handler);我踩過的一個(gè)坑是沒有配置內(nèi)部上拉/下拉電阻導(dǎo)致懸空引腳在臨界電壓附近抖動中斷被反復(fù)觸發(fā)。BK3432的GPIO內(nèi)部有弱上拉/下拉電阻配置的時(shí)候記得根據(jù)外部電路選擇合適的模式。4.2 UART串口通信的配置與調(diào)試UART是BK3432調(diào)試和透傳的核心接口。配置UART的步驟一般是使能UART時(shí)鐘配置引腳復(fù)用設(shè)置波特率、數(shù)據(jù)位、停止位、校驗(yàn)位使能UART及其中斷BK3432的UART波特率最高可以跑到1Mbps以上但實(shí)際使用中如果走線較長或者電平轉(zhuǎn)換芯片質(zhì)量一般建議控制在115200或者460800穩(wěn)定優(yōu)先。到這里我得說一個(gè)血淚教訓(xùn)有一次我在一個(gè)項(xiàng)目里把UART的TX接到了另一個(gè)芯片的TX兩個(gè)輸出對接結(jié)果兩邊都在發(fā)數(shù)據(jù)互相干擾調(diào)試信息完全亂掉。后來查了電路圖才發(fā)現(xiàn)是接反了。用萬用表量一下引腳電平對比協(xié)議規(guī)定的空閑電平這個(gè)習(xí)慣非常有用。4.3 ADC驅(qū)動的具體實(shí)現(xiàn)與校準(zhǔn)BK3432的ADC驅(qū)動在網(wǎng)絡(luò)熱搜詞里被重點(diǎn)關(guān)注也確實(shí)是個(gè)高頻使用的功能模塊。如果你要做電池電量檢測、傳感器數(shù)據(jù)采集、觸摸按鍵檢測等都離不開ADC。BK3432的ADC支持多通道采樣精度是16位的硬件上是SAR型ADC。我以最典型的“讀取電池電壓”為例把開發(fā)過程拆解一下// 1. 初始化ADC選擇通道 void adc_init_for_battery(void) { bk_adc_config_t adc_cfg; adc_cfg.channel ADC_CHANNEL_0; // 根據(jù)硬件連接選擇對應(yīng)通道 adc_cfg.sample_rate ADC_SAMPLE_RATE_10K; // 采樣率 adc_cfg.mode ADC_MODE_SINGLE; // 單次轉(zhuǎn)換模式 adc_cfg.vref ADC_VREF_3V3; // 參考電壓 bk_adc_init(adc_cfg); } // 2. 讀取轉(zhuǎn)換結(jié)果 uint16_t read_battery_voltage(void) { uint32_t adc_val 0; uint16_t voltage_mv 0; uint32_t vref_mv 3300; uint32_t max_adc 65535; // 16位ADC滿量程 adc_val bk_adc_read_single_channel(ADC_CHANNEL_0); voltage_mv (uint32_t)((adc_val * vref_mv) / max_adc); return (uint16_t)voltage_mv; }ADC的校準(zhǔn)是個(gè)容易忽略的細(xì)節(jié)。由于參考電壓的偏差、ADC本身的失調(diào)和增益誤差直接算出來的電壓值往往有幾十上百毫伏的偏差。在實(shí)際項(xiàng)目中我通常用兩個(gè)參考點(diǎn)做線性校準(zhǔn)用精密穩(wěn)壓電源給ADC輸入一個(gè)已知電壓比如1.0V記錄ADC原始值。再給一個(gè)另一個(gè)已知電壓比如3.0V記錄ADC原始值。用這兩組數(shù)據(jù)算出增益和偏移寫入Flash存儲之后每次采樣都做校正。這個(gè)校準(zhǔn)方法適用于大多數(shù)內(nèi)置ADC的藍(lán)牙芯片不光BK3432。4.4 PWM與定時(shí)器PWM在BK3432上主要用于LED調(diào)光、蜂鳴器驅(qū)動、電機(jī)調(diào)速等場景。配置PWM其實(shí)不復(fù)雜關(guān)鍵是頻率和占空比的匹配// 配置PWM通道0頻率1kHz占空比50% bk_pwm_init(PWM_CH0, 1000, 50); bk_pwm_start(PWM_CH0);如果你要驅(qū)動蜂鳴器發(fā)出不同音調(diào)只需要動態(tài)修改頻率參數(shù)即可。但要注意不同PWM通道可能共用某個(gè)定時(shí)器的時(shí)鐘源使用前需要確認(rèn)時(shí)鐘樹配置否則可能改了通道1的頻率把通道2也帶偏了。5. 藍(lán)牙核心功能開發(fā)實(shí)操5.1 廣播初始化和參數(shù)配置廣播是BLE設(shè)備的門面手機(jī)能不能看到你的設(shè)備完全取決于廣播包怎么配。BK3432上配置廣播先要填充廣播參數(shù)結(jié)構(gòu)體再填充廣播數(shù)據(jù)。設(shè)備名是必須放的但要注意廣播包總長度上限是31字節(jié)傳統(tǒng)廣播你放了設(shè)備名、服務(wù)UUID、廠商自定義數(shù)據(jù)之后容量就非常緊張了。我的習(xí)慣是優(yōu)先保證設(shè)備名和服務(wù)UUID其他廠商數(shù)據(jù)放在掃描響應(yīng)包里。// 設(shè)置廣播參數(shù) struct bk_ble_gap_adv_param adv_params; adv_params.adv_int_min 32; // 32 * 0.625ms 20ms adv_params.adv_int_max 48; // 48 * 0.625ms 30ms adv_params.adv_type ADV_TYPE_IND; adv_params.channel_map ADV_CH_ALL; adv_params.filter_policy ADV_FP_ANY; // 設(shè)置廣播數(shù)據(jù) uint8_t adv_data[] { 0x02, 0x01, 0x06, // Flag: LE General Discoverable 0x03, 0x03, 0x0F, 0x18, // Complete List of 16-bit Service UUIDs 0x05, 0x09, B, K, 3, 4 // Complete Local Name: BK34 }; bk_ble_gap_set_adv_data(adv_data, sizeof(adv_data)); bk_ble_gap_start_adv(adv_params);5.2 掃描與連接處理對于中心設(shè)備比如手機(jī)或者另一個(gè)BK3432掃描流程是啟動掃描設(shè)置掃描窗口和掃描間隔。窗口越長能捕獲廣播的概率越高間隔越大功耗越低。解析廣播結(jié)果回調(diào)函數(shù)里收到廣播地址和廣播數(shù)據(jù)按需過濾。發(fā)起連接指定目標(biāo)設(shè)備的地址和連接參數(shù)。void scan_result_handler(uint8_t *addr, uint8_t addr_type, int8_t rssi, uint8_t *adv_data, uint8_t adv_len) { // 判斷是不是我們要連接的設(shè)備 if (memcmp(addr, target_addr, 6) 0) { bk_ble_gap_connect(addr, addr_type, conn_params); bk_ble_gap_stop_scan(); } }關(guān)于藍(lán)牙測距RSSI測距這是很多做室內(nèi)定位和防丟器的開發(fā)者關(guān)心的話題。BK3432在掃描和連接狀態(tài)下能獲取RSSI值但直接用RSSI換算距離的精度往往不理想因?yàn)樯漕l環(huán)境太復(fù)雜了。如果是簡單判斷“設(shè)備在不在附近”RSSI閾值就夠了如果需要相對精確的測距建議用官方模板做路徑損耗擬合而且同一型號芯片的數(shù)據(jù)要單獨(dú)校準(zhǔn)。我在自己的項(xiàng)目里試過很多次RSSI測距在1米以內(nèi)大概有0.2~0.5米誤差5到10米范圍誤差可能擴(kuò)大到2~3米做精度要求高的產(chǎn)品要慎重。5.3 數(shù)據(jù)傳輸Notification與Write連接建立之后數(shù)據(jù)的雙向傳輸是核心。BK3432的GATT服務(wù)通常包含兩種特征Read/Write特征手機(jī)主動寫數(shù)據(jù)到設(shè)備或者設(shè)備被動等待手機(jī)來讀。Notify特征設(shè)備主動向手機(jī)推送數(shù)據(jù)。這是低功耗藍(lán)牙最常用的模式因?yàn)椴恍枰謾C(jī)反復(fù)輪詢設(shè)備有數(shù)據(jù)就往上報(bào)功耗表現(xiàn)最好。Notification的使用流程// 應(yīng)用層收到CCCD客戶端特征配置更新事件后使能通知 void gatt_cccd_update_handler(uint16_t conn_handle, uint16_t cccd) { if (cccd GATT_CCCD_NOTIFY) { notif_enabled true; } else { notif_enabled false; } } // 主動上報(bào)數(shù)據(jù) void send_data_to_phone(uint8_t *data, uint8_t len) { if (notif_enabled) { bk_ble_gatt_send_notification(conn_handle, attr_handle, data, len); } }5.4 經(jīng)典藍(lán)牙SPP模式的配置雖然BLE是BK3432的主打但很多老設(shè)備依然依賴經(jīng)典藍(lán)牙SPP串口透傳協(xié)議。BK3432對SPP的支持讓它可以無縫替換HC-05/HC-06這類經(jīng)典藍(lán)牙模塊的位置。配置SPP的關(guān)鍵點(diǎn)藍(lán)牙名字和配對碼產(chǎn)品出廠時(shí)一般會設(shè)置默認(rèn)名字比如“BK_SPP_1234”。透傳方式SPP模式就是把UART的數(shù)據(jù)直接搬到藍(lán)牙通道上反之亦然。SDK里通常有一個(gè)回調(diào)函數(shù)處理接收到的藍(lán)牙數(shù)據(jù)然后通過UART轉(zhuǎn)發(fā)出去。AT指令兼容性如果你是從HC-05遷移過來的產(chǎn)品原有AT指令格式可能需要適配。我實(shí)際測試過BK3432的AT指令風(fēng)格跟HC-05不太一樣需要在應(yīng)用層做一個(gè)指令解析兼容層。6. 實(shí)際項(xiàng)目開發(fā)流程與案例拆解6.1 項(xiàng)目準(zhǔn)備與需求分析假設(shè)我們現(xiàn)在要做一個(gè)藍(lán)牙水控器這是一個(gè)BK3432非常典型的應(yīng)用場景需求大概是手機(jī)APP通過藍(lán)牙連接水控器充值、扣費(fèi)、查詢剩余水量水控器本地記錄消費(fèi)記錄低功耗電池供電待機(jī)功耗要盡量小拿到需求之后我先拆功能功能模塊說明藍(lán)牙通信BLE連接、配對、數(shù)據(jù)交互計(jì)費(fèi)邏輯按流量計(jì)費(fèi)或按時(shí)長計(jì)費(fèi)閥門控制電磁閥的開關(guān)控制電量檢測低電量報(bào)警存儲管理消費(fèi)記錄、參數(shù)保存6.2 電路設(shè)計(jì)與模組選型自己畫板子的話BK3432的外圍電路其實(shí)不復(fù)雜晶振一般是26MHz無源晶振、電源去耦電容、RF匹配電路、天線PCB天線或外置天線。但新手不建議直接上來就畫RF部分射頻調(diào)試的坑非常深天線阻抗匹配不做好藍(lán)牙距離可能連5米都跑不滿。我自己的建議是開發(fā)階段直接用量產(chǎn)模組。市面上BK3432模組非常多價(jià)格也不貴幾十塊就能買到帶底板和調(diào)試引腳的開發(fā)板。先把代碼功能調(diào)通確認(rèn)產(chǎn)品邏輯沒問題之后再考慮畫板子做集成。這樣可以省掉大量射頻調(diào)試的時(shí)間。如果你確實(shí)要自己畫板記得參考SDK或者模組廠商的參考設(shè)計(jì)特別注意天線底下盡量不要鋪銅保持凈空區(qū)域晶體負(fù)載電容根據(jù)廠商手冊選擇電源濾波電容靠近VDD引腳放置RF走線阻抗盡量控制在50Ω6.3 代碼框架設(shè)計(jì)與模塊劃分有了需求分析和硬件選型接下來就是寫代碼。我的習(xí)慣是先搭框架再逐模塊填充app_main.c // 入口初始化各模塊 ble_service.c // BLE服務(wù)注冊、廣播、連接管理 uart_debug.c // 串口日志模塊 adc_battery.c // 電池電量采集模塊 valve_control.c // 閥門控制模塊 flash_store.c // 參數(shù)存儲和消費(fèi)記錄管理 charge_logic.c // 計(jì)費(fèi)邏輯模塊代碼框架搭好之后先跑一個(gè)最基礎(chǔ)的“BLE透傳”例程驗(yàn)證硬件和工具鏈沒問題再逐步添加業(yè)務(wù)模塊。這樣每加一個(gè)功能都能及時(shí)驗(yàn)證出了問題也容易定位。6.4 核心代碼實(shí)現(xiàn)與講解以計(jì)費(fèi)邏輯為例核心代碼大致是void charge_logic_init(void) { flash_store_init(); load_balance(); valve_control_close(); } void on_water_flow_pulse(void) { uint32_t volume read_flow_sensor(); if (balance 0) { valve_control_close(); return; } balance - calculate_cost(volume); store_balance(balance); if (balance 0) { valve_control_close(); ble_send_notify(余額不足已關(guān)閉閥門); } }實(shí)際項(xiàng)目里要注意Flash寫入次數(shù)有限不要把每次流量脈沖都寫Flash否則Flash很快寫壞。我在實(shí)際代碼中做了一個(gè)“定期存儲”策略比如每消費(fèi)0.1元才寫一次或者每分鐘批量寫一次這樣能大幅延長Flash壽命。斷點(diǎn)續(xù)傳如果設(shè)備在寫入中途斷電參數(shù)可能丟失。BK3432的Flash操作需要確保原子性可以先寫備份區(qū)再更新主區(qū)或者用雙緩沖機(jī)制。6.5 產(chǎn)品化關(guān)鍵點(diǎn)配對、量產(chǎn)與功耗優(yōu)化產(chǎn)品化過程中有幾個(gè)容易被忽略的點(diǎn)配對綁定BLE設(shè)備默認(rèn)是可廣播、可連接的但產(chǎn)品賣給用戶時(shí)你肯定不希望任何手機(jī)都能連上設(shè)備。這時(shí)候需要在協(xié)議棧里配置配對白名單或者實(shí)現(xiàn)“首次配對后記錄綁定MAC地址之后只接受這個(gè)地址的連接”。BK3432的SDK提供了配對回調(diào)接口你可以在這里做自定義策略。量產(chǎn)燒錄小批量可以用J-Link逐臺燒錄但大批量一定要用串口燒錄配合工裝夾具。生產(chǎn)工具腳本我一般用Python寫通過串口發(fā)送固件文件校驗(yàn)CRC。要注意的是每個(gè)設(shè)備的MAC地址不能相同否則多個(gè)硬件同時(shí)啟動時(shí)會出現(xiàn)地址沖突。BK3432的MAC地址默認(rèn)存在Flash的固定位置可以在量產(chǎn)時(shí)生成隨機(jī)地址寫入或者使用芯片廠預(yù)留的區(qū)域。我遇到過一次因?yàn)镸AC地址全一樣導(dǎo)致智能家居平臺無法區(qū)分設(shè)備的問題排查了好久才定位到MAC地址頭上。功耗優(yōu)化BLE設(shè)備的平均功耗 廣播/連接功耗 睡眠功耗 喚醒事件功耗。BK3432在深度睡眠模式下電流可以做到微安級別但前提是關(guān)閉所有不用的外設(shè)時(shí)鐘GPIO要設(shè)置為正確的電平狀態(tài)避免漏電用定時(shí)器或者外部中斷喚醒不用持續(xù)輪詢藍(lán)牙廣播間隔調(diào)大或者在不工作時(shí)關(guān)閉廣播7. 常見問題與排查技巧實(shí)錄7.1 編譯燒錄類問題現(xiàn)象可能原因排查方法編譯報(bào)錯(cuò)找不到頭文件工程路徑配置不對檢查Include Path是否包含SDK所有目錄燒錄報(bào)錯(cuò)Flash Download失敗Flash算法文件缺失重新加載SDK提供的FLM文件燒錄成功后程序不運(yùn)行啟動文件或鏈接腳本錯(cuò)誤檢查Target Device是否選對用J-Link查看PC指針Keil編譯內(nèi)存不足RAM或Flash溢出檢查是否開太多調(diào)試日志優(yōu)化代碼體積7.2 藍(lán)牙連接類問題手機(jī)搜不到設(shè)備先確認(rèn)廣播是否開啟用nRF Connect這類APP查看掃描結(jié)果如果沒有檢查廣播數(shù)據(jù)和廣播參數(shù)是否設(shè)置成功。再確認(rèn)設(shè)備地址有的模組有兩個(gè)地址公共地址和隨機(jī)地址手機(jī)端可能需要設(shè)置為“不過濾”才能看到??梢运训降B接不上連接參數(shù)是否合理連接間隔太短比如小于7.5ms可能導(dǎo)致連接不穩(wěn)定。是否觸發(fā)了配對流程如果設(shè)備端在配對過程中出錯(cuò)連接會被斷開。打開協(xié)議棧日志看配對失敗的具體錯(cuò)誤碼。連接后頻繁斷開檢查RSSI信號強(qiáng)度如果信號低于-80dBm可能是距離太遠(yuǎn)或天線問題。檢查電源穩(wěn)定性連接狀態(tài)下瞬時(shí)電流比較大如果電池供電不足電壓跌落可能導(dǎo)致連接斷開。我碰到過用劣質(zhì)鋰電池供電連接后設(shè)備頻繁重啟的問題換電池之后就好了。檢查連接間隔是否太短連接間隔越短設(shè)備功耗越高也越容易在干擾大的環(huán)境中斷線。7.3 UART和調(diào)試類問題UART收不到數(shù)據(jù)首先用回環(huán)測試把TX和RX短接看自發(fā)自收是否正常。如果不正常問題在UART初始化如果正常問題在外部連線或?qū)Χ嗽O(shè)備。檢查波特率配置BK3432的時(shí)鐘源誤差會影響波特率如果誤差超過2%就可能出現(xiàn)亂碼或完全收不到。檢查中斷是否開啟接收中斷沒使能就會一直收不到數(shù)據(jù)。打印日志出現(xiàn)亂碼大概率是波特率不匹配或者是發(fā)送和接收兩端的電壓不一致。也可能是日志打印頻率太高UART FIFO溢出導(dǎo)致丟數(shù)據(jù)。7.4 ADC采樣常見問題我做ADC驅(qū)動的時(shí)候踩過不少坑整理幾個(gè)典型場景ADC讀值波動大電源紋波太大可以在ADC輸入腳加一個(gè)RC低通濾波或者軟件做多次采樣取平均值。采樣時(shí)鐘配置過快導(dǎo)致轉(zhuǎn)換精度下降。BK3432的ADC采樣時(shí)鐘要根據(jù)參考手冊配置不能一味求快。ADC讀數(shù)為0或者滿量程檢查通道配置BK3432的多路ADC通道可能有不同的引腳映射確認(rèn)選對了通道。檢查參考電壓如果參考電壓沒配置好讀出來的值就完全沒有意義。用萬用表量一下輸入腳的電平排除硬件虛焊或外部電路問題。7.5 功耗異常排查功耗超標(biāo)是最難定位的問題之一我的排查思路是先測底電流把設(shè)備只供電保證藍(lán)牙不廣播、外設(shè)不工作測靜態(tài)電流。如果底電流就很高問題出在硬件設(shè)計(jì)或者某個(gè)外設(shè)沒有正常進(jìn)入睡眠。逐模塊排查依次打開藍(lán)牙廣播、啟動ADC采集、開啟UART觀察電流變化。哪個(gè)模塊電流增量異常大就往哪個(gè)模塊深入排查。GPIO漏電檢查很多電流泄漏點(diǎn)其實(shí)在GPIO上。浮空的輸入腳會因?yàn)殡娖讲淮_定而產(chǎn)生漏電流所有不用的GPIO都需要設(shè)置為輸出模式或者配置上拉/下拉。我在一個(gè)項(xiàng)目中遇到過待機(jī)電流高達(dá)2mA的問題排查了半天發(fā)現(xiàn)是某個(gè)GPIO外接的LED指示燈沒有通過三極管控制而是直接由GPIO驅(qū)動平時(shí)雖然不亮但回路一直有電流。把LED改到三極管控制之后待機(jī)電流降到了15uA以下功耗問題迎刃而解。8. 用BK3432做項(xiàng)目的一些個(gè)人體會最后聊點(diǎn)我在實(shí)際項(xiàng)目中的感受。BK3432作為一顆定位清晰的低成本BLE芯片它在物聯(lián)網(wǎng)產(chǎn)品里的生態(tài)位非常明確不追求極致性能不追求復(fù)雜應(yīng)用但求穩(wěn)定、便宜、夠用。它就像你工具箱里那把用得最順手的螺絲刀——不是最貴、不是最漂亮但干活的時(shí)候你最愿意拿起來的就是它。如果你要做的產(chǎn)品是透傳、傳感器上報(bào)、遙控、水控、表計(jì)、防丟器這類通訊數(shù)據(jù)量不大、對功耗有要求、成本敏感的硬件BK3432是很好的選擇。但如果你需要跑復(fù)雜的應(yīng)用邏輯、做本地AI推理、跑音頻編解碼那還是老老實(shí)實(shí)選ESP32、nRF52這類資源更豐富的芯片。建議新手上路的時(shí)候先拿官方Demo跑通一遍再做一個(gè)小項(xiàng)目比如藍(lán)牙溫濕度計(jì)然后回頭看這篇博文里的外設(shè)和協(xié)議棧部分會更有感覺。別一上來就扎進(jìn)代碼細(xì)節(jié)里先把芯片的數(shù)據(jù)手冊、SDK目錄結(jié)構(gòu)、燒錄方式了解清楚后面真的開發(fā)起來會順暢很多。祝你在BK3432的開發(fā)路上少踩坑多出貨。有新的心得體會也歡迎在評論區(qū)交流。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久,精品一二三| 亚洲全色网| 国产中出内射一区二区| 校园春色中文字幕AV| 亚洲色图欧美视频| 乱伦强奸区日韩| 久久鲁夜| 久热伊人99re| 中文字幕 码精品视频网站| 亚洲在线观看| 99热在线不卡| 大奶啊啊好爽| 超碰人人干| 久久精品人人做人人看| 久久久久久久久久9| 国产精品情侣啪啪| 国产999精品久久久久久| 欧美一级久久久丰满| 欧美九九九| 亚洲人妖网| 青青操青娱乐| 免费视频无码| 免费综合亚洲中文| 久久东京伊人一本到鬼色| 99热国产| 青草精品视频一日本久久久久网站| 精品无人区麻豆乱码久久久| 婷婷精品视频| 色婷婷综合视频| 91色噜噜狠狠| 国产精品熟女AV中文字幕在线播放| 欧美人妻久久精品二区三区| ji熟女.com| 综合第一页| 色偷偷2020免费视频播放| 久悠悠av| 亚洲欧美精品一区天堂久久 | 舔人妻中文免费视频| 九九色婷婷| 国产精品成人福利在线| 欧美性爱无码一区二区三区| 国产成人超碰在线| 综合久久久久久久久91| 中文字幕丰满子伦无码专区在线视频最新 | 小少妇| 日韩一性一交一A片俄罗斯| 天天操夜夜操| 91久久免费视频互動交流| 精品人妻一区二区免费蜜桃视频| 精品国产乱码久久久久久久久久毛片| 久操影视| 久9爱精品| 日本精品九九九| 大香蕉十区| 久久秀这里有精品| 麻豆乱码久久精| 午夜福利久久久噜久噜久久综合| 欧美黑人猛交春色影视大全| 亚洲色9| 蜜臀AV成人精品蜜臀AV久久| 热久久国产精品视频大陆精品| 欧美另类色| 欧美韩国你懂得在线| 啊啊啊啊啊在线视频| 国产乱伦搜索结果91P| 欧美 日韩第一性色| 中文字幕乱妇免费视频| 久久女人| 操操操五月天婷婷丁香影院| 亚洲国产精品9999在线观看| 乱伦系列一区二区| 99精品久久| 欧美日韩国第一区| 精品网站99999| 51一区二区三区| 97在线观看免费视频l| 97bbn| 久久精品91| juliaann欧美丝袜办公室| 国产97综合| 精品人妻一二三| 91色人妻| 99热精品在线| 久久中出在线| 殴美色网| av强奸乱轮| 日本日皮视频逼| 丁香六月啪| 天天草AV| 亚洲天堂一区| 中文字幕交换人妻| 天天操女人| 九九九九九九九九九九九蜜桃| 97人人夜| 亚洲综合中文字幕有码| 天天天乱色综合全| 亚洲久久久久| 欧美很很操视频| 亚洲综合另类| 一区二区三区成人| 日本天天干天天操一区| 久久久精品电影| 自慰白浆在线观看| 一区,二区,三区视频| 国产三级中文字幕粉嫩| 日韩精品黄片免费观看| 操逼999| 男女性扦B| 国产97视频| 国产毛片在线| 天天综合欧美综合| 女性91网站| 一区不卡在线观看av| 五月婷久久| 中国的操老妇女| 中文字幕99999| www.久久久久| 品亲网欧美品亲网| 五月丁香久久| 日本欧美色| 国产福利精品98视频| 久久av一级av少妇av高潮| 四虎影视永久在线观看精品免费网站| 中文字幕五月婷婷免费| 黄色小说亚洲| 欧美老妇曰批的视频| 日韩精品国产一区二区| 欧美性高潮| 777AV电影| 亚洲天天影视综合网| 中文字幕伊人| 日韩欧美日韩| 国产Aα| 国内外内射高清视频| 少妇久久久| 在线可观看的黄色网址| 骚逼高潮久久精品| 精品国产乱码久久久影院| 亚洲精品白浆高清久久久久久 | 熟妇高潮一区二区免费视频| 在线五区| 717影院理论午夜伦八戒| 国产第二页| 日本人妻伦在线中文字幕| 亚洲第一综合| 香港久久久| 久久久久久AⅤ无码免费肉站| 日韩精品人妻中文字幕久久久| 高清无码学生妹高潮| surenchaopeng| 97在线观| 亚洲精品视频在线播放| 一牛影视成人片免费| 清纯唯美第一页| 大鸡吧尹人在线| 欧美碰碰综合色| 伊人一级免费黄片| 熟女少妇一区二区三区| 九九九九88| 午夜αv| 区日韩亚洲乱码av电影| 午夜毛片亚洲精品片国产久久久| 久久久中文| 9丨久久九九九| 后入 亚洲 美女 射| 国内精品a| 欧美91久久久久| 久9热| 国产日韩手机视频在线| 香港日本韩国人妇99www.wccm20| 青青操综合网| 综合色欧美| 欧美色日本| 激情第四色| 中文字幕精品探花视频| 操少妞在线视频| 人人人人人人少妇| 91爆操视频| 亚洲午夜福利在线影院| 欧美狠狠狠| 在线观看日韩av不卡| 97碰碰色| 男人兔费天堂| 日日爽夜夜爽| 青青草国产亚洲精品久久| 日本在线一二| 深田咏美亚洲精品福利社| 狠狠躁AV| 超碰九色| 蜜桃臀一区二区aV| 花野真衣| 人妻加勒比东京热| 强奸乱伦大香蕉网| 女人被男人桶爽视频网站| 大香蕉中文网| 欧美色图99| 超碰97欧美日韩| 开心六月色| AV 少妇 人妻 偷拍| 成人黑料社久久| 日本女优在线视频福利| 久操凹凸视频| www.99中文字幕| 人人摸.人人色| 欧美Aⅴ| 亚洲人体视频在线观看| 思思热一热婷婷热一热| 国产精品亚洲无码| 免费岛国一级片| 久操网址| 男人的天堂 在线一区| 中文有码第五页| 国产成人久久久精品免费AV| 北京专精特新企业招聘信息| 嗯嗯不要视频| 精品成人av一区二区三区在线| 亚洲,欧美,春色,另类 | 91精品久久综合熟女| 激情五月天丁香社区| 日韩国产九九精品一区二区三区毛片| 67914在线兔费成人视频| 97av在线视频| 中文字幕亚洲永久精品| 视频一区二区免费在线| 久久精品国产亚洲av水密被窝| 91精品人妻一区二区三区蜜桃臀| 看日韩美女二区三区免费操逼视频 | 老司机午夜精品视频| 日本黄页视频在线观看| 97日视频| 欧美国产视频| 欧美激情亚洲情色| 日韩精品影视| 久久精品女同亚洲女同13| 色婷婷aV一区二区三区麻豆综合| 免费人成?大片在线播放| 性久久| 久久精品国产亚洲AV高级北京| 一区操逼日比视频| 思思热久久成人| 黄色免费网| 麻豆视频国产一区二区| 搡老女人老91妇女老熟女| JIZZJIZZ亚洲女人被躁| 日韩人妻播放| 老女人日韩美91| 91人妻视频| 偷拍色图| 91女优在线观看 | 亚洲国产精品成人综合| 国产成人无码啪| 麻豆啪啪啪视频| 久久久精久久久| 欧美熟妇亚洲版| 亚洲天堂电影网99999| 久久这里只有精品9| 波多野结衣一级视频| 99re视频在线观看这里只有精品| 高清不卡一二三区视频......| 成人一区二区三区四区| 久久六六| 又黑又大又粗| 欧美高清色| 黄色一级视| 欧美 日韩 另类 亚洲| 婷婷激情丁香| 婷婷五月av| 欧美一区二区成人一卡| 黄色免费网| 色综合色欲色综合色综合色综合| 天天综合网~91综合网| 欧美日韩大香蕉| 3571色综合一区二区二区| 天天插天天操天天摸天天射天天看| 国产又黄又粗又猛大片| 一区久久久二区| 色在线视频导航| 1024人妻熟女一区二区三区| 日影院久久婷婷夜夜网| 激情小说成人日本无码一| 亚爽爽爽爽爽爽爽爽| 国产在线观看一区二区三区| 亚洲精品色| 97干在线看| 久久有碼| 99无码精品| 中文字幕欧美精品亚洲日韩蜜臀| 中文字幕 国产 精品 | 激情文学 亚洲图片| 激情黄色片在线观看| 黄色成品网站| 亚洲成人性爱网站在线播放| 色五月AV在线| 五月色综合| 成人自拍三级在线观看| 欧美 日韩 另类 亚洲| 91精品亚洲内射孕妇| 精品免费一区二区三区在线亚洲人成| 亚欧毛片基地国产毛片基地| 人人噜夜夜操| 91人妻丝袜无码| www.色吧5.com| 欧美在线|亚洲| 中文字幕在线24| 成人七区| A 天堂| 中文字幕精品亚洲熟女| 蜜桃臀 后入 一区 二区 三区 在线| 久热一区二区| 亚洲三级。日韩三级| 欧美综合加勒比在线| 在线观看av区| 伦伦成年午夜免费视频| 婷婷丁香激情| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 打av高清| 国产乱码久久| 天天爽人人综合免费7799| 欧美色图 色综合图| 亚洲AV高潮| 日韩欧美操逼xxx| 人妻酒店出差被中出免费在线播放| 中文字幕视频免费| 欧美综合第一| 亚洲情色图片区| 精品人妻伦一二三区久久| 欧美黄色片在线播放| 色图综合网| 天天综合官网| 加勒比海色香蕉婷婷| 丰满人妻一区二区三区免费| 激情视频图片| 综合亚洲欧美| 97视频网站| 色九久| 欧美性91| 中文字幕丰满子伦无码专区在线视频最新 | 天天综合欧美| 久久日本熟妇熟色一区| 伊人网在线观看| 日韩AV熟女乱伦| 亲子敌伦对白在线播放| 人妻素股| 丝袜狠狠草尤物人妻av91| 国产操操日韩三级黄| 欧美色图校园春色| 超碰久久网| 精品熟女一区=区三区| 日本操大逼| 免费视频97| 亚州国产成人精品女人久久| 无码91| 日韩免费性爱视频在线观看| 久久欲| 欧美日韩中文字幕人妻| 亚洲第一视频 欧美风情 日韩| 欧美性,色九九| 99婷婷| 无码聚合| 中文精品一区二去| 久久精品 六十路 熟女 欧美| 天堂av最新电影网| 色眯眯av| 91 国产丝袜在线播放-百度| 国产精品高潮久久AV| 在线观看一卡二卡| 欧美视频在线视频免费va| av在线播放国产一区| 人妻一区二区三区熟女| 超碰97男女| 91在线一起| 亚洲超碰综合网| 裸模AV女优| 午夜成人福利影视| 九月AV| 日本九九久久99播| 久久9 9 9精品| 丰满人妻一区二区三区免费,| 女人被添高潮免费视频| 99久久综合网| 久久婷婷五月天| 清柠毛片| 少妇500双飞99| 欧美五区| 综合大香蕉美。| 91精品久久久久久77777| 色色色色色色色色综合| 亚州精品人妻一二三区| 桑老女人九区| 91爱啪| 久久国产乱子伦精品免费女,网站| 97免费视频在线| 超碰九区| 亚洲码在线中文在线观看| 日本在线观看网址| 美国一区二区三区视频| 亚洲综合中文字幕有码| 色色色色电影网| 蜜桃久久综合视频| 老熟女熟妇| 日日噜噜夜夜久久亚洲一区二区| 日本中文字幕一区| 女生久久网| 久久久久久久强迫| 亚洲欧综合另类无码一区| 国产欧美日韩在线不卡第一页| 狼人久草| 久久仑合| 婷婷人妻激情| 极品销魂美女一区二区| 国产剧情AV不卡在线观看| 欧美99热| 日韩啪啪啪视频| 中出20p| 久久AV无码AV| 丰满少妇乱子伦精品无| 久久久久久久久久久久久久久性生活视频| 亚洲三级网址久久最新| 激情婷婷丁香网| 日本视频在线中文字幕| 久久xxxx| 亚洲性猛交| 亚洲风情在线观看| 91在线视频观看国产| 婷婷综合五月天| 亚洲永久永久永久永久一级一级一级精品 | 97在线国产精品| 亚洲熟久久| 熟女少妇视频| 国产欧美精选激情视频| 欧美成人一区二区| 国产高清自拍视频| 激情五月天社区| 国产超碰在线一区| 欧美姓爱综合网| 欧美黄色大片在线观看| 欧美熟妇精品黑人巨大一二三区| 欧美线天码中字| 免费看片黄| 丝袜美腿诱惑亚洲欧美视频在线观看| 日韩欧美中文字亚洲慕| 不卡av在线中文字幕| 丁香五月综合| 亚洲人精品久久久| 欧美国产欧美在线观看| 久久国产精品91| 夜夜嗨一区二区三区直播内容| ,成人免费啪啪视频| 欧美亚洲玖玖玖| 色天天野狼综合社区| jk白丝没脱就开始啪啪| 天色综合网| 夜色91| 婷婷综合网站| 色777999综合| 玖玖爱免费观看视频| 久久久久亚洲精品| 一区不卡在线观看av| 婷婷亚洲中文字幕在线| 人人妻人人爽一区二区三区| 色婷婷丁香五月| 精品无人区麻豆乱码1区2区图片 | 亚洲精品天天影视综合网 | 九九九色| 国产不卡精品91| 伊人久久AV诱惑悠悠| 亚洲第一在线视频| 9.1小视频| 在线观看精品国产免费| 天天综合站| 亚洲最大网站av| 国产AV天美传媒一区二区三区 | 狠狠爱大香蕉| 丝袜内射| 亚洲图片激情综合另类| 99国产精品免费| 可以在线观看的黄色网址| 综合97亚洲| 欧美日韩中文亚洲v在线综合| 亚洲国产中文字幕| 丁香色色网| 麻豆亚洲AV成人无码久久精品| 99热这里只有精品99| 一二三区精品视频| 久久婷婷在线观看视频| 国产精品视频自拍在线| 九草九九九| 国产精品99久久久www| 99999久久精| 91亚洲黑人| 偷拍三区| 亚洲AV色图一区| 色婷婷基地| 啪啪啪综合网| 97在线视频观看免费| 99这里只有精品| 欧美人与动性人交a| 国模不卡一本二本三电影| 麻豆国产视频精品观看| 羞答答AV中文字| 天无日色综合| 99久久e免费热视| 亚洲图片欧美偷拍| 超碰人妻久久人妻中文97| 丰满人妻无码一区二区三区| 天堂性色| 伊人久久大香蕉线AV五月天| 色娱乐色呦呦夜夜夜夜av| 日本色色色视频| 日日超碰亚洲| 91色s| 真实高潮91| 五月天玖玖资源站| 国产强奸乱伦欧美| 33044男人的天堂深夜备| 国产原创精品| 日本精品高清一二区一本到| 欧美日韩大香蕉| 97精品人妻一二三四| oumeisetupian| 亚洲欧美经典一区二区| 性久久| 久久久久久9| 99国产精品自在自在| 久久a久久| www.色操逼| 天天色黄色影院天天操| 亚洲av噜噜噜噜噜噜| 熟妇一区,二区,三区。| 精品人妻一区二区乱码一区二区 | 欧美日韩97| 午夜精品久久久久久久99| 九色 人妻 大香蕉| 97婷婷色| 粉嫩av在线一区二区| 波多野结衣AV无码一区| 毛片一区二区| 国产熟女无套内射| 热久久无毒不卡| 东北女人| 色大师网站www永久网站视频| 精品女人999| 综合啪啪| 婷婷五月激情综合| 国产情侣自拍在线播放| 亚欧性爱ab| 欧美黄色片在线播放| 国产成人亚洲精品无| 久操国产在线| 91在线观看,天天综合| 亚洲91大片| 九九九影院| 欧美暴力猛交| 久久夜夜夜| 国产白丝在线| A男人的天堂| 麻豆一区在线| 中文一区在线日| 欧美精品精品一区二区| 91骚熟女| 人人操人人爽人人操人人| 欧美日韩中文视频播放| 日本一区二区中文字幕久久| 在线视频97| 91香蕉国产尤物视频| 国产成人亚洲精品无| 91精品国产91久久青草| 情趣丝袜无码操逼视频| 免费一级精品啪啪视频| 北约熟女超碰| 欧洲一级性爱视频在线观看| 岛国成人av在线播放网址| 久久婷婷色| 欧美1727免费观看视频| 国产性感骚丝袜在线| 第45页一区二区| 国产亚洲色婷婷99精品91| 亚洲青色欧美| 91无码人妻精品一区二区三区蜜桃| 久久久精品,3| 国产精品点击进入在线影院高清 | 国产av青草| 日韩视频小说在线观看 | 日本免费亚洲欧美| 91熟女熟妇视频网站| 青青草在线视频人人想人人上| 97在线欧洲| 天天操天天7| 精品人妻少妇| 国内毛片国产欧美拍| 久草视频在线视频在线视频在线观看| 精品一区二区成人动漫| AV中文在线可看| 性性欧美| 欧美色图电影| 2019久久久久久久久福利| 日本久久网| 大香蕉宅男伊人| 天天搞欧美| 久久产精品一区二区三区电影| 奇米四色影视777久久久| 国内精品伊人久久久久影院会| 日韩精品.久久精品.AV女优.天美传媒| 欧洲中文字幕| 深喉吞精| 综合久久六月久久婷婷| 久操免费电影| 老熟女乱伦一区| 五月天激情小说| 久久久不卡区一区二区三区久久久| 欧美日韩精品久久久久东北老熟妇| 久久久久久久久999| 亚洲αv一区二区三区| 91九久| 中文字幕欧美精品亚洲日韩蜜臀| 小日子操bb在线看| 精品人人| 欧美激情精品久久久久久| 高清无码久操视频| 五月天开心网| 插B在线观看| 在线一道啪| 97se综合网| 久久久久久久97| 亚洲图片偷拍视频区| 91天天c| 91视频精品| 理论久久婷婷网 8| 九九九九九九综合| 国产一区二区在线电影| 色香伊人| 在线观看AV片| 9长久久精品| 51久久夜色精品国产麻豆| 蜜臀久久99精品久久久老,,| 日本亚洲嫩草影院啪啪| 亚洲中文字母在线播放| 久久久神马影院| 国产精品嫩草影院免费| 天天澡天天爽日日av| 性饥渴少妇av无码毛片| 麻豆AV一区二区| 精品无码久久久久久久杏吧| 人妻精品综合中文字幕在线 | 精品九九九九九九| 久久久98网站免费视频| 草草草视频| 天天色粽合合合合合合合| 这里只有精品97| 99色在线| 九九热AV| 97se综合网| 天天色黄色影院天天操| 神马久久69| ai欧美亚洲小说| 国产高清精品一区二区三区毛片| 美女AV一区二区| 精品中文字幕一区二区| 日韩不卡一二三四| 国产精品秘 福利姬在线观看| 欧美综合777| 综合久久中文字幕综合日韩精品| 密臀在线视频| 亚洲。日韩。欧美| 日韩三A大片在线观看| 国产噜噜噜噜噜久久久久久久久| 大香蕉专区| 久热精品在线| 操九九九九九九| 久久久久久69国产一区二区| 国产一区二区精品在线视频| 久热91| 91综合在线| 国产精品视频| 亚洲欧美经典一区二区| 日韩在线国产字幕| 色www精品视频在线观看| 日本护士高潮| 日韩一级二级三级免费看完整版| 爱欲AV| 国产成人无码高清| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 日本性感人妻91| 色老久久| 久久久久日本视| 日韩一性一交一A片俄罗斯| 人妻91少妇| 美女诱惑在线一区| 婷婷亚洲综合| 强奸乱伦AV网站| 国产精品久久久久婷婷二区次| 秋霞男人网| 国产又爽又黄| 密乳AV免费观看| 欧美黑人熟妇精品91| 国产精品suv一区| 亚洲五月丁香花狠狠干一区二区三区 | 69精品| 国产隔壁老王影院在线| 亚洲高潮影院| 九九九九精品一区| 亭亭丁香激情| 五月丁香六月婷| 尤物网址| 肏逼视频日本| 夜夜欢天天干| 熟妇女伦乱视频视频| 青青操在线亚洲视频观看欧美在线 | 国产呦精品一区二区三区下载| 免费a v| 超碰在线免费一区二区三区| 超碰在97| 操一区| 日本丝袜美腿人妻九九| 国产91美女高潮| 2020国产精品| 国产精品久久久久久久毛片1| 亚洲欧美日韩制服另类| 超碰九7| 亚洲欧美97√| 超碰97极品9| 91视频综合在线| 天天看片麻豆| 香蕉久久精品| 久久综合久久综合人久久夜精品| 啊啊啊不要好疼视频| 91人人臊| 97人人模人人爽人人| 不卡一区二区日本视频| 一区二区三区亚洲| 2019精品国产无码成人| 一级性爱网| 国产精品白丝| 日本操逼视频免费| 狠狠操使劲操| 九九九久久久| 啪啪性爱免费视频| 成年人网站在线免费观看| 亚洲国产成人精品女人久久久| 日韩欧视频| 色淫网站优优视频| 久久岛国| 亲子敌伦对白在线播放| 亚洲图片欧美色图| 搡老熟女免费视频| 亚洲男人久久综合天堂| 浓厚中出中文字幕在线| 亚洲性爱电影| 亚洲欧综合另类无码一区| 乱论91| 青草av在线| 丁香五月天社区| 色妹子A V| 99热精品青草在线| 91精品婷婷国产综合久久竹菊| 60秒免费小视频| 亚洲情色综合网| 亚91网| 国产精品女aA片爽爽视频| 亚洲精品国语在线播放| 巨爆乳一区二区爆乳区| 性爱乱伦网址| 夜夜操二区| 少妇500双飞99| 欧美青青草视频| 欧美激情内射| 国产家庭乱伦表演| 能直接看AV的网站| 婷婷四五区| 97欧美色资源| 操熟女91| www亚洲免费| 久操不卡视频| 中文字幕视频一区视频二区| 一二三四视频在线社区中文字幕| 欧美精品系列| 99e久久国产精品| 狠狠激情综合狠狠操中文字幕| 99国产人成精品| 欧美日韩国产电影| 蜜区区视频79 | julia中文字幕在线观看| 色噜噜人妻av中文字幕| 国产精品白领在线观看 | 色狠人在线99| 日比av无码| 亚洲av综合色区图片亚洲| 操逼日韩无码| 操操操操网黑人| 蜜臀99久久国产| 狠狠操夜夜| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 97人人干| 青青操视频在线| 日韩国产精品人妻无码久久久| 亚洲黄色a级片| 人人操天天爽| 欧美碰碰综合色| 综合免费无码中文| 嗯~啊~快点 死我视频| 亚洲做性| 青青操综合网| 91麻豆天美传媒HD| 亚洲人天堂| 日本免费亚洲欧美| 亚拍在线| 正在播放国产精品一区| 国产女上位好爽在线| 久久久久久久久女黄| 久久久久久一日韩字幕无码| 久久99黄色卞西瓜| avav青青草久久夜| 国产日韩欧美亚洲精品95| 亚州操操穴网| 超碰97综合| 婷婷香蕉| 婷婷性网| 婷婷丁香五月激情啪啪| 天堂精品| 在线强奷到舒服的无码视频| 麻豆国产成人精品| 98人妻精品一区二区色欲| 久久超碰久| 日本精品一区二区不卡| 国产情侣自拍在线播放| 久久机热| 日本精品高清一二区一本到| av久日| 色综合av男人天堂| 天天激色| 亚洲精品一区二区三区在线播放| 熟女网站最新| 2021久久国产综合精品青草| 亚熟hd视频在线| 亚洲天堂一区二区久久| 久久久婷| 精品成人动漫一区二区| 91久久久久久久| 无码高清专| 97操综合| 综合色播| 91亚洲在线| 99热免费| 国产美女口爆吞精视频| 韩国女主播青草在线| 日日日日做夜夜夜夜无码| 狠狠亚洲| AV无码久久久精品| 91日产桃蜜| 久久侵犯人妻爽爽爽| 日韩免费a级毛片无码a∨| 欧美九九99久久精品| 欧美日韩国产另类综合| 是还免费视频1727我| 欧美成人黄网色网站| 密臀国产在线| 激情看片网站| 中文字幕精品丝袜| 日韩天天本| 懂色AV蜜臀无码精品APP| 久射吧| 婷色五月| 日韩无码视频黄色| 久久6热精品99视频| 午夜男女爽爽爽在线视频| 天天综合网~91| 天天透伊人| 欧美 日韩 亚洲 春色| 亚州欧美综合| 粉嫩国产精品久久粉嫩| 思思视频免费看网站| 91激情综合| 天堂精品在线| 午夜一区二区三区国产| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 色色色色网站| av影片在线观看不卡| 蜜臀久久99精品| 五月丁香婷婷啪啪| 日韩一区二区精彩视频| 嫩草91| 亚洲免费精品一区| 伊人黄色视频免费观看| 试看60秒 爽| 九九九热精品| 无码一区二区三区四区五区六区七区八区九区十区视频 | 九九九九九用不成了| 色色色色综合网| 大香蕉免费3| 精品美女少妇一区二区| 青青操在线亚洲视频观看欧美在线| 在线视频免费播放一区| 91操熟女| 精品美女少妇一区二区| 欧美久久婷婷| 亚洲av夫妻操穴网| 亚洲超碰AV| 国产精品麻豆成人av| 男生通女生屁股| 曰本91情色| 久久久久久性爱片| 99精品久久久久久久婷婷蜜桃| 色吧5亚洲| 老熟乱一区二区三区四区| 91性生活久久久| 综合影院亚洲| 91丨九色丨东北熟女| 国产女乱淫真高清免费视频| 亚洲伊人成综合成人网| 9精品久久久久| 99久久9| 美女AV一区二区| 黄色大片一区二区密桃丝袜| 五月激情啪啪| 操比国产| 无码人妻丰满热妇又大又粗| 中文字幕AV乱伦| 精品无码一区二区三区色欲| 东京太热男人的天堂久久久| 日韩欧美中文字亚洲慕| 精品一区二区三区四区外站| 青青色综合| 亚洲 中文 女同| 999在线电影香蕉| 蜜桃臀av在线观看| 亚洲色欲天天人妻无码系列专区| 日本视频一区二区三区| 国产大陆天天艹| 国产在线激情视频| 999精品国产高清一区二区| 九九九九热| 在线观看中文字幕| 啊啊啊啊网站| 97在线免费观看视频| 欧美亚洲综合高清在线| 色妇综合网| 清纯唯美亚洲综合| 999999精品| 91老女人| 91被操| 日韩性爱1级片视频| 91丨九色丨国产丨人妻在线 | 久久五月份| 怡红院视频在线| 北条麻妃99精品青青久久| 麻豆黄色五月天| 粘花网06av视频| 亚洲视频,小说| 久久99草| 久久久九| 欧美亚洲综合高清在线| 老熟女91| 一级毛片久久久久久久女人18| 草草影院最新网址| 免费伦费视频在线观看| 日韩激情啪啪| 国产激情久久| 久久一二区四| 天堂伊人久久| 色婷婷日韩精品一区二区三区| 一本色道人妻久久| 亚洲欧美综合| 无码丰满熟妇一区二区浪潮AV| 天天色,天天干,天天干| 日韩不卡a级视频专区| 大香蕉520| 亚洲国产剧情少妇激情| 2017大香蕉国产精品久久| 亚洲区限制级 99| 日韩猛交| 免费1级a做爰片观看| 人人爱人人操人人性| 26uuu国产| 日本97久久久精品| 99re在线视频这里只有精品| 天天射夜夜骑| 1级黄色夫妻对换性交免费看| 精品v日韩欧美国产| 欧美综合自拍成人自拍第二十页| 亚洲官网在线| 久久激情视频| 国产午夜精品在线观看| 无码精品一区二区三区潘金莲| 99久久婷婷国产综合| 久久久久久久久久久久久久久乱码| 99色骚| 精品黄色电影| 日韩午夜精品一区二区三区电影| 超碰亚洲97| 91黑丝操| 人人操人人舒服| 91久久99久久91熟女精品| 欧美综合色站| 精品日日人妻| 亚洲乱伦图片视频| 99热亚洲天堂| 成人资源中文字幕在线观看| 亚洲国产精品成人综合| 丁香婷婷久久| www被窝色com| 国产成年女黄特黄| 激情专区综合| 色拍偷亚洲| 四虎国产精品永久在线囯在线| 国产成人久久久精品免费AV| 中文字幕-区二区三区四区视频中国| 免费视频观看60秒| 免费又黄又裸乳的视频| 午夜男人天堂| 久久在肏| 大伊香蕉在线视频免费| 欧美日韩少妇色情| 俄罗斯及免费在线看| 激情综合久久| 久久久91福利姬| 2020中文在线一区二区三区| sss视频华人在线| 蜜臀久久99精品久久久久久-DVD| 亚洲精品亚洲人成在线麻豆| 精品小视频在线| 很很操在线| 亚洲欧美大香蕉| 人妻91少妇| 动漫爆乳3D奶水一区在线观看 | 久久国内| 丝袜亚洲91| 国产一区自拍欧美日韩| 黄色二级片网站| 久久性爱视频免费看| 99re9在线| 亚洲色图欧美| 97干在线| 亚洲欧美碰碰| 婷婷六月色| 91人妻人人澡人人爽人人精品| 激情专区综合| 久久久涩| 久久婷婷五月天| 草草草视频| 欧美综合骚| 免费在线看黄片av| 日本免费不卡二区| 日韩av在线精品观看| 丰满人妻一区二区三区在线| 中文字幕97| 久久夜色一区二区| 国产精品久久久久久久电影渣男| 激情欧美日韩女同久久| 亚洲阿v天堂无码z2018| 欧美国产有色电影| 亚欧视频在线| 综合大香蕉美。| 久久伊人大香蕉| 丰满人妻一区二区三区| 久久久久性熟视频| 中文字幕日韩精品久久| 欧美91在线+|+欧美| 青青伊人这里只有精品| 亚洲九九视频在线观看| 成人在线视频网| 丁香九月婷婷| 日韩传媒在线| 亚洲欧综合另类无码一区| 亚洲久草AV色图| 五月天色综合| 国产毛片毛片4p懂色| 亚洲天堂人人妻| 日韩AC| 日日超碰亚洲| 无码视频一区二区| 亚洲 欧美 手机在线观看| 深夜国产福利| 东北女人的毛片| 青娱乐久久艹| 日韩少妇无码| 伦理弟一页| 涩五月婷婷| 老外又粗又长一晚做五次| 锕锕好爽 死我在线观看| 爽爽淫人网| 性爱视频无打码在线观看| 婷婷20月天青娱乐| 日韩99999色| 欧美顶级黄色大片免费| 青娱乐91| 内射黑丝袜| 91大胆欧美| japan日本高清乱xxxx| 9久久久久| 老司机午夜精品福利视频一区二区| 能看的av| 蜜乳AV一区| 男啪女色黄无遮挡免费观看| 日本欧美m v精品网站加| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 日韩性爱电影一区| 一起草三级AV电影在线观看 | 隔壁邻居波多野结衣中文字幕 | 日本欧美国内在线| 中文字幕一区二区三区字幕| 少妇精品| 激情啪啪视频| 国产精品 午夜福利| 午夜大香蕉| 强奸乱伦Av网| 欧美性爱第一页久久| 中韩中文字幕在线观看| 操亚州| 九九九久千久久激情蜜桃在线看 | 人妻加勒比东京热| 自拍大香蕉乱插| 三级AV入口| 日韩中文字墓| 天美传媒婬乱在| 一本一道久久综合久久| 欧美在线55555| 英伦大奶子熟妇吊带| 五月激情综合网| 国产综合操逼高清| 国产精品久久久无码AV网站| 亚洲欧洲中文日韩女优乱码| 亚洲情色视频| 欧姜老司机| 9美女超碰在线免费观看| 中文字幕一区二区三四五区日日骚| 欧美日日夜夜| 久久一二区四| 欧美综合骚| 懂色AV一区二区三区| 大香蕉手机视频| 日韩中文字幕二区| 天天做日日爱夜夜爽| 国产精品一二三在线看| 久久久亚洲Av| 久久天天艹| 操婢日韩| 国产美女裸体秘 永久无遮挡| 国产中出内射一区二区| 91无遮挡| 操国产高清| 熟妇综合一区二区三区| 国产内射爽爽大片| 懂色Av| 操国产逼| 中文字幕日韩精品久久| 亚洲av国产av综合av卡| 丁香五六月啪啪| 国产精品午夜福利亚洲综合网| 狠狠久久手机视频精品| 狠狠操,使劲操| 久久久精品中文字幕爱豆| 亚洲AV成人无码一二三久久 | 看免费的黄片| 殴美牲| 国产天美欧美| 澳门人妻久久| 欧美综合第一| 国产精品欧美激在线| 伦在线97| 乱操9999|