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

ARTICLE DETAIL

資訊詳情

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

HAL庫ADC開發(fā)指南:初始化、DMA多通道與踩坑詳解

HAL庫ADC開發(fā)指南:初始化、DMA多通道與踩坑詳解 簡介面向STM32嵌入式開發(fā)者的ADC模數(shù)轉(zhuǎn)換HAL庫開發(fā)資源包聚焦基于HAL庫完成ADC初始化、通道配置、觸發(fā)源設(shè)置、啟動(dòng)轉(zhuǎn)換、結(jié)果讀取與錯(cuò)誤處理等完整流程適合正在學(xué)習(xí)HAL庫或需要快速上手ADC多通道采集、DMA傳輸及校準(zhǔn)應(yīng)用的開發(fā)者。壓縮包共1000個(gè)文件大小24.08MB以C源碼559個(gè).c、243個(gè).h為主體包含STM32CubeMX生成的.ioc與.mxproject工程配置、KEIL/IAR工程文件、鏈接腳本.icf/.sct、編譯產(chǎn)物.o/.axf/.hex/.map以及相關(guān)庫文件便于直接對照工程學(xué)習(xí)或移植。已有226人瀏覽學(xué)習(xí)。內(nèi)容預(yù)覽顯示其中集成CMSIS DSP數(shù)學(xué)庫及ADC轉(zhuǎn)換示例涵蓋線性插值、DCT、FFT等常用算法源文件可輔助開發(fā)者理解ADC采樣數(shù)據(jù)在數(shù)字信號(hào)處理中的應(yīng)用。學(xué)習(xí)后可掌握HAL庫ADC驅(qū)動(dòng)編寫思路、常見配置項(xiàng)含義及工程構(gòu)建方法減少查閱手冊的時(shí)間。1. 直接用寄存器寫 ADC 和用 HAL 庫寫 ADC差在哪里做過標(biāo)準(zhǔn)外設(shè)庫或者直接操作寄存器的開發(fā)者初次換到 HAL 庫寫 ADC 時(shí)多半會(huì)有一個(gè)共同的困惑一個(gè)本來十幾行就能讀完數(shù)據(jù)的 ADC 初始化HAL 庫硬生生拆成了ADC_HandleTypeDef、ADC_ChannelConfTypeDef再加上一堆HAL_ADC_ConfigChannel、HAL_ADC_Start、HAL_ADC_PollForConversion看起來繞了一大圈好像什么都沒干。但真正切換到 HAL 庫做 ADC 開發(fā)之后你會(huì)發(fā)現(xiàn)這套封裝的價(jià)值不在「少寫代碼」而在「把狀態(tài)機(jī)、DMA 觸發(fā)、中斷回調(diào)、多通道掃描和過采樣這些容易出錯(cuò)的細(xì)節(jié)收斂到一套統(tǒng)一的接口上」。這篇筆記圍繞一個(gè)具體目標(biāo)展開拋開圖形化配置工具的自動(dòng)生成搞清楚 HAL 庫 ADC 從初始化到拿到穩(wěn)定數(shù)值的完整鏈路——怎么配參數(shù)、怎么選阻塞/中斷/DMA、怎么處理校準(zhǔn)以及那些讓新手反復(fù)翻車的隱蔽細(xì)節(jié)。適合正在從寄存器或標(biāo)準(zhǔn)庫遷移、或者被 HAL 庫的 ADC 回調(diào)機(jī)制搞暈的開發(fā)者看完就能在本地把最小工程跑通并把采樣數(shù)值的可靠性調(diào)到夠用。2. 最小可跑的 ADC 工程從引腳到第一組電壓數(shù)據(jù)2.1 初始化到底初始化了什么時(shí)鐘、引腳與 ADC 實(shí)例HAL 庫的 ADC 初始化代碼看起來冗長但核心只有三件事給 ADC 外設(shè)供時(shí)鐘、把 GPIO 引腳配置成模擬輸入、把分辨率/對齊方式/掃描模式這些基本參數(shù)寫進(jìn)ADC_HandleTypeDef并調(diào)用HAL_ADC_Init。常見做法是在圖形化配置工具里選好引腳和時(shí)鐘樹再由工具生成MX_ADC1_Init不過很多開發(fā)者并不清楚這段生成代碼每一行在干什么后續(xù)排查問題時(shí)只能靠猜。先看一個(gè)最精簡的初始化函數(shù)以單 ADC 實(shí)例、單通道、右對齊、12 位分辨率為例void MX_ADC1_Init(void) { hadc1.Instance ADC1; // 選中 ADC1 外設(shè) hadc1.Init.ClockPrescaler ADC_CLOCK_SYNC_PCLK_DIV4; // ADC 時(shí)鐘 PCLK2 / 4 hadc1.Init.Resolution ADC_RESOLUTION_12B; // 12 位分辨率 hadc1.Init.ScanConvMode DISABLE; // 單通道模式不需要掃描 hadc1.Init.ContinuousConvMode ENABLE; // 連續(xù)轉(zhuǎn)換 hadc1.Init.DiscontinuousConvMode DISABLE; hadc1.Init.ExternalTrigConvEdge ADC_EXTERNALTRIGCONVEDGE_NONE; // 軟件觸發(fā) hadc1.Init.ExternalTrigConv ADC_SOFTWARE_START; hadc1.Init.DataAlign ADC_DATAALIGN_RIGHT; // 右對齊 hadc1.Init.NbrOfConversion 1; // 轉(zhuǎn)換通道數(shù)量 hadc1.Init.DMAContinuousRequests DISABLE; hadc1.Init.EOCSelection ADC_EOC_SINGLE_CONV; // 每次轉(zhuǎn)換結(jié)束都產(chǎn)生 EOC if (HAL_ADC_Init(hadc1) ! HAL_OK) { Error_Handler(); } }這段配置里最容易被忽略的是ADC_CLOCK_SYNC_PCLK_DIV4這一項(xiàng)。ADC 的輸入時(shí)鐘不能超過芯片手冊規(guī)定的上限一般常見系列是 36MHz 或 40MHz 左右如果 PCLK2 是 72MHz 而你不分頻ADC 時(shí)鐘就超限了表現(xiàn)是轉(zhuǎn)換結(jié)果整體漂移而且沒有任何報(bào)錯(cuò)。Resolution選 12 位時(shí)單次轉(zhuǎn)換周期固定選 8 位或 6 位可以略微加快轉(zhuǎn)換速度但換來的是量化噪聲變大后面會(huì)細(xì)說。配置完hadc1之后還有一個(gè)隱形步驟HAL 庫會(huì)通過HAL_ADC_MspInit回調(diào)函數(shù)完成 GPIO 和時(shí)鐘的底層初始化。這段函數(shù)在圖形化工具生成代碼時(shí)是自動(dòng)出現(xiàn)的手動(dòng)建工程時(shí)往往要自己補(bǔ)void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc) { GPIO_InitTypeDef GPIO_InitStruct {0}; __HAL_RCC_ADC1_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_InitStruct.Pin GPIO_PIN_0; // 假設(shè)用 PA0 GPIO_InitStruct.Mode GPIO_MODE_ANALOG; // 模擬輸入 GPIO_InitStruct.Pull GPIO_NOPULL; // ADC 引腳通常不要上下拉 HAL_GPIO_Init(GPIOA, GPIO_InitStruct); }這里有個(gè)新手經(jīng)常踩的點(diǎn)GPIO 配置成模擬輸入時(shí)Pull一定要設(shè)成GPIO_NOPULL。如果內(nèi)部上拉被打開就等于在待測信號(hào)上并聯(lián)了一個(gè)幾十千歐的電阻分壓效應(yīng)會(huì)直接導(dǎo)致讀數(shù)偏低尤其被測源是高內(nèi)阻的時(shí)候誤差可能到百分之十幾。MspInit 這個(gè)名字看起來像某個(gè)庫函數(shù)內(nèi)部的東西但它是整個(gè)初始化鏈路里唯一負(fù)責(zé)「引腳復(fù)用」的地方項(xiàng)目里 ADC 換了引腳卻忘了同步改這里是極常見的翻車原因。2.2 阻塞式采集的完整代碼與返回值陷阱初始化做完最直觀的讀取方式是阻塞式發(fā)起一次轉(zhuǎn)換然后原地等待轉(zhuǎn)換結(jié)束再從數(shù)據(jù)寄存器拿數(shù)值。HAL 庫對應(yīng)的三個(gè)函數(shù)是HAL_ADC_Start、HAL_ADC_PollForConversion和HAL_ADC_GetValue。最小代碼如下uint32_t read_adc_once(void) { uint32_t adc_val 0; if (HAL_ADC_Start(hadc1) ! HAL_OK) { return 0xFFFFFFFF; // 啟動(dòng)失敗返回一個(gè)不可能出現(xiàn)的值 } // 等待轉(zhuǎn)換完成超時(shí) 100ms if (HAL_ADC_PollForConversion(hadc1, 100) ! HAL_OK) { return 0xFFFFFFFF; } adc_val HAL_ADC_GetValue(hadc1); // 讀取轉(zhuǎn)換結(jié)果 return adc_val; }這段代碼邏輯上是對的但實(shí)際項(xiàng)目里很少有人會(huì)每讀一次就調(diào)用一次Start。原因在于HAL_ADC_Start不只是「開始轉(zhuǎn)換」它還負(fù)責(zé)清狀態(tài)標(biāo)志位、復(fù)位 DMA 或中斷相關(guān)寄存器。頻繁調(diào)用會(huì)讓 ADC 的狀態(tài)機(jī)反復(fù)重啟如果發(fā)生在中斷里還有可能和其他讀操作沖突。常見做法是開機(jī)初始化后調(diào)用一次HAL_ADC_Start之后在循環(huán)里反復(fù)執(zhí)行PollForConversion和GetValue。PollForConversion的超時(shí)參數(shù)也有講究。阻塞模式里這個(gè)參數(shù)的單位是毫秒但它不是「轉(zhuǎn)換時(shí)間」而是「等待狀態(tài)翻轉(zhuǎn)的最長時(shí)間」。ADC 單次轉(zhuǎn)換通常只有幾微秒到幾十微秒100ms 的超時(shí)已經(jīng)非常寬裕。如果這里頻繁返回HAL_TIMEOUT先別急著加超時(shí)值——說明 ADC 可能根本沒有啟動(dòng)成功或者時(shí)鐘配置有誤。把超時(shí)加長只是掩蓋癥狀查時(shí)鐘和外設(shè)時(shí)鐘開關(guān)才是正路。另外注意返回值有三個(gè)層級(jí)HAL_OK表示轉(zhuǎn)換完成HAL_TIMEOUT表示超時(shí)HAL_ERROR或HAL_BUSY表示外設(shè)狀態(tài)不允許當(dāng)前操作。很多開發(fā)者只判斷HAL_OK和非HAL_OK導(dǎo)致HAL_BUSY被當(dāng)成超時(shí)處理方向一開始就偏了。2.3 電壓值換算前 200 次采樣要丟棄嗎拿到原始 ADC 數(shù)值之后下一步必然要換算成實(shí)際電壓。這個(gè)公式本身很簡單float voltage (float)adc_val * 3.3f / 4095.0f;但有幾個(gè)細(xì)節(jié)會(huì)直接影響換算精度。第一基準(zhǔn)電壓不一定是精確的 3.3V。開發(fā)板上的穩(wěn)壓芯片輸出往往有正負(fù) 1% 到 2% 的誤差講究一點(diǎn)的場合應(yīng)該用萬用表實(shí)測 VREF 引腳的電壓再把實(shí)測值代進(jìn)公式。第二GetValue返回的數(shù)據(jù)是右對齊的原始值12 位分辨率下范圍是 0 到 4095拿它乘 3.3 再除以 4096 還是 4095 會(huì)有千分位級(jí)別的誤差——通常無所謂但如果你在做校準(zhǔn)表建議統(tǒng)一用 4095 作為除數(shù)避免和芯片手冊里的滿量程定義產(chǎn)生歧義。第三剛上電的前幾次轉(zhuǎn)換結(jié)果往往偏大或偏小這不是芯片壞了而是 ADC 內(nèi)部采樣電容還沒穩(wěn)定。經(jīng)驗(yàn)做法是丟棄前 200 次采樣或者至少丟棄前幾十次再開始做濾波或平均——這個(gè)習(xí)慣在從待機(jī)模式喚醒后同樣適用。3. 中斷與 DMA把 CPU 從采樣循環(huán)里放出來3.1 三組啟動(dòng) API 到底有什么區(qū)別Start、Start_IT、Start_DMAHAL 庫給 ADC 提供了三組啟動(dòng)方式HAL_ADC_Start阻塞、HAL_ADC_Start_IT中斷、HAL_ADC_Start_DMADMA。同一個(gè) ADC 實(shí)例三組 API 背后的狀態(tài)機(jī)其實(shí)是同一個(gè)區(qū)別只在于「轉(zhuǎn)換結(jié)束誰來通知你」。用Start_IT時(shí)每次轉(zhuǎn)換完成會(huì)產(chǎn)生中斷CPU 在中斷服務(wù)函數(shù)里拿到數(shù)據(jù)。適合需要每轉(zhuǎn)換一次就立刻處理一次的場合比如過零檢測、快速均值濾波。DMA 方式則完全不打擾 CPUADC 轉(zhuǎn)換完成后由 DMA 把數(shù)據(jù)搬到內(nèi)存緩沖區(qū)CPU 可以干別的事等一批數(shù)據(jù)攢夠了再集中處理。三者選型的判斷標(biāo)準(zhǔn)很簡單——如果讀取頻率高于 1kHz 或者數(shù)據(jù)要連續(xù)采集用 DMA如果只是按鍵掃描、電池電壓監(jiān)控這類低頻任務(wù)阻塞式足夠別把簡單問題復(fù)雜化。下面把Start_IT的最小使用方式完整展示因?yàn)樗幕卣{(diào)機(jī)制是 HAL 庫新手最容易迷路的地方// 啟動(dòng)中斷方式采集每次轉(zhuǎn)換完成自動(dòng)進(jìn)入回調(diào) HAL_ADC_Start_IT(hadc1); // 這個(gè)回調(diào)函數(shù)由 HAL 庫在 ADC 中斷里自動(dòng)調(diào)用 void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) { if (hadc-Instance ADC1) { raw_value HAL_ADC_GetValue(hadc1); // 讀取本次結(jié)果 HAL_ADC_Start_IT(hadc1); // 重新啟動(dòng)下一次轉(zhuǎn)換 } }注意回調(diào)結(jié)束前的那行HAL_ADC_Start_IT(hadc1)在非連續(xù)轉(zhuǎn)換模式下一次轉(zhuǎn)換完成后 ADC 會(huì)停下來必須重新調(diào)用啟動(dòng)函數(shù)才能觸發(fā)下一次轉(zhuǎn)換。很多人第一次用回調(diào)會(huì)發(fā)現(xiàn)「只進(jìn)一次回調(diào)后面再也不來了」原因就是這里漏了重啟。如果你的配置里把ContinuousConvMode設(shè)為ENABLE轉(zhuǎn)換會(huì)自動(dòng)連續(xù)進(jìn)行中斷也會(huì)持續(xù)觸發(fā)不需要重復(fù)調(diào)用啟動(dòng)——但那樣的話中斷頻率等于 ADC 轉(zhuǎn)換頻率CPU 可能在中斷里忙不過來反而不如 DMA 合適。Start_IT還有個(gè)隱患回調(diào)函數(shù)執(zhí)行期間時(shí)長不能超過一個(gè)轉(zhuǎn)換周期否則下一次轉(zhuǎn)換完成產(chǎn)生的同優(yōu)先級(jí)中斷會(huì)被掛起數(shù)據(jù)讀取會(huì)延遲。所以回調(diào)里不要做浮點(diǎn)換算、不要打印日志、不要做延時(shí)。只把原始數(shù)值存到一個(gè)全局變量或隊(duì)列里換算放到主循環(huán)。3.2 多通道掃描 DMA 循環(huán)模式緩存開多大、數(shù)據(jù)怎么對齊多通道采集在 HAL 庫里的寫法和單通道有一個(gè)明顯的分界點(diǎn)需要把ScanConvMode設(shè)為ENABLE并在ChannelConfig里按順序配置每個(gè)通道的 Rank轉(zhuǎn)換順序。DMA 模式下數(shù)據(jù)會(huì)按 Rank 的順序依次填入緩沖區(qū)這是最容易出錯(cuò)的環(huán)節(jié)——不是數(shù)值讀錯(cuò)了而是數(shù)值和通道對不上。以常見的四通道循環(huán)采樣為例配置如下ADC_ChannelConfTypeDef sConfig {0}; // 配置注入通道順序Rank 1 先轉(zhuǎn)換 sConfig.Channel ADC_CHANNEL_0; sConfig.Rank 1; sConfig.SamplingTime ADC_SAMPLETIME_84CYCLES; HAL_ADC_ConfigChannel(hadc1, sConfig); sConfig.Channel ADC_CHANNEL_1; sConfig.Rank 2; HAL_ADC_ConfigChannel(hadc1, sConfig); sConfig.Channel ADC_CHANNEL_2; sConfig.Rank 3; HAL_ADC_ConfigChannel(hadc1, sConfig); sConfig.Channel ADC_CHANNEL_3; sConfig.Rank 4; HAL_ADC_ConfigChannel(hadc1, sConfig);DMA 緩沖區(qū)和啟動(dòng)代碼#define ADC_CHANNEL_COUNT 4 #define ADC_BUF_SIZE 4000 // 4 個(gè)通道 × 1000 輪需要是通道數(shù)的整數(shù)倍 uint16_t adc_buffer[ADC_BUF_SIZE]; // DMA 傳輸目標(biāo) void adc_dma_start(void) { HAL_ADC_Start_DMA(hadc1, (uint32_t*)adc_buffer, ADC_BUF_SIZE); }這里特別強(qiáng)調(diào)ADC_BUF_SIZE必須是通道數(shù)的整數(shù)倍不是隨便寫個(gè) 1024 就完事。DMA 循環(huán)模式下緩沖區(qū)寫滿一輪會(huì)觸發(fā)一次傳輸完成中斷如果長度不是通道數(shù)的整數(shù)倍下一輪數(shù)據(jù)會(huì)從緩沖區(qū)的中間位置開始覆蓋導(dǎo)致后續(xù)只能用「每 N 個(gè)數(shù)據(jù)從 index 0 開始對通道」的錯(cuò)位方式處理很容易把通道 0 的數(shù)據(jù)當(dāng)成通道 1。在多通道 DMA 場景里通道數(shù)映射到緩沖區(qū)下標(biāo)是固定的index rank - 1 n × channel_count。每次 DMA 傳輸完成中斷里你從緩沖區(qū)頭部開始讀取一組channel_count個(gè)數(shù)據(jù)就是一輪完整的掃描結(jié)果。3.3 采樣頻率的邊界怎么算算錯(cuò)了會(huì)怎樣使用 DMA 連續(xù)采樣時(shí)采樣頻率不是隨便定的它由 ADC 時(shí)鐘和采樣時(shí)間共同決定。一個(gè)典型的計(jì)算過程假設(shè) ADC 時(shí)鐘 36MHz12 位分辨率需要 12.5 個(gè)時(shí)鐘周期的轉(zhuǎn)換時(shí)間采樣時(shí)間配 84 個(gè)時(shí)鐘周期那么單次轉(zhuǎn)換總周期數(shù)為12.5 84 96.5轉(zhuǎn)換頻率等于36MHz / 96.5 ≈ 373kHz。這個(gè)值是多通道掃描時(shí)所有通道共享的——如果你配了 4 個(gè)通道每個(gè)通道的實(shí)際采樣率要再除以 4約 93kHz。算這個(gè)數(shù)不是為了好看是決定 DMA 緩沖區(qū)和數(shù)據(jù)處理邏輯的起點(diǎn)。如果你的系統(tǒng)每 10ms 需要一組四通道數(shù)據(jù)那采樣率遠(yuǎn)高于需求可以考慮調(diào)低 ADC 時(shí)鐘分頻或減少采樣時(shí)間降低功耗。反過來如果采樣需求是每通道 200kHz四通道掃描總吞吐需要 800kHz而當(dāng)前配置只有 373kHz那唯一出路是縮短采樣時(shí)間或者降低分辨率或者改用多個(gè) ADC 實(shí)例并行工作——配參數(shù)之前先把這筆賬算清楚能避免后面調(diào)試時(shí)對著波形懷疑人生。4. HAL ADC 踩坑記錄校準(zhǔn)、采樣時(shí)間與狀態(tài)機(jī)玄學(xué)4.1 忘了校準(zhǔn)離譜的讀數(shù)偏差讓你懷疑芯片是壞的現(xiàn)象新板子第一次上電ADC 讀到的電壓比實(shí)測電壓偏低了接近 20%而且所有通道都一致偏低。用萬用表量引腳電壓明明是 2.0V讀回來只有 1.6V 左右。查了基準(zhǔn)、查了分壓電阻都沒問題。原因部分系列的 ADC 在復(fù)位后內(nèi)部偏移誤差沒有被修正必須在首次使用前執(zhí)行一次校準(zhǔn)。這個(gè)步驟在圖形化配置工具自動(dòng)生成代碼時(shí)通常是有的但如果你手動(dòng)裁剪過初始化流程或者用的是移植的工程很容易把校準(zhǔn)這段漏掉。校準(zhǔn)的本質(zhì)是把 ADC 內(nèi)部的電容陣列失調(diào)電壓測量出來并存儲(chǔ)到校準(zhǔn)寄存器不做這一步轉(zhuǎn)換結(jié)果會(huì)帶一個(gè)固定的偏移誤差。解決在HAL_ADC_Init之后、第一次啟動(dòng)轉(zhuǎn)換之前加一段校準(zhǔn)調(diào)用// ADC 初始化后、首次轉(zhuǎn)換前必須校準(zhǔn) HAL_ADCEx_Calibration_Start(hadc1, ADC_SINGLE_ENDED);注意校準(zhǔn)函數(shù)必須在 ADC 空閑狀態(tài)下調(diào)用不能在轉(zhuǎn)換中途執(zhí)行校準(zhǔn)完成后也不需要反復(fù)調(diào)用——同一顆芯片、同樣的電源條件下校準(zhǔn)一次就夠了。如果你的系統(tǒng)經(jīng)常會(huì)從低功耗模式喚醒建議喚醒后重新校準(zhǔn)因?yàn)榈凸哪J娇赡芮袛嗔?ADC 的內(nèi)部參考源導(dǎo)致校準(zhǔn)數(shù)據(jù)失效。4.2 采樣時(shí)間太短高阻抗信號(hào)源的讀數(shù)整體偏低現(xiàn)象把同一個(gè)傳感器分別接到兩個(gè)開發(fā)板一個(gè)讀數(shù)正常另一個(gè)整體偏低且波動(dòng)很大。代碼完全一樣唯一區(qū)別是傳感器引線長短和 PCB 走線寬度。原因ADC 內(nèi)部采樣電容需要在采樣時(shí)間內(nèi)充滿電充滿速度取決于外部源阻抗和電容的乘積。源阻抗越高需要的采樣時(shí)間越長。如果把SamplingTime配成最短檔位外部源阻抗又比較高采樣電容充不滿轉(zhuǎn)換結(jié)果自然偏低。這屬于用量程和分辨率查不出來的軟故障。解決把采樣時(shí)間從一個(gè)極端調(diào)到另一個(gè)極端做對照實(shí)驗(yàn)?zāi)茏钪庇^地確診。假設(shè)之前用的是 1.5 周期先換成ADC_SAMPLETIME_84CYCLES或更大值看讀數(shù)是否明顯上升。如果上升幅度超過 1%基本可以確認(rèn)是采樣時(shí)間不足。常見的經(jīng)驗(yàn)值直接測量運(yùn)放輸出這類低阻抗信號(hào)用短采樣時(shí)間沒問題直接測電位器、分壓電阻網(wǎng)絡(luò)、離子傳感器這類高阻抗源至少要用 84 周期以上。注意采樣時(shí)間加長會(huì)降低最高轉(zhuǎn)換頻率它是精度和速度的交換不是白拿的好處。4.3 連續(xù)轉(zhuǎn)換模式下調(diào)低分頻過采樣數(shù)據(jù)出現(xiàn)規(guī)律毛刺現(xiàn)象開啟連續(xù)轉(zhuǎn)換和 DMA 循環(huán)后當(dāng)把 ADC 時(shí)鐘從分頻 4 調(diào)成分頻 2即提高 ADC 時(shí)鐘頻率采集到的波形數(shù)據(jù)出現(xiàn)每 N 個(gè)點(diǎn)重復(fù)一次的毛刺頻率恰好和 PWM 中斷頻率一致。原因ADC 時(shí)鐘頻率提高之后單次轉(zhuǎn)換時(shí)間變短此時(shí)如果系統(tǒng)里同時(shí)存在高頻開關(guān)噪聲比如 PWM 驅(qū)動(dòng)、DC-DC 開關(guān)這些噪聲的頻譜會(huì)落入采樣帶寬內(nèi)混疊后表現(xiàn)為規(guī)律性毛刺。調(diào)低分頻前因?yàn)椴蓸訒r(shí)間較長等效于對高頻噪聲做了一定程度的平均掩蓋了這個(gè)問題。解決一是把采樣時(shí)間調(diào)回去恢復(fù)原本的低速高密室模式二是從時(shí)域上想辦法把 ADC 采樣時(shí)刻和 PWM 開關(guān)時(shí)刻錯(cuò)開——比如用定時(shí)器觸發(fā) ADC把觸發(fā)點(diǎn)放在 PWM 關(guān)斷的穩(wěn)定窗口。如果兩種方案都不可行就只能在軟件上做中值濾波或滑動(dòng)平均。這條坑的本質(zhì)是ADC 采樣時(shí)鐘不是越高越好尤其當(dāng)你的系統(tǒng)里還有其他開關(guān)噪聲源時(shí)過高的采樣時(shí)鐘只會(huì)讓噪聲混疊更嚴(yán)重。4.4 HAL_ADC_PollForConversion 返回 HAL_BUSY狀態(tài)機(jī)卡死現(xiàn)象代碼第一次調(diào)用HAL_ADC_Start后正常讀到了數(shù)據(jù)第二次再讀時(shí)PollForConversion直接返回HAL_BUSY而且之后再啟動(dòng)也始終是HAL_BUSY。重啟程序又能正常讀一次周而復(fù)始。原因HAL 庫的 ADC 狀態(tài)機(jī)里如果上一次轉(zhuǎn)換沒有正常結(jié)束比如你在轉(zhuǎn)換中途調(diào)用了HAL_ADC_Stop或者某次讀取超時(shí)后沒有把轉(zhuǎn)換序列徹底關(guān)掉ADC 會(huì)一直停在忙狀態(tài)。HAL_ADC_Start在忙狀態(tài)下不會(huì)重啟轉(zhuǎn)換而是返回HAL_BUSY。代碼里只對HAL_ADC_Start做了! HAL_OK判斷于是把這個(gè)錯(cuò)誤當(dāng)成了「啟動(dòng)失敗」沒有意識(shí)到是狀態(tài)機(jī)卡死。解決不要在PollForConversion超時(shí)之后直接進(jìn)入下一次讀取循環(huán)。超時(shí)之后應(yīng)該先調(diào)用HAL_ADC_Stop把轉(zhuǎn)換序列復(fù)位再重新 Start。更穩(wěn)妥的做法是在每次讀取完成后主動(dòng)調(diào)用HAL_ADC_Stop讓狀態(tài)機(jī)回到可再次啟動(dòng)的姿態(tài)。如果你是單通道低頻輪詢這個(gè)操作的開銷可以忽略如果是 DMA 循環(huán)模式不要隨便Stop否則 DMA 會(huì)停在一個(gè)半滿狀態(tài)緩存里殘留無效數(shù)據(jù)。4.5 多通道 DMA 數(shù)據(jù)錯(cuò)位緩存大小不是隨便填的現(xiàn)象四通道 DMA 采集緩沖長度設(shè)成 1000前 1000 個(gè)數(shù)據(jù)看起來通道順序正常之后每 1000 個(gè)數(shù)據(jù)里就有一次通道錯(cuò)位——通道 0 的數(shù)據(jù)出現(xiàn)在通道 1 的位置持續(xù)一小段后又自己恢復(fù)。原因DMA 循環(huán)模式和 ADC 的轉(zhuǎn)換序列之間存在對齊問題。ADC 每完成一輪四通道掃描會(huì)產(chǎn)生一次 DMA 請求DMA 把這 4 個(gè)數(shù)據(jù)搬入緩沖區(qū)。當(dāng)緩沖區(qū)寫滿時(shí)如果恰好寫到了某個(gè)通道的中間位置即緩沖區(qū)大小不是 4 的整數(shù)倍DMA 從頭開始覆蓋時(shí)通道和緩沖區(qū)的下標(biāo)對應(yīng)關(guān)系就亂了。之后每次滿緩沖區(qū)中斷時(shí)你按「每 4 個(gè)一組」切分?jǐn)?shù)據(jù)通道標(biāo)簽從中間開始錯(cuò)位直到湊巧再次對齊。解決緩沖區(qū)長度必須設(shè)成通道數(shù)的整數(shù)倍。實(shí)際項(xiàng)目里我更建議把緩沖區(qū)開成通道數(shù)的倍數(shù)乘以一個(gè)較大的輪數(shù)比如四通道 × 250 輪 1000這樣每次 DMA 傳輸完成中斷時(shí)緩沖區(qū)邊界天然落在某一輪轉(zhuǎn)換的結(jié)束位置。如果你需要更高頻率的實(shí)時(shí)處理可以把 DMA 設(shè)置成半傳輸中斷和數(shù)據(jù)傳輸完成中斷兩個(gè)回調(diào)這樣緩沖區(qū)可以做雙緩沖CPU 在 DMA 寫滿后半?yún)^(qū)時(shí)處理前半?yún)^(qū)數(shù)據(jù)不會(huì)互相覆蓋。5. 精度下限與驗(yàn)證三種實(shí)測手段與一處長期習(xí)慣HAL 庫不是精度問題的解藥它只是把「讀 ADC」這個(gè)動(dòng)作標(biāo)準(zhǔn)化了。真正決定你能從 ADC 里挖出多少有效位數(shù)的是布線、參考源和校準(zhǔn)這三個(gè)環(huán)節(jié)。這里分享三個(gè)我常用來驗(yàn)證 ADC 鏈路是否健康的實(shí)測手段。第一種短路測試。把 ADC 輸入引腳直接接地連續(xù)采樣 1000 個(gè)點(diǎn)理想情況下所有數(shù)值都是 0 或極少數(shù) 1。如果讀到的基數(shù)偏高且波動(dòng)明顯說明存在外部串?dāng)_或 PCB 漏電。再把引腳接到 VREF采樣值應(yīng)該在滿量程附近最大偏差不超過幾個(gè) LSB。這套測試不用任何精密儀器五分鐘就能定位大部分「數(shù)值漂移」問題。第二種分壓線性度測試。用一個(gè)精密電位器多圈可調(diào)那種別用碳膜微調(diào)從 VREF 到地搭一個(gè)分壓器中點(diǎn)在 ADC 引腳上。每旋轉(zhuǎn)一小格記錄一次讀數(shù)然后以實(shí)測電壓為橫軸、ADC 原始值為縱軸畫散點(diǎn)圖。理想情況下所有點(diǎn)應(yīng)該落在一條過原點(diǎn)的直線上。如果中間段有彎曲通常不是 ADC 的問題而是電位器負(fù)載效應(yīng)——這說明你的信號(hào)源阻抗太高需要縮短采樣時(shí)間或加一級(jí)運(yùn)放緩沖。第三種校準(zhǔn)前后對比。同一條件下讀一組數(shù)據(jù)執(zhí)行一次校準(zhǔn)再讀一組把前后均值差記錄下來。這個(gè)差值代表芯片出廠失調(diào)的真實(shí)幅度。你可以把這個(gè)數(shù)值寫進(jìn)配置文件的常量里以后換芯片批次的時(shí)候重新測一次就能通過簡單補(bǔ)償把失調(diào)誤差壓到最底。最后說一個(gè)我在多項(xiàng)目里養(yǎng)成的習(xí)慣ADC 相關(guān)的所有配置參數(shù)——采樣時(shí)間、分辨率、時(shí)鐘分頻、校準(zhǔn)狀態(tài)——全部集中到一個(gè)結(jié)構(gòu)體且在每個(gè)參數(shù)的旁邊加一行注釋寫明這個(gè)值是拍板定的依據(jù)是什么以及如果調(diào)大調(diào)小會(huì)犧牲什么。因?yàn)?ADC 的參數(shù)調(diào)節(jié)不像邏輯代碼那樣有明確的錯(cuò)誤與正確的分界它更像一組旋鈕你把采樣時(shí)間擰大了噪聲小了但吞吐低了你把分辨率從 12 位降到 8 位速度快了但精度沒了。過了兩個(gè)月回來看代碼如果沒有注釋你根本記不住當(dāng)時(shí)為什么在這組參數(shù)上停手。這也是我反復(fù)提醒團(tuán)隊(duì)里新人的一句話ADC 配置沒有標(biāo)準(zhǔn)答案只有可復(fù)現(xiàn)的權(quán)衡。參數(shù)定下來之前先用手段一和手段二把硬件底子驗(yàn)證一遍再談優(yōu)化——否則你優(yōu)化的可能是噪聲本身。希望這篇筆記能幫你在 HAL 庫的 ADC 鏈路上少走幾段冤枉路。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美在线视频99| 亚洲成人在线资源| 91av熟女人妻| 久草色悠悠在线视频| 激情婷婷综合久久| 欧美激情亚洲情色| 日韩伦理视频| 黄片www.| 樱花蜜乳av| 色眯眯av| 久久偷偷色综合蜜桃| 亚洲精品97中文字幕| 午夜精品人妻二区三区| 欧洲综合视频| 色综合网1| 亚州欧美色图| 樱花草社区www中国| 国产精品爽爽va在线观看98| 国产一区二区成人av在线播放| 亚洲欧美setu| 九九九综合精品| 熟女被操视频网址| 囯戸精品高潮呻吟旡码| 国产精品网址| 日日日日做夜夜夜夜做无码97| 密桃99999| 唐山老熟妇露脸啪啪叫| 色综合av男人天堂| 内射老妇BBWX0C0CK| 99国产精品| 综合九九| 日韩丨制服丨中文|在线| 91在线限制级| 亚洲最大黄网| 欧美日韩情色一区二区| 天天影视综合色| 91艹逼精品| 男人把坤坤插入女人的下体| 欧美 亚洲 大香| 大香蕉色十月| 亚洲性爱高潮影院| 欧美色图天堂网m| 超碰97起碰| 国产99 中文字幕日韩小视频| AV和黑人在线播放| 午夜啪啪片| 欧洲综合色| 久久久精品,3| 97资源站日韩| 国产精品探花视频| 女人午夜视频777| 亚洲欧综合另类无码一区| 久热在线精品免费观看| 成人性爱视频在线看| 中文字幕在线免费观看| 东京热男人的天堂| 国产在线能看的你懂的| 亚洲春色一区二区三区| 日韩欧美大片免费高清啪啪| 国产一区在线播放| 精品国产一区探花在线观看| 一级片视频啪啪| 亚洲无码成人精品| 久久亚洲精品成人av| 国产精品久久伊人| 欧洲综合视频| 亚洲色图伊人网| 丝袜美腿操av| 碰碰97| 东北老熟女| 78超碰| 日本羞羞的视频在线播放 | 青青青青操国内视频在线| 欧美日本成人一区二区| 日韩激情小说一区二区| 制服乱伦| 精品无码久久久| 九X超碰| 无码天堂| 天天艹天天日| 亚洲精品亚洲人成在线麻豆| 国产免费一区在线观看| 黄色大香焦1级‘′‘| 中文字幕av色| 区一二区日韩亚洲乱码av电影| 人人澡综合涩| 噜噜噜噜久久久精品免费| 蜜桃网熟妇| 天天澡天天爽日日AV| 免费的黄片有限公司| 日韩国产乱子伦App| 婷婷丁香久久| 亚洲久草AV色图| 天久久久噜噜噜久久国产精品爽爽| 国产精品女aA片爽爽视频| 99国产精品视频尤物| 91超碰人人操| 老女人老91妇女老热女| 无遮挡又黄又刺激的视频| 伊人女女资源在线观看| 久久精品视频28| 亚洲熟妇综合久久久久久| 97久久超碰亚洲| 亚洲精品97| 永久免费发布性爱网| 丁香五月激情综合| 国产女人9999| www.yeyecao| 丁香激情网| 我中文字幕6区| 久久一区二区蜜桃| 久久性爱大全| 无码人妻系列少妇| 欧美亚洲第一页| 亚洲成人碰碰| 中文字幕视频在线观看| 日韩性爱人人爱人人操| 91成人在线| 九月伊人中文字幕| 超碰97起碰| 国产麻豆91欧美一区二区久久婷婷国产精品 | 熟妇熟女视频一区二区三区| 欧美日韩狠狠爱| 国产精品亚洲无码| 人人澡人人弄| 超碰在线香蕉| 亚洲国产青青| 爆操无码| 91丝袜人妻| 亚洲图片偷拍视频区| 98精品国产乱码久久久久久| 亚洲精品国产无码高清| 日日骚 av| 国产成人91一区二区三区| 伊人久久88国产女| 日韩一级欧美一级国产一级台湾| 日韩三级网址| 久久综合18p| 97欧美日韩综合| 久草福利在线资源站| 亚洲91网站| 国产精品成久久久久午夜午夜| 日韩AV电影网站| 99re28在线观看| 一区二区三区视频| 美欧色综合| 99re这里只有精品中心播放| 操逼操2| 精品国产自在在线99| 亚洲av成人精品一区| 欧美日日夜夜| 伊人久久大香线蕉无码| 久久亚洲天天做| 亚洲在线a| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 日本999精品| 久久久97| 蜜桃精品视频一区二区三区| 桃色五月天| 亚州综合网| 啊啊啊好舒服好爽啊啊啊视频| 欧美成人A√在线一区二区| 天天影视激情欧美| 青娱乐久久艹| 日韩欧洲操屄视频| 日本ZZ高免费A级视频| 91丨九色丨国产打屁股| 国内一级精品| 超碰97久久观看| 丁香六月婷婷综合| 色欲三区| 亚洲男人综合网| 熟女被操视频网址| 亚洲AV高潮| 加勒比无码一区二区三区| 超碰综合97在线| 丁香激情网| 2025年A片视频精品| 热热色色综合| 91天天日| www.人人cao| 亚洲色综合| 亚洲视频,小说| 久久久久国产精品久久久| 丁香五月影院| 国产精品情侣啪啪| 性影在线视频| 亚洲欧美色图| 精品国产99| 超碰亚洲97| 思思热久久成人| 人人妻人人爽人人精品| 一直超碰| 伊人久久大香蕉线AV五月天| 久久婷五月| 国产AV激情无码久久无码 | a片偷拍视频| 中文字幕第二页| 久久久久密| 十八禁啪啦拍视频无遮挡| 爱妃国产亚洲视频中文字幕| 久久精品国产亚洲粉嫩| 天天天操天天天爱| 加勒比海成人视频网| 欧美极品女人的天堂| 日韩亚洲Av人人夜夜澡人人爽| 最新日本中文字幕| 91AV入口| 久久亚州精品成人Av无| 99re免费视频精品全部| 手机看片91人妻| 丰满人妻-区二区三区| 亚洲影视第一页| 精品然女一区二区| 日韩电影天堂视频一区二区| 人妻少妇无码| 人妻99p| 精品亚洲| 97香蕉网| 91在线免费精品视频| 99rre在线精品99re8| 亚洲资源网| 亚洲色91C| 91色爽欧美| 亚洲综合影片| 久久亚洲天天做| 色好看av| 日夜干射色啊| 亚洲欧美综合网站| 美女上床网站| 操熟女91| 午夜小电影在线插入淫高潮| Av手机版天堂网| 麻豆视频国产一区二区| 国产精品美女久久久久AⅤ国产馆| 久久男人精品| 思思热免费视频观看| 强奸xx国产| 亚洲欧美精品一区天堂久久| 亚洲 图片 综合91| 无码人妻精品一区二区三区九九| 日韩一级二级三级免费看完整版国语版 | 1级黄色夫妻对换性交免费看| 亚洲欧美日韩免费观看| 亚洲啪啪视频免费| 翔田千里无码一区| 欧美大香蕉专区网| 婷婷伊人綜合中文字幕| 蜜臀少妇一区二区| 女优大全 - 91n| 伊人久日| 黄色免费网| 99热网站| 久久男人的天堂国产| 日韩欧美麻豆大片| 激情小说亚洲视频| 国产精品一区二区三区在线| 91视频综合网| 干日本人少妇午夜寂寞影院| 伊人久久婷婷| 最新中文字幕av| 懂色影视久久| 久久男人的天堂| 久久五十路熟女人妻| 欧美疯狂做爰xxxx| 人妻出轨一区二区三区| 99热婷婷一区二区三| 欧美成人性爱视频在线播放| 国内毛片国产专区二| 天天日天天插| 一区二区三区成人| 九九九九9999| 国产 丝袜 欧美中文 另类| 天天日天天操心| 国产一区二区三区,在线观看观看| 久久成人东京热人妻| 天堂v无码免费视频| 日韩精品在线观看网站| 99色| 久久久久九九九九九| 亚洲欧美日韩中文播放| 日韩AV熟女乱伦| 成人日本精品九区| 日韩肏逼视频| 无码免费一区二区三区啪啪| 国产免费一区| 强奸乱伦AV网站| 国产精品天美传媒| 国产女人视频三四五区| AA丁香综合激情| 91色色综合| 中文字幕天堂在线| 日韩精品区二区三区不卡| 亚洲色图伊人网| 国产一区在线观看无码AV| 啊啊啊com| 亚洲人妻精品一区二区| 人妻激情偷乱视三区频一区二区| 中文字幕欧美日本乱码一线二线| 国产精品人人爽人人做可爱福利| 97干com| 91天天| 色欧美天天| 97 国产精品| 久草免费在线一区二区| 婷婷精品国产一区二区三区日韩| 91中文字幕| 综合一区中亚洲国产成人综合精品| 日本男人插女人的逼黄色| 精品蜜乳AV免费观看| 高凊专区人人操| 麻豆成人影音在线| 国产污视频麻豆传媒一区二区| 亚洲欧美黄| 狠狠躁AV| 情趣丝袜无码操逼视频| 亚洲男人天堂2013| av天堂手机版追回| 春色91| 看日韩美女二区三区免费操逼视频| 欧美性Fer办公室秘书| A V视频日本| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 草伊人高潮喷水超碰| 午夜福利精品| 精品-91人妻子系列| 国产一区96在线| 久久久久久久97| 精品国产精品一区二区| 欧美夜夜| 久久久久久久久久久久久久久久9 亚洲成人妻日韩在线 | 人妻黑丝袜电影| 亚洲91在线播放影院| 成人久久精品| 天天爽天天| 国产97亚洲| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 诱惑网综合| 日韩三四五区| 久久曰曰| 青青草国产欧美非洲黑人| 国产成人网站在线观看| 国产精品96| 中文字幕免费观看| 久久性爱城| 亚洲在线91| 精品国产一区二区三区久久久蜜臀| 国产精品永久免费10000| 啊啊啊啊啊啊啊网址在线观看| 欧美一区二区观看在线| 黑人猛交| 中出在线视频| 亚洲欧美天堂在线| 91精品久久综合熟女| 2017大香蕉| 久久久免费懂色| 99激情| 国产精品探花色| 亚洲在线A| 久久综合日韩亚洲欧美| 国产无马av| 精品久久久久久AV无码| 国产精品久久久久久久久久久久久久吹| 台湾佬中文娱乐自偷自拍| 欧美系列在线一区二区| 成人av在线播放| 加勒比色99999| 啊啊啊97视频| 国产伦精品免编号公布| 久久久久久亚洲中文| 97超碰影音| 欧美成人色| 亚洲精品 大香蕉| 美女操逼A A| 欧亚日本情色| 77国产精品| 偷窥自拍亚洲色图| 五月天婷婷色色| 最新岛国大片| 黑人精品XXX一区一二区| 久久成人东京热人妻| 91久久堂| 人人搡人人肉久久精品| 九九热免费国产视频婷婷伊人五月 | 亚洲a色| 亚洲天天操| 96精品一区| 97在线无精品| 动漫av中文| 亚洲天堂另类小说男人| 亚洲欧美一区二区三区在钱蜜桃| 久久精精区一区二区一蜜桃一区二区| 日本123区操B视频| 国产999精品久久久久久| 婷婷五月天色色| 欧美视频在线视频免费va| japan日本高清乱xxxx| 国产亚洲精品无码三区| 欧美一级美片在线观看免费| 日本黄色大片一级视频免费麻豆| 久久受www免费人成| 综合久久少妇中文字幕| 精品免费视频国产一区| 99re热有精品视频国产| 婷婷五月天激情四射| 亚洲囯产精品女人久久久| 18精品一二区| 无码天堂| 9国产超碰| 国产偷拍网站| 欧美日韩大黄片| ,成人免费啪啪视频| 中文字幕精品一区二区精| 久草免费福利在线播放| 国产亚洲精品第一最新| 色情综合| 少妇蜜汁| 欧美一二三区四五区| 熟妇艹鸡八| 亚洲一二三精品久久网| 99re69| 九九av| 肥佬影院91| 亚洲 无码 偷拍| 久草免费福利在线播放| 亚洲欧美国产日本一区二区三区| 久久九九99| 精品人妻1237| 超碰97人人乐| 加勒比伊人| 久久91精品国产9丨久久分亭| 成人乱码一区二区三少妇| 亚洲五月婷| 国产欧美日韩在线观看麻豆传媒公司 | 色播综合| 最新中文字幕av| 成人区人妻精品一| 秋霞成人一级在线观看| 久久久夜夜嗨免费视频| 99精品成人免费看| 91精品人妻一区二区三区蜜桃臀| 天天天天操| 99精品网站| 33044男人的天堂深夜备| 欧美影院一区二区三区| 久久性爱大全| 日韩欧美丝袜诱惑| 国语少妇精| 操操吧亚洲乱伦视频| 亚洲精品aa久久伊人| 丰满欧美少妇| 97人妻人人躁人人玩人人| 亚洲乱码精品一区二区| 久草婷婷| 97资源免费视频| 久久伊人影院| 午夜色婷婷| 国产精品熟妇一区二区三| 亚洲天堂男人天堂网| 男人高清无码一区二区| 午夜福利区| 粉嫩av在线| 国产一级αv免费看片| 深田咏美亚洲精品福利社 | 色官网色综合| 精品久久久久黄少妇| 中国和日本人色哪个不下载能放| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 国产精品欧美日韩久久| 啊啊啊在线观看免费视频| 超碰人妻久久| 亚洲啪啪性视频| 天天射夜夜操| 91是天天| 久久久久久久97| 婷婷综合网| 国产不卡的视频| 欧美激情性爱视频网站| 欧美精品91| 国产精品点击进入在线影院高清| 激情五月激情综合网| 在线播放一级无码视频| 九九热九九| 一二区在线观看视频| 亚洲日韩精品一区视频在线| 色超碰综合| 国产精品 久久久精品一牛| 人妻无码后入| 在线色导航| 久久6热精品99视频| 日韩欧美tv一区二区在线观看| 中文字幕视频2区| 精品一级毛片在线观看| 久久仑合| 中文字幕奈奈美被公侵犯| 亚洲天堂人人妻| 中文字幕一区二区三区高清| 超碰午夜| 九九色热| 99色网| 国产高清在线自在拍69| 99re免费视频精品全部| 欧美亚洲中文| 91撸色网 玖玖网 欧美| 天天草夜夜草高潮片| 亚洲少妇激情视频| 玖玖资源综合在线视频| 一本色道熟妇| 日本一区二区三区精品| 6080YYY午夜理论片在线观看| 夜夜嗨av午夜成人| 青娱乐国产盛宴视频| 图色综合网| 国产一级特黄大片处女| 欧美亚洲国产日本在线,久久精品国产| 亚洲天堂一区二区久久| 97色操| 色月天AV导航| 玖玖爱免费观看视频| 一本久道久久综合狠狠爱一密臀精| 91亚洲不卡一区| 操www| 插B在线观看| 精品少妇后入一区二区三区四区人妻巨乳| 黄色免费一级在线毛片| 国产夫妻性生活视频| 夜夜中出国产| 亚洲av无码国产精品字幕| 国产和美国毛片| 日本在线一二 | 91AV天堂| 亚码激情| 尤物一级在线免费观看| 久久久久久99AV无码免费网站| 欧美大色交| 性爱动态120秒| 久草免费福利在线播放| 国产无码精品无码| 欧美日韩亚洲少妇寂寞影院正在播放 | 熟妇操花| 国产成人精品必看| 精品人妻丰满熟妇一区二区三| 97久久久精品| 伊人久久青青草| 亚洲精品a人片在线观看视| 亚洲欧美综合| 人爽不卡视频| 91亚.色| 性色乱AV一区二区| 99无码视频| 亚洲毛片一级带毛片基地| 污色区网站| 一起草视频在线| 日本人妻伦在线中文字幕| 91美女视频电影| 裸模AV女优| 亚洲天堂另类小说男人| 97干在线| 天天躁日日躁AAAXX| 久久亚洲AV无码专区国产精品| www.av家庭乱伦| 中国熟妇| 九九精品网| 蜜桃午夜视频一区二区 | 亚洲色图国产另类| 超碰激情808| 艳美熟妇先锋一二三区| Av色五月| 婷婷综合在线观看| 91在线免费观看处女| 91蜜臀熟女| 婷婷在线播放| 人妻熟女字幕一区二区| 91爽啪| 欧美性天天影视| 99在线精品观看99| 色综合天天| 人人天天欧洲| 久久xx| 无码9区| 神马精品视频| 吻戏激情性巴克| 偷拍伦理视频| 第四色亚洲色图| 中文字幕在线观看第二页| 久久综合久久综合人久久夜精品| 99热色精品| 亚洲日韩AV视色| 夜夜高潮夜夜爽高清视频一| 精彩国产视频播放1区2区| 综合网亚| 操死我了啊啊啊| 中文字幕一二三av| 欧美亚洲今日在线| 在线毛片片免费观看| 国产偷拍网站| 日B操| 性久久久| 67194国产| 麻豆性爱视频在线播放| 九99久久| 91AV入口| 五月天丁香| 蜜屁Av| 国产精品国产精品国产| 加勒比综合| 香蕉人欧美综合| heyZO天然素人无码AⅤ专区| 国产一区二区在线电影| 999日韩中文精品观看视频。| 麻豆av一区二区三区| 九九九精品一区二区无码| 久久午夜神马| 日韩无码精品综合久久| 丁香五月综合| 97精品视频免费| 人妻夜爽夜夜爽| 人妻久久一区二区三区 | 九月丁香婷婷| 人乳av| 少妇熟女1区2区3区| 日韩午夜精品一区二区三区电影| 婷婷五月天基地| 日韩78m视频| 亚洲图片另类| 亚洲熟女中文字幕在线| 婷婷99狠狠躁天天躁| 欧美性生活内射| 久 久无码人妻AV| 亚洲欧美中文一区二区三| 欧洲无码一区二区| 久久精品操| 久久东京伊人一本到鬼色| 91在线页| 成人日本片久久久蜜桃| 3D污黄视频在线观看| 超碰人妻中文在线| 国产一级137片内射麻豆| 午夜久久一区二区无码中出| 夜夜爽夜夜| 丁香九月婷婷| 日本在线伊人啪啪| 涩五月婷婷| 九九热精品视频六| 99热9| 亚洲高清欧美总合| 婷婷色在线| 外国免费性情大片| 久久久久久久一级黄色打同平台| 九七超碰人人乐| 婷婷久久五月| 天天天肏屄肏屄肏屄欧美欧美| 六月激情婷婷| 躁躁躁日日躁2020| 小草精彩毛片| 中文AV制服乱伦| 欧洲亚洲人妻无码中字久久三区四区| 五月丁香六月综合缴清无码| 男插女青青影院| 日本成人A片网站| 97超碰这里只有精品| 亚洲中文日韩欧美大香蕉视频| 91AV天美在线视频| 欧美性爱在线无码| 亚洲资源站| 国产黄a三级三级三级av在线看| 懂色aV一区二区天美传媒| 黄总AV色图| 欧美日韩操逼动图| 亚洲第一视频 欧美风情 日韩| 日日夜夜草草草| 亚洲密乳AV| 欧美久久久| www.国产高潮精品| 中文久久久| 97日视频| 睡产熟女乱伦| 91色综合| 国产乱青青草久久| 91无码中出人妻视频| 国产无码精品久久久久久| 国产中文福利| 九九99久久| AⅤ片水多多| 啊啊啊久久久视频| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 成人 日韩欧美一区| 欧美 精品国产制服第一页| 亚洲熟久久| 欧美激情综合色综合啪啪五月| 日韩成人性日韩成人性爱视频在线免费观看 | 手机看片1024你懂的国产| 一二三区精品视频| 欧美国产有色电影| 男人的天堂啪啪啪啪啪蜜桃不卡| 免费一级性爱久久| 亚欧成人一级片在线播放| 美日韩在线不卡人妻| 99精品在线观看| 91影库| 亚洲影视综合| 午夜无码熟妇丰满人妻| 亚洲另类久操网| 国产免费一区在线观看| 国产精品久久天天干| 玖玖大干人妻| 蜜臀久久久| 久热69九色熟妇97| 婷婷亚洲色| 国产不卡免费在线视频| 熟女探花啪啪| 色婷婷一区二区三区久久| 91精品久久久久久77777| 久九干| 综合五月天| 精品人妻美妇91job| 91一区二区三区蜜桃| 欧美九九九九九| 久啪视频| 999熟女精品| 久久伊人青青草| 婷婷五月天久久精品视频一区二区三区| 国产激情片在线观看| 激情抓乳插进去啪啪啪日韩 | 欧美性暴力猛交| 一区二区无码视频| 久久久噜噜噜久久人妻| 国产丰满少妇久久久精品影院| 欧美|91色综合| 激情六月婷婷| 狠狠色丁香| 91九色在线| 不卡啪啪视频| 色情综合| 欧美操人| 婷婷五月天福利| 熟妇在线视频一区二区| 人人摸人人干| 97资源制服丝袜| 校园春色 男人天堂| 激情深爱五月天| 91丝袜美女国产| 亚洲黑丝在线| 嗯嗯啊啊视频在线看| 99免费视频| 久久午夜伦| 日韩pv中文| 按摩中文字幕| 久久超碰、| 五月天久久婷婷亚洲| 91九九九小逼| 五月天欧美色图| 99热在线只有精品| 男人综合网| 老熟女91| 久久精品国产亚洲AV高清演员表| 亚洲成人性爱网站在线播放| 国产精品999zyz| 很很热性爱视频| 婷婷丁香六月天| AND人妻系列| 色天堂综合| 精品白丝一区| 9999久久久| 无码人妻精品一区二区三区99不卡| 狠狠色伊人亚洲综合网站色| 亚洲色 国产 欧美 日韩| a级成人毛片免费视频高清| 综合一区中亚洲国产成人综合精品| 久久丁香五月婷婷| 青娱乐 成人娱乐在线| 97看操| 久久 久久国内精品亚洲 | 91九色在线| av优播| 综合久久99亚洲人妻中文在线| 二级毛片| 思思久热在线精品66| 国产欧美岛国精品一区| 开心五月激情网| 亚洲色性情三级| 99草精| a男人的天堂久久一级A毛片| 国产AV激情无码久久无码 | 国产风韵犹存熟妇三区| 人妻精品一区二区| 国产免a费看黄片在线| 狠狠色丁香| 97伪v| 亚洲丝袜诱惑| caoni国产亚洲av| 看黑人AV不卡| 国产suv精品一区| se吧提供91精品国产91久久久久久| 一区二区三区欧美激情| 免费看污网站| 欧美日韩国产三级黄色| 亚洲色人妻综合| 国产蜜臀在线| 久久久久久久久久久免费精品| 五月丁香色色网| 久久久111| 日本超碰在线国产一区| 男同专区一区二区三区在线| 久久久久久99AV无码免费网站| 强奸a片网| 欧美 日韩 婷婷 五月| 91综合网站| 天天操天天舔| 热热色色综合| 性色av大全| se..亚洲欧美| 综合五月婷婷亚洲一区| 人妻精品综合中文字幕在线 | 超碰 欧美| 日本一区视频在线观看| 精品少妇一区二区三区免费观看| 欧美日韩系列| 夜间福利片1000无码| 蜜臀久久在线视频| 欧州一区二区三区四区| 天天影视色香色欲| 精品久9| 免費黃色視頻觀看一| 精品乱码久久久久| 在线中文字幕| 国产SV一线| 日韩av性爱在线播放| 久操视频免费在线观看| 国产精品丝袜在线| 色色婷婷五月| 日本欧美不卡| 亚洲男人的天堂亚洲| 偷偷人人精品女女久久| 麻豆这里只有精品| 精品人妻15区| 久操大香蕉手机视频在线看| 夜夜高潮夜夜爽夜夜爱爱一区 | 精品人妻一区二区三区四区| 日韩乱插| 理论久久婷婷网8| 丁香婷婷色五月| 97久久久久| 欧美性爱免费短视频| 可以看的av| 亚洲女人91| 久超碰在| 国产精品成人AV片免费看网站| 精品网站9999| 国产第12页| 青青草玖玖爱| 90后性网国产欧美| 日本久久久久久久久久| 骚逼高潮久久精品| 日韩欧美亚欧在线视频| 91艹逼精品| 中日韩熟女| 蜜桃久久一区| 亚洲图片欧美91N| 性爱视频免费网址| 蜜臀无码一区二区| 天天插天天操| 日韩在线观看三级电影| 三级网站超变态精品| 日本色色色色色视频| 免费视频观看60秒| 99热免费| 狼狼色丁香久久婷婷综合五月| 丰满熟女人妻一区二区三五十一路| 午夜男人一级A片7777| 激情欧美97| 欧美色图成人网一区二区| 黄色性爱网网| 久久午夜色播影院免费高清| 精品然女一区二区| 国产一级αv免费看片| 日本精品999| 天堂精品小草| 不卡啪啪视频| 日本伦乱九九九综合| 亚洲综合夜色| 亚洲,欧美,春色,另类| 日韩免费三级黄片电影| 久久超碰天天| 欧美综合在线91| 日本中文字幕在线电影| 91精品无码久久久久久久| 天美麻豆黄色录像| 欧亚乱色熟一区二区三四区| 免费看A片毛毛片在线播| 国产精品自拍视频| 色九九综合AV| 快点操死我| 久久草在线综合视频| 9色国产精品一区粉嫩| 亚洲AV不卡在线观看| 厕所偷拍在线| 色色五月婷| 手机在线中文字幕国产| 91丝袜| 亚洲,欧美,综合网| 国模不卡一本二本三电影| 婷婷成人五月天| AV污污污污| 久久无码一区二区二三区性色| 欧美综合天堂| 国产AV人人夜夜澡人人爽麻豆| 蜜臀AV一区二区三区激情综合| 大香蕉AV在线| 亚洲成a人在线观看久| 欧美亚洲国产91在线| 综合久久99| 九九九九一区| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 亚洲欧美综合区自拍另类| 国产在线播放成人免费| 日日躁夜夜躁狠狠躁超爽| 人人操人人精品影片| 97操在线| 九九九九九九九九九五码| 97久精品| 蜜臀久久一区二区| 99精彩视频| 丁香五月激情婷婷| 亚洲经典啪啪| 黄色毛片A片| 久久久精品视频免费观看| 午夜操逼不卡| 国产精品4p在线观看| 亚洲中字幕日本一区二区三区| 久久伊人影院| 人人操人人肉久久精品| 精品人妻一区二区三区免费视频| www.acm成人黄色毛片| 九九人妻| 亚欧美色图| 偷拍欧美亚洲| 久久久久久久久9| 亚洲综合在线91| 9久久久久久| 欲香欲色综合天天伊人| 超碰97 线线 在现| 午夜超碰| 男插女青青影院| 日韩极品无码B| 免费?级毛片无码?∨蜜芽试看| 老外又粗又长一晚做五次| 国产家庭乱伦表演| 巨爆乳一区二区爆乳区| 中国少妇XXXX做受| 欧美一区二区观看在线| 中文字幕 国产 精品| 另类专区在线观看| 欧美日韩高潮喷水91| 殴美牲| 大香伊人在线一区| 大乔未久88一区| 久久99久久99精品天美传媒棢·纸:. | 九九九九欧美| 97综合久第一页| 婷婷色香伊人| 久久久精品无码亚免费| 蜜桃不卡一区二区| 91美女在线视频| 九九九九97| 欧美丝袜中文字幕07在线| 欧美激情综合| 精品九九国产无码| 女人被添高潮免费视频| 日本久操视频| 熟妇人妻一区二区三在线| 亚洲91射| 狠狠91| 亚欧日韩成人| 亚洲男人天堂Av| 色大香蕉97N| 亚洲国产97在线精品一区| 91日韩| 国产操逼逼网| 六六久久日韩不卡| 国产乱人妻精品入口| 亚洲图片视频小说| 凹凸视频在线一区二区| 丰满少妇乱子伦精品无| 亚洲色图超碰在线| 在线情色电影 91大| 酒色综合网| 人人操,操人人| 亚洲18禁| 久草色在线观看| 日本性爱不卡视频| 夜夜夜久久| 2019男人的天堂| 自拍偷拍国产欧美日韩韩| 人人透人人操| 亚洲和欧美裸体美女双飞视频| 色悠悠伊人网五月天| 欧美日韩另类在线播放| 天天综合色| 色婷婷一区二区三区久久午夜| 2024黄色视频| 色色色色网站| 亚洲精品蜜桃久久久久久久| 久久人| 免费一级欧美片片线观看| 加勒比综合九九99视频在线播放| 久久久性爱| 日本一区二区成人在线| 99热在线不卡| 热99re69精品8在线播放| 乱伦日本色图AⅤ| 东北老女人的激情视频| 97香蕉网| 色噜噜综合在线| 免费男人的天堂| 福利视频一区二区微拍| 97内射偷拍| 男人天堂网站| 五月婷在线| 久久久亚洲精品中文字幕人妻| 中国女人内射6XXXXX| 日本欧美色| 亚洲精品一二牛牛| 中日无幕一二三四区| 天堂综合网| 99久久久99久久91熟女| 久草毛片| 久久性爱大全| 五十路人妻在线| 国产极品美女高潮无套在线观看| 97色色色综合网站| 国产高清亚洲日韩一区| 日韩乱码Av| 97色在线视频| 亚洲一区二区麻豆影院| 日本精品一区二区不卡| 操逼日韩无码| 欧美性爱一区二区三区| 日韩紧密久久| 综合网97| 欧美精品23| 99热伊人| 麻豆av一区二区| 五月婷婷六月天| 性91| 粉嫩国产精品久久粉嫩| 欧美加勒比| 国产超碰国产97| 欧洲在线性爱视频| 一道本东京热加勒比一区二区三区| 在线a亚洲视频播放在线| 无码91| 翔田千里Av在线| 九九九九九九九九九五码| 亚洲暴力强奸AV| 欧美在线|亚洲| av中文在线| 日韩视频中文字幕| 97久久超碰国产网站| 日韩欧美成人性爱在线| 97视频在线观看网站| 操逼日韩无码| av影片在线观看不卡| n1038 一二三区| 黄片色区软件| 成人AV在线网站| 欧美日韩性感| 国产亚洲精品A在线观看下载| 久久99精品国产| 一区二区三区精品久久| 91 丝袜在线播放| 区一在线观看| 波多野结衣先锋影音| 人人操人人操人妻人| 99国内精品| 波多野结衣被操50分钟免费视频| 亚洲欧美啪啪| 97干com| 日韩欧美午夜视频在线| 亚洲情色 欧美| 偷拍超碰| 你懂得91| 黄色香蕉视频网站一区| 国产风韵犹存熟妇三区| 亚洲不卡AV在线| jk白丝没脱就开始啪啪| 97人人夜| 欧美色天堂网在线视频| 欧美99热| 99久久精品欧美国产| 婷婷激情丁香| 男人的天堂色偷偷青青草视频婷婷网| 国产亚州精品美女久久久免费| 淫荡网址| 高清不卡 中文 人妻| 狠狠躁AV| 一区二区娱乐网站| 国产亚洲深夜激情| 91蜜臀人妻中文字幕在线| 青青草日本中文字幕| 天天综合网站| 欧美黄片欧美黄片xxx| 亚洲婷婷丁香在线| 成人草草视频| 欧美日韩青操| AV一二区| 亚洲欧美精品一区天堂久久| 一区二区三区探花在线观看| 精品人妻一区二区三区在| 女同性恋中文字幕| 亚州 综合 色图| 亚洲色图久久成人| 国产超碰人人操| 三级特黄60分钟播放| 精品欧美老熟女一二区| 欧美草草高清日韩视频| 嗯嗯啊啊好大好爽| 人妻插插人妻人| 亚洲有码 视频一区| 五月丁香综合激情| 操逼操网| 日韩亚洲中文字幕在线| 国产高清午夜成人在线观看| 992视频一区| 超碰在线日韩一区| 亚州国产成人精品女人久久| 啊啊啊在线观看免费视频| 久极品在线观看| 91在线欧色| 91 亚洲 欧洲| 色婷五月天| 深爱五月天| 日本福利社| 97色色婷婷| 日本韩欧美在线播放a| 91社区拍啪人妻| 亚洲天堂7777| 一区二区视频在线播放| 成在线人在线观看视频| 中文字幕,人妻,日韩| 中文字幕黄片在线| 2019精品国产无码成人| 日本精品一级二级三级| 人人爱人人乐人人操| 人人模人人看| 久久久精品网站| 熟妇的味道HD中文字幕| 免费a v| 天天综合97| 欧美综合网| 亚洲精品国语在线播放| 日本中文熟女视频| 亚洲av无码国产精品字幕| A级国产欧美激情在线| 2025年A片视频精品| 国产无码三级视频在线观看| 都市久久精品激情亚洲| 亚欧日韩成人| 亚洲av淫乱| 婷婷五月天成人网|