日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

STM32調(diào)試踩坑指南:從No target connected到串口亂碼的排查方法

STM32調(diào)試踩坑指南:從No target connected到串口亂碼的排查方法 做STM32開發(fā)這些年我見過太多人卡在同一個地方程序?qū)懞昧司幾g也過了一點(diǎn)下載——No target connected。然后開始懷疑人生板子壞了芯片燒了線沒接對其實(shí)大概率都不是。這種經(jīng)歷我太熟了所以這篇文章不打算講STM32基礎(chǔ)也不寫高深算法就專門聊聊STM32開發(fā)調(diào)試過程中那些真正浪費(fèi)過時間的坑以及我是怎么一步步排查出來的。不管你是正在做畢業(yè)設(shè)計的學(xué)生、剛轉(zhuǎn)嵌入式的新人還是寫了幾年程序的工程師在調(diào)試這條路上總有那么幾個坑能讓你對號入座。我盡量把每個坑的根因、排查鏈路和解決辦法都寫得具體一點(diǎn)方便你直接對照自己的項(xiàng)目。畢竟調(diào)試這種事最怕的不是問題難而是連從哪兒下手都不知道。1. 環(huán)境搭建與工程樣板先解決“能不能編譯、能不能下載”1.1 Keil5裝完卻找不到STM32芯片包很多新手第一次裝Keil5裝完興沖沖打開結(jié)果在Device選擇列表里翻半天都找不到STM32。不是軟件有問題而是Keil MDK從V5版本開始把芯片支持從安裝包里拆出來了變成了獨(dú)立的Pack包。MDK安裝包本身默認(rèn)只帶ARM通用編譯器具體芯片的器件支持需要額外安裝。解決辦法是打開Pack Installer找到STM32F1系列的DFP包如Keil.STM32F1xx_DFP安裝。但這里有個很現(xiàn)實(shí)的坑Pack Installer需要聯(lián)網(wǎng)下載國內(nèi)網(wǎng)絡(luò)狀況下經(jīng)??ㄔ谙螺d進(jìn)度條不動或者下載一半失敗。我遇到過好幾次Pack下載失敗后還殘留了部分文件導(dǎo)致重新安裝時報錯。如果你也遇到這種情況直接去Keil官網(wǎng)下載對應(yīng)DFP安裝包手動雙擊安裝比Pack Installer里干等靠譜得多。還有一個小細(xì)節(jié)安裝DFP時最好先關(guān)掉Keil工程否則可能出現(xiàn)安裝成功但工程里仍然顯示不了芯片的情況需要重啟工程。另一個很常見的坑是C51和STM32共存的問題。Keil的C51版本和MDK版本其實(shí)是兩個獨(dú)立產(chǎn)品一個管8051一個管ARM。如果你電腦上先裝了C51的uVision4后來又裝了MDK的uVision5或者反過來很容易出現(xiàn)我裝了Keil但打開工程提示Device不存在的情況。因?yàn)閮蓚€IDE雖然看起來差不多但支持的芯片列表完全不同。我的做法是C51和MDK都裝安裝路徑分開圖標(biāo)雖然很像但打開前看清楚是哪個版本。如果你手頭有51的工程和STM32的工程要輪流折騰千萬別圖省事只裝一個那才是真正的折磨。1.2 STM32標(biāo)準(zhǔn)庫新建工程的三個隱藏雷雖然現(xiàn)在新項(xiàng)目很多人直接用STM32CubeMX加HAL庫但標(biāo)準(zhǔn)庫依然有大量存量代碼和教材尤其是做畢業(yè)設(shè)計和老項(xiàng)目維護(hù)的場景。新建標(biāo)準(zhǔn)庫工程時我踩過的雷可以列出三個第一個是啟動文件選錯。STM32F1系列啟動文件分了好幾種startup_stm32f10x_ld.s、md.s、hd.s分別對應(yīng)低容量、中容量、高容量。很多教程里默認(rèn)用hd.s如果你手里的芯片是F103C8T6這種中容量的用hd.s也不是不能啟動但如果你選的是F103RCT6高容量芯片卻用了md.s程序能燒進(jìn)去運(yùn)行卻會莫名其妙出問題。因?yàn)閱游募锒x了堆棧大小和中斷向量表的位置容量不匹配會導(dǎo)致內(nèi)存映射錯位。第二個是宏定義沒加。標(biāo)準(zhǔn)庫工程必須在C/C的Define里加上USE_STDPERIPH_DEVICE以及STM32F10X_HD或者STM32F10X_MD取決于你的芯片容量。很多教程建工程時根本不提這個導(dǎo)致編譯報一堆未定義錯誤。我當(dāng)年第一次建工程編譯報錯幾十條還以為是庫文件沒拷全其實(shí)是宏定義漏了。第三個是頭文件路徑?jīng)]有包含全。標(biāo)準(zhǔn)庫的源碼按文件夾組織你需要把Misc、GPIO、RCC、USART等用到的外設(shè)頭文件路徑都加進(jìn)Include Paths。漏一個就編譯報無法打開文件。建議直接把整個Libraries文件夾路徑加進(jìn)去省得來回改。這其實(shí)是Keil工程配置里的基本功但新人在這一步卡一天很正常。我?guī)У膸讉€實(shí)習(xí)生幾乎每一個都在新建工程上耗過半天一旦跑通一次后面就順了。1.3 標(biāo)準(zhǔn)庫和HAL庫到底怎么選關(guān)于選庫這件事屬于每次群里都有人問的問題。很多人糾結(jié)標(biāo)準(zhǔn)庫字符級操作直接、好多教程都用標(biāo)準(zhǔn)庫HAL庫配合CubeMX生成代碼效率高但代碼量太大。我的看法是標(biāo)準(zhǔn)庫封裝層次低離寄存器近適合學(xué)習(xí)原理、調(diào)試底層問題、做資源緊張的簡單項(xiàng)目。ST官方已經(jīng)停止維護(hù)標(biāo)準(zhǔn)庫新出的芯片也沒標(biāo)準(zhǔn)庫可用但F1、F4系列老片子用戶量太大網(wǎng)上資料幾乎取之不盡。HAL庫抽象層更高配合STM32CubeMX可以快速生成初始化代碼適合快速原型、復(fù)雜外設(shè)協(xié)同、多項(xiàng)目復(fù)用。但Debug時函數(shù)調(diào)用層級深出問題了追蹤起來費(fèi)勁。HAL庫本身也有一些黑魔法比如狀態(tài)機(jī)管理、超時機(jī)制你要是沒吃透它的設(shè)計思路初次上手容易覺得怎么這么繞。LL庫介于兩者之間更接近寄存器操作但用的人相對少。如果你的目標(biāo)是搞懂原理或者項(xiàng)目要求極致的執(zhí)行效率走標(biāo)準(zhǔn)庫沒問題如果目標(biāo)是快速出活、接新項(xiàng)目、用新芯片直接學(xué)HALCubeMX更劃算。最怕的是學(xué)到一半想換代碼寫到一半從標(biāo)準(zhǔn)庫遷HAL庫那種痛我真的不建議你體驗(yàn)。順帶提一下VSCode配置STM32的問題。最近問的人確實(shí)多用EIDE插件或者CMake加ARM GCC工具鏈確實(shí)能擺脫Keil的界面。但我的建議是如果你還在調(diào)試階段頻繁踩坑先把Keil用好再考慮VSCode。VSCode編輯代碼舒服但調(diào)試器配置、燒錄器配置、cmsis-dap或OpenOCD的target配置任何一個沒配對都能讓你折騰一晚上。工具是為主業(yè)服務(wù)的不是用來折騰的。2. 下載器連接失敗從No target connected說起2.1 插上ST-Link電腦卻提示無法識別USB設(shè)備先說一個最算不上故障的故障USB設(shè)備無法識別。排查順序很重要我一般是這樣的換一根USB線。現(xiàn)在很多充電線只有電源線沒有數(shù)據(jù)線插上去能供電但設(shè)備管理器毫無反應(yīng)。這種偽故障占比非常高尤其是你隨手從抽屜里摸出來一根線的時候。換一個USB口。前置面板的USB口供電和信號質(zhì)量經(jīng)常不如主板后置口尤其是接ST-Link這種需要穩(wěn)定供電的設(shè)備。檢查設(shè)備管理器。如果看到未知設(shè)備或者帶感嘆號的設(shè)備嘗試右鍵更新驅(qū)動。ST-Link的驅(qū)動有專門的安裝包老版本W(wǎng)indows下經(jīng)常需要手動裝一次。確認(rèn)ST-Link固件版本。太舊的ST-Link固件在某些機(jī)器上會識別異常用STM32CubeProgrammer或者官方ST-Link Upgrade工具升級一下固件。如果設(shè)備管理器里能看到ST-Link設(shè)備但連接目標(biāo)板時報錯那問題就在目標(biāo)板這邊了。常見原因包括目標(biāo)板沒有獨(dú)立供電ST-Link的3.3V輸出能力有限、SWD接線過長信號不穩(wěn)定、目標(biāo)板復(fù)位電路異常。這個時候先把SWD線盡量縮短把下載速率調(diào)低往往就能解決問題。下載速率太高的坑特別容易忽略ST-Link默認(rèn)可能跑1.8MHz飛線搭的板子信號質(zhì)量差降到500kHz甚至100kHz就穩(wěn)定了。2.2 第一次下載成功第二次就No target connected這個坑我印象太深了因?yàn)樗l(fā)生的時間點(diǎn)永遠(yuǎn)是你覺得穩(wěn)了的時候。說的就是程序第一次下載成功板子也跑起來了然后你改了幾行代碼想重新下載點(diǎn)擊下載卻直接報No target connected。根因大概率不是你板子壞了而是你的程序里把SWD引腳給禁用了。STM32的SWD和JTAG共用一組引腳如果你在初始化代碼里調(diào)用了類似GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE)這樣的函數(shù)調(diào)試口會被釋放成普通GPIO。程序一旦跑起來SWDIO和SWCLK兩個引腳就不聽調(diào)試器指揮了下一次下載當(dāng)然連不上。這種坑最惡心的地方在于它很隱蔽。你只是按照某個例程加了一句禁用JTAG防止干擾的代碼結(jié)果把下載口也禁了。排查的方法是按住目標(biāo)板的復(fù)位鍵不松手然后點(diǎn)下載在程序執(zhí)行到初始化之前把連接搶下來或者把BOOT0拉高進(jìn)ISP模式用串口全片擦除芯片內(nèi)的程序。如果是已經(jīng)禁用了調(diào)試口的固件最穩(wěn)妥的辦法就是進(jìn)ISP擦除。后來我給自己定了一條規(guī)矩開發(fā)調(diào)試階段絕不輕易在代碼里禁用SWD/JTAG功能。即使量產(chǎn)階段為了省電和IO資源需要禁用也一定保留一段可以通過跳線或者特定操作恢復(fù)的方案否則后續(xù)升級固件就成了噩夢。2.3 ST-Link Utility和STM32CubeProgrammer的救援價值很多人不知道下載器除了燒錄程序還能用來救命。ST官方早年的ST-Link Utility現(xiàn)在已經(jīng)升級為STM32CubeProgrammer可以繞過正常下載流程直接操作芯片內(nèi)部Flash。最常見的救援場景是芯片讀寫保護(hù)打開后無法連接。有些芯片在量產(chǎn)階段被設(shè)置了讀保護(hù)RDP等級1此時調(diào)試器默認(rèn)無法讀取Flash。你用ST-Link連接時會報錯但用STM32CubeProgrammer執(zhí)行一次Full chip erase全片擦除會把保護(hù)位一起清掉芯片就能重新下載了。注意全片擦除會清掉所有代碼和配置操作前確認(rèn)數(shù)據(jù)已備份。STM32CubeProgrammer比ST-Link Utility更值得常用它支持多種連接方式ST-Link、UART串口ISP、USB DFU。當(dāng)SWD口被意外禁用時你還有一條逃生通道——UART ISP。只要BOOT0拉高、BOOT1拉低芯片上電進(jìn)入系統(tǒng)存儲器里的Bootloader用串口就能擦除和重刷Flash。這個方法我在折騰自制最小系統(tǒng)板時救過好幾次命。還有一個小技巧STM32CubeProgrammer可以讀取和修改Option Bytes。如果你需要調(diào)整讀保護(hù)等級、看門狗模式或者BOOT配置不用額外寫代碼直接在這個軟件里操作就行。調(diào)試階段建議大家把讀保護(hù)關(guān)了否則每次下載前都要先擦除麻煩得很。3. 時鐘、延時與啟動程序跑飛前最隱蔽的三個坑3.1 時鐘樹配置不對串口亂碼和延時失準(zhǔn)的共同源頭STM32的時鐘系統(tǒng)比51單片機(jī)復(fù)雜得多這也是很多人從51轉(zhuǎn)過來時最不適應(yīng)的點(diǎn)。51單片機(jī)接個晶振就能跑STM32內(nèi)部有HSI內(nèi)部高速時鐘、HSE外部高速晶振、PLL倍頻、總線分頻這一整套時鐘樹。調(diào)試經(jīng)驗(yàn)里凡是程序能跑但串口亂碼延時時間完全不對USB枚舉失敗這些癥狀十有八九和時鐘配置有關(guān)。最經(jīng)典的場景你的開發(fā)板上有一個8MHz外部晶振代碼里SystemInit默認(rèn)使用HSE作為系統(tǒng)時鐘源。但如果你的板子沒有焊外部晶振或者晶振虛焊HSE啟動會失敗。STM32F1的啟動邏輯在HSE失敗后會自動退回HSI運(yùn)行程序不會死但系統(tǒng)時鐘從72MHz掉到了內(nèi)部8MHz所有依賴時間的計算全崩了——串口波特率不對、定時器溢出時間變了、delay函數(shù)的時間尺度也變了。表現(xiàn)出來就是板子好像所有功能都不太對勁。排查手段其實(shí)很直接。先用萬用表量晶振兩腳波形或者用示波器看有沒有起振再進(jìn)調(diào)試器看RCC-CR寄存器的HSERDY位是否為1如果HSEON為1但HSERDY一直為0就是外部晶振電路沒起來。很多人會忽略電路本身的問題晶振需要兩個負(fù)載電容如果板子上沒焊或者盡最大努力只是看起來焊了實(shí)際上虛焊也會導(dǎo)致不起振。還有一種情況是代碼里明明寫了外部8M晶振但實(shí)際板子上裝的是12M晶振——頻率不對串口亂碼、定時器時間整體偏差。有一個經(jīng)驗(yàn)如果你用的是內(nèi)部HSI時源USB外設(shè)大概率無法正常工作因?yàn)閁SB要求48MHz的精確時鐘內(nèi)部RC振蕩器精度不夠。很多基于F103的USB虛擬串口項(xiàng)目調(diào)試不通過最后都栽在時鐘源上。所以不是能用內(nèi)部時鐘就省事得先看清外設(shè)的時鐘需求。3.2 延時函數(shù)卡死SysTick被誰搶了延時卡死可以說是嵌入式開發(fā)里的固有節(jié)目。明明代碼里寫了一個Delay(1000)結(jié)果程序執(zhí)行到這就再也不走了。這類問題我從標(biāo)準(zhǔn)庫轉(zhuǎn)到HAL庫之后又遇到過一次根因還不完全一樣。標(biāo)準(zhǔn)庫下常見的Delay實(shí)現(xiàn)是基于SysTick定時器中斷實(shí)現(xiàn)??ㄋ赖脑蛴袔讉€某段代碼把全局中斷關(guān)了SysTick中斷一直在Pending狀態(tài)無法執(zhí)行計數(shù)器永遠(yuǎn)不會更新Delay就永遠(yuǎn)退不出來。你的工程里其他地方重寫了SysTick_Handler標(biāo)準(zhǔn)庫的延時計數(shù)邏輯被覆蓋了。比如有些人從網(wǎng)上拷貝一段代碼里面自己寫了一個SysTick_Handler結(jié)果把系統(tǒng)那個頂替了。優(yōu)化等級太高編譯優(yōu)化把循環(huán)判斷條件里的變量給優(yōu)化掉了導(dǎo)致for循環(huán)延時永久執(zhí)行。排查方法也不復(fù)雜在Delay調(diào)用前點(diǎn)亮一個LED調(diào)用后再熄滅看LED行為進(jìn)調(diào)試器查看SysTick的CTRL寄存器和Current Value寄存器確認(rèn)SysTick是否在跑如果懷疑優(yōu)化等級把優(yōu)化等級臨時改成-O0試一下。如果問題消失就是優(yōu)化引起的你可以用volatile修飾循環(huán)變量或者改用官方的SysTick延時邏輯。HAL庫的HAL_Delay卡死也有一個隱蔽原因HAL_Delay依賴一個全局變量uwTick而這個變量是在SysTick_Handler里調(diào)用HAL_IncTick遞增的。如果你用標(biāo)準(zhǔn)庫的習(xí)慣寫代碼或者移植項(xiàng)目時忘了調(diào)用HAL_InitSysTick中斷沒有初始化HAL_Delay就會永遠(yuǎn)等下去。還有人在自己的中斷服務(wù)程序里長時間阻塞SysTick中斷一直沒有機(jī)會執(zhí)行HAL_Delay也會表現(xiàn)異常。3.3 HardFault_Handler數(shù)組越界與棧溢出的表象程序跑著跑著突然進(jìn)入HardFault_Handler死循環(huán)這是嵌入式開發(fā)的經(jīng)典夢魘。很多人一進(jìn)HardFault就慌其實(shí)它本質(zhì)上是CPU遇到不可恢復(fù)的錯誤后跳轉(zhuǎn)到異常向量大多數(shù)情況下不是芯片壞了而是你的代碼觸發(fā)了非法操作。最常見的幾個觸發(fā)原因數(shù)組越界寫入尤其是DMA數(shù)據(jù)傳輸緩沖區(qū)定義小了數(shù)據(jù)寫入越界。棧溢出在中斷里定義了超大局部數(shù)組或者遞歸調(diào)用過深把棧撐爆了。操作了未使能時鐘的外設(shè)寄存器。比如你忘了開啟GPIOA的時鐘卻直接往GPIOA的ODR寄存器寫數(shù)據(jù)。在F1系列上這會導(dǎo)致總線錯誤最終進(jìn)HardFault。函數(shù)指針為空、未初始化就被調(diào)用。排查HardFault的關(guān)鍵是定位觸發(fā)點(diǎn)。在Keil里當(dāng)程序停在HardFault_Handler時打開Call Stack窗口看調(diào)用棧通常能看到觸發(fā)異常前的最后幾層調(diào)用。再用Peripherals窗口查看SCB-CFSR寄存器的Fault狀態(tài)位能分辨是總線錯誤還是用法錯誤還是斷言失敗。最實(shí)用的辦法是記錄下R14(LR)和R15(PC)的值在反匯編窗口輸入地址看當(dāng)前執(zhí)行到了哪條指令再對應(yīng)到源碼里的具體行。我調(diào)過最長的一個HardFault案例是串口空閑中斷加DMA接收不定長數(shù)據(jù)時接收長度判斷邏輯出了錯DMA把數(shù)據(jù)寫到了數(shù)組末尾之外。癥狀是程序運(yùn)行一段時間后隨機(jī)死機(jī)一度懷疑是硬件問題最后在Fault Reports里發(fā)現(xiàn)是總線錯誤再查DMA緩沖區(qū)地址才鎖定了越界。從那以后凡是用DMA的地方我都強(qiáng)制在緩沖數(shù)組尾部多留幾個字節(jié)的冗余空間不為別的就是為了排查時少掉幾根頭發(fā)。3.4 啟動文件與宏定義選錯的連鎖反應(yīng)之前講了建工程時的啟動文件選擇但啟動文件的問題不止是編譯期影響。有幾次程序編譯下載都成功了上電就是跑不起來最后發(fā)現(xiàn)是啟動文件里的堆棧尺寸設(shè)置太小。啟動文件頂部有一段Stack和Heap的配置比如Stack_Size EQU 0x400如果你在代碼里大量使用了局部數(shù)組、嵌入式實(shí)時操作系統(tǒng)、或者malloc動態(tài)內(nèi)存默認(rèn)的??臻g可能不夠。棧溢出不一定會立刻死機(jī)而是在某個深層調(diào)用或者中斷嵌套時才崩。這種問題極其難查因?yàn)橐?guī)律不明顯可能運(yùn)行幾十秒才出一次問題。我的習(xí)慣是調(diào)試階段就把棧改成0x800或者更大省得被棧溢出干擾判斷。另外還有一個容易被忽略的坑啟動文件里定義了中斷向量表如果你在工程里另外寫了一個包含相同中斷向量的文件可能編譯報重復(fù)定義——這是好情況。壞情況是鏈接器選擇了你后加的那個向量表導(dǎo)致定時器或其他外設(shè)的中斷根本進(jìn)不去程序看起來一切正常但功能不響應(yīng)。所以新建工程時不要貪多啟動文件、系統(tǒng)時鐘文件、標(biāo)準(zhǔn)庫外設(shè)文件凡是從網(wǎng)上拷來的大雜燴工程模板都值得你花時間拆開看一遍確認(rèn)每一部分的作用再拼裝。用別人整合好的一鍵工程出了問題你真的不知道怎么排查因?yàn)槟悴磺宄锩嬗心男╇[藏配置。4. 串口通信與外設(shè)調(diào)試從亂碼到數(shù)據(jù)丟失4.1 串口亂碼的排查鏈路串口通信是STM32項(xiàng)目里最常用的外設(shè)基本每個項(xiàng)目都用但亂碼問題也最多。我總結(jié)了一條排查鏈路你按順序走一遍絕大多數(shù)亂碼都能解決第一步排除接線問題。TX接RX、RX接TX這兩個腳位接錯是最常見的。如果你用的是USB轉(zhuǎn)串口模塊還要確認(rèn)模塊電平是否兼容——3.3V和5V混接可能導(dǎo)致通信不穩(wěn)定甚至燒壞引腳。第二步確認(rèn)上位機(jī)波特率和代碼一致。看起來是廢話但真的很多人把代碼里的9600和工具里的115200搞混或者代碼里改了波特率工具沒改。最簡單的方式是用串口助手自發(fā)自收也就是把USB轉(zhuǎn)串口的TX和RX短接在電腦上發(fā)什么收什么。自發(fā)自收正常說明USB轉(zhuǎn)串口沒問題問題在STM32端。第三步用示波器量STM32的TX引腳。波特率是否正確可以直接測量一個字節(jié)的位寬來判斷。比如9600波特率一位的時間是104微秒左右示波器上能看到脈沖寬度明顯不對就是波特率的計算結(jié)果錯了。第四步回到時鐘樹問題。之前說過外部晶振沒起振或頻率不一致會導(dǎo)致PCLK計算錯誤波特率必然不對。F1系列的USART波特率發(fā)生器是從PCLK分頻來的系統(tǒng)時鐘是72M還是8M同一個波特率寄存器數(shù)值對應(yīng)的實(shí)際波特率差了9倍。如果你的串口在低速率下看著正常高速率全亂大概率還是時鐘問題不是串口代碼本身的問題。通信波特率不對還有一個非常容易忽略的情形外部晶振虛焊導(dǎo)致HSE啟動失敗但芯片沒死退回HSI后程序繼續(xù)跑串口打印出來的內(nèi)容偶爾正常偶爾亂碼會誤導(dǎo)你以為是串口代碼有BUG。這時候不要反復(fù)改串口參數(shù)回頭檢查外部晶振。4.2 HAL庫串口中斷發(fā)送與接收的坑HAL庫是很多人從標(biāo)準(zhǔn)庫轉(zhuǎn)過來的第一站但它的串口接口和標(biāo)準(zhǔn)庫用法差異很大踩坑點(diǎn)也完全不同。先說HAL_UART_Transmit_IT。這個函數(shù)是異步發(fā)送調(diào)用后立即返回實(shí)際數(shù)據(jù)通過中斷逐字節(jié)發(fā)出去。問題在于如果你上一次發(fā)送還沒結(jié)束就再次調(diào)用函數(shù)會返回HAL_BUSY數(shù)據(jù)直接丟掉。很多人寫一個while循環(huán)里調(diào)用發(fā)送結(jié)果數(shù)據(jù)丟得一塌糊涂因?yàn)榘l(fā)送速度跟不上調(diào)用速度。解決辦法是維護(hù)一個發(fā)送完成標(biāo)志位在HAL_UART_TxCpltCallback回調(diào)里置0調(diào)用前先判斷標(biāo)志位?;蛘咧苯佑米枞降腍AL_UART_Transmit省心但會占用CPU。HAL_UART_Receive_IT也有類似問題它是一次性接收——接收完指定字節(jié)數(shù)后觸發(fā)回調(diào)之后就不會再接收了需要在回調(diào)里重新調(diào)用一次才能繼續(xù)收。很多人不知道這個機(jī)制以為調(diào)用一次就能永遠(yuǎn)收結(jié)果發(fā)現(xiàn)只收到一次數(shù)據(jù)就再也不進(jìn)了。不定長串口數(shù)據(jù)接收我推薦的做法是空閑中斷加DMA。配置串口的DMA接收為循環(huán)模式數(shù)據(jù)到了自動進(jìn)緩沖區(qū)然后在串口空閑中斷里讀取DMA剩余計數(shù)計算出本次收到的數(shù)據(jù)長度。這個方法能處理不定長數(shù)據(jù)包不丟字節(jié)CPU占用也低。但有幾個坑要避開串口空閑中斷和DMA中斷的優(yōu)先級要合理安排而且要在中斷里快速讀出長度再去處理數(shù)據(jù)不能讓中斷處理太久。DMA循環(huán)模式的數(shù)據(jù)是不斷覆蓋寫的你必須在空閑中斷里拷貝出當(dāng)前這批數(shù)據(jù)到應(yīng)用緩沖區(qū)否則下一次數(shù)據(jù)來了會覆蓋?;卣{(diào)函數(shù)里訪問緩沖區(qū)時務(wù)必注意邊界別把固定數(shù)組寫爆了。4.3 USB虛擬串口設(shè)備管理器里那個感嘆號STM32F103的USB虛擬串口項(xiàng)目很多人按照例程做完插上USB線電腦卻提示未知設(shè)備或者設(shè)備管理器里一個黃色感嘆號。這類問題有固定的排查方向第一個方向是時鐘。F103的USB外設(shè)需要48MHz時鐘如果系統(tǒng)時鐘不是由8MHz晶振經(jīng)過PLL倍頻到72MHz再二分頻得到48MHzUSB的枚舉過程就會失敗。如果你用的是內(nèi)部HSI或者外部晶振不是8MHzUSB極大概率無法工作。第二個方向是硬件上拉。USB設(shè)備通過DP引腳的1.5k上拉電阻告知主機(jī)這是一個全速設(shè)備。很多STM32開發(fā)板把DP上拉做到芯片內(nèi)部由固件控制PA12實(shí)現(xiàn)也有的板子需要外接上拉電阻。如果你用的板子需要外接但沒焊這個電阻自然枚舉不了??丛韴D時專門找一下DP引腳附近有沒有上拉電阻。第三個方向是堆棧和中斷配置。USB庫占用的RAM不少如果你的啟動文件堆棧設(shè)得太小枚舉過程可能跑飛。USB相關(guān)中斷優(yōu)先級也要正確配置不能把其他中斷長時間阻塞USB中斷。還有一個常被忽略的細(xì)節(jié)USB虛擬串口發(fā)送數(shù)據(jù)不能在USB的中斷回調(diào)里直接調(diào)用發(fā)送接口否則可能造成死鎖或者丟數(shù)據(jù)。正確做法是把要發(fā)的數(shù)據(jù)存到循環(huán)緩沖區(qū)在應(yīng)用層空閑時批量發(fā)送。4.4 定時器捕獲測頻與編碼器模式的小細(xì)節(jié)定時器和編碼器是電機(jī)控制、測速項(xiàng)目里的常規(guī)外設(shè)但很多人第一次用輸入捕獲測頻率時得到的第一個值總是錯的。原因是輸入捕獲的第一次捕獲往往發(fā)生在定時器計數(shù)器的任意位置兩次捕獲之間的差值并不能正確反映一個完整周期。正確的做法是第一次捕獲值先丟棄從第二次捕獲開始計算周期或者連續(xù)捕獲多次求平均。另外如果信號頻率很低捕獲周期大于定時器的溢出周期你必須處理更新中斷把溢出次數(shù)也一起計進(jìn)去否則測出來的頻率會突然跳變。編碼器模式也一樣配置成編碼器接口后定時器計數(shù)值隨編碼器旋轉(zhuǎn)方向自動增減。常見的坑是有人把編碼器A相接到定時器通道1、B相接通道2但代碼里配置成了只計數(shù)單通道結(jié)果方向無法判斷。還有Z相清零的問題如果你需要絕對位置參考得把Z相信號接到另一個引腳并在捕獲到Z相時清零計數(shù)否則位置數(shù)據(jù)會一直累加漂移。超聲波測距模塊也是熱門畢設(shè)題材。用定時器輸入捕獲來測量回波脈寬比用GPIO輪詢要靠譜得多。GPIO輪詢在近距離時容易因?yàn)榇a執(zhí)行時延誤差導(dǎo)致測量結(jié)果不準(zhǔn)而輸入捕獲是硬件記錄邊沿時刻精度明顯更高。不過要注意把GPIO配置成正確的輸入模式數(shù)字輸入和模擬輸入的引腳行為差異很大配置錯了回波信號根本讀不到。5. 疑難雜癥的排查思路把經(jīng)驗(yàn)變成方法論5.1 三板斧先復(fù)位、再點(diǎn)燈、后打量調(diào)試經(jīng)驗(yàn)積累到一定程度你會發(fā)現(xiàn)大多數(shù)問題都可以歸納為三板斧排查法。這個方法土但靠譜。第一板斧是硬件確認(rèn)。用萬用表量電壓——3.3V是否到位、GND是否連通、復(fù)位按鍵是否為高電平。很多宣稱程序有問題的情況最后發(fā)現(xiàn)是板子供電接觸不良或者杜邦線松了一根。不要小看這類低級問題他們占的比例一點(diǎn)都不低。第二板斧是軟件最小化。把主循環(huán)里所有業(yè)務(wù)代碼注釋掉只留一個LED翻轉(zhuǎn)或者GPIO翻轉(zhuǎn)看系統(tǒng)還能不能跑。如果帶動業(yè)務(wù)代碼就死機(jī)去掉業(yè)務(wù)代碼就正常說明問題出在業(yè)務(wù)邏輯里跟你懷疑的編譯器、鏈接器、芯片都沒關(guān)系。如果連最小系統(tǒng)都不跑那才輪得到懷疑初始化配置或者硬件。第三板斧是調(diào)試器讀寄存器。進(jìn)調(diào)試器看Peripherals里的GPIO ODR、RCC CR、USART SR這些寄存器能直接判斷外設(shè)是否初始化成功。這個方法比printf高效得多比如一個GPIO輸出沒電平先看GPIO時鐘有沒有開再看引腳配置對不對兩步就能定位。我印象很深的一次排查是超聲波測距模塊始終返回0。主循環(huán)點(diǎn)LED沒問題按理說初始化也沒問題但就是測不到。最后用調(diào)試器看GPIO配置寄存器發(fā)現(xiàn)把ECHO引腳配成了模擬輸入模擬輸入狀態(tài)下數(shù)字電平讀取永遠(yuǎn)返回0。改成浮空輸入后立刻恢復(fù)正常。如果當(dāng)時不打開寄存器窗口光靠猜代碼可能半天都定位不到。5.2 用好調(diào)試器別全靠printf很多初學(xué)者調(diào)試單片機(jī)時習(xí)慣用串口printf這也是江科大這類視頻教程帶出來的慣性。printf沒有原罪但它有兩個明顯的副作用一是在中斷里調(diào)用printf會嚴(yán)重干擾時序。中斷服務(wù)程序里花幾百微秒做字符串格式化輸出對其他中斷響應(yīng)的影響是災(zāi)難性的尤其是有定時器捕獲、USB通信這類對時序敏感的功能時。二是printf本身也可能改變程序行為。有個經(jīng)典現(xiàn)象加上printf就正常去掉printf就死機(jī)這種墨菲定律式問題通常不是printf解決了什么邏輯錯誤而是printf消耗的時間恰好掩蓋了某個時序競爭。遇到這種情況不要覺得是不加上就不行的魔法應(yīng)該警惕背后真實(shí)的競態(tài)條件。我建議的方式是用調(diào)試器打斷點(diǎn)、看變量值、看寄存器這些是第一手段。printf作為第二手段盡量只在非中斷上下文調(diào)用而且打上明顯的調(diào)試開關(guān)產(chǎn)品發(fā)布前統(tǒng)一關(guān)掉。真要在HardFault里打印診斷信息直接把PC和LR寄存器值格式化后發(fā)出來比盲猜強(qiáng)太多。5.3 我的三個真理時刻與給新手的成長路線做嵌入式這些年我印象最深的三個時刻都跟解決問題的方式有關(guān)第一次是當(dāng)我終于靜下心來讀RM0008參考手冊而不是到處搜代碼片段很多之前搞不動的疑惑突然就通了。網(wǎng)上代碼質(zhì)量參差不齊二手信息滿天飛真正一手的正確答案永遠(yuǎn)在芯片手冊里。第二次是發(fā)現(xiàn)自己從開發(fā)板上拿來的出廠例程有問題。例程為了展示方便很多配置并不嚴(yán)謹(jǐn)有的是時鐘配置過度依賴默認(rèn)值有的是外設(shè)初始化順序不對。從那時起我每拿到一個開發(fā)板第一件事是自己重新寫一份最小系統(tǒng)初始化而不是直接依賴?yán)?。第三次是開始用示波器和邏輯分析儀輔助調(diào)試。以前遇到奇怪的問題總是反復(fù)看代碼其實(shí)很多答案在信號層面早就擺在眼前了——晶振起振沒有、串口波形對不對、PWM頻率是不是設(shè)置的值示波器掃一眼全知道。如果你現(xiàn)在剛?cè)肟覵TM32我建議的成長路線很樸素準(zhǔn)備一塊F103C8T6最小系統(tǒng)板加ST-Link有條件再配一個幾十塊錢的邏輯分析儀。從閃燈開始依次走通串口、定時器、中斷、DMA、USB這幾個關(guān)鍵外設(shè)的調(diào)試流程。這個過程中你會把下載器、工程配置、時鐘系統(tǒng)、調(diào)試技巧全都踩一遍等這些基本功扎實(shí)了再去做環(huán)境監(jiān)測、智能臺燈、雙輪小車這些畢業(yè)設(shè)計或項(xiàng)目就是水到渠成的事。其實(shí)踩坑從來都不是壞事真正浪費(fèi)時間的是重復(fù)踩同一個坑還不總結(jié)。希望這篇總結(jié)能幫你少走幾段彎路把省下來的時間留給真正值得研究的功能和代碼。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产高潮AA片免费看| 欧美一品道| 91久久久老司机| 国内毛片热久久思思热| 日韩人妻少妇中文字幕| 精品国产乱子伦一区二区三区,精品一| 亚洲第一精品在线视频 | 欧美色亚洲| 婷婷色色五月天| 国产97在线播放| 日韩 欧美 另类 人妻| 欧美一二在线| 中国东北熟女老太婆内谢| 97露脸精品丝袜| 人妻一区二区三区视频 | 日韩在线视频1234| 国产日本一区二区三区蜜臀在线观看| 国产精品青青草| 国产精品一区二区三区在线| 强免费黄色网址| 毛片麻豆91糖心精品毛情片| 久久久久国产一区二| 人妻少妇三级| 蜜臀久久99精品久久综合| 91美女片在线| 青青草成人视频在线观看二区| 手机看片91人妻| 中文一区二区婷婷视频| 免费αV在线视频| 插老姨肥穴| 精品视频免费在线一区| 亚洲s色图| 91粉嫩萝控精品福利网站_精品影音先锋国 | 久久动漫精品视频这里只有精品| 国产精品无码论坛| 欧美综合亚洲综合| 久久综合中文国产| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 国产动漫操逼视频| 久久婷婷成人综合色怡春院| 欧美日韩色图片| 啊啊啊啊啊啊在线观看| 精品视频97| 操逼操网| 精品福利| 日本不卡免费二区| 亚洲少妇在线影音| 操逼日韩无码| 国产强奸AV在线| 91综合国产精品| 精品亚洲国产成人av网站| 91操熟女视频| 天综合网欧美| 久久久久成人蜜桃精品| 国产精品嫩草久久久久| 校园春色第一页| 天天爽夜夜欢视| 国产精品午夜高潮呻吟久久av| 国产97色在线 | 亚洲| 91在线免费观看处女| 日本操逼视频不卡直接放| 国产污视频麻豆传媒一区二区| av婷婷色婷婷色六月| 色噜噜狠狠色综无码久久合欧美| 亚洲熟女乱熟乱熟妇综合网二区| 男女一级A片大黄,一进一出| 亚洲精品一区二区精华| 欧美夜夜| 肉丝中文无码高清| 伊人青青草久久| 91碰碰| 摸奶性爱视频网站在线免费播放| 丰满人妻一区二区三区免费| 美女网站黄页| 中文在线久久字幕| 乱码熟妇人妻久久久| 性做久久久久久免费观看软件| 极品销魂美女一区二区| 国产精品伦理| …中文字幕亚洲乱,97人妻无码费视…| 蜜桃精品一区二区三区ww| 簧片免费看视频| 国产精品原创巨作?v网站| 久久中文字幕在线观看| 青青草色AV| 好舒服视频| 亚洲综合113页| 91粉嫩萝控精品福利网站_精品影音先锋国| 美国精品国产精品| 看免费的黄片| 一级做a爰片久久毛片图片| 亚洲成人激情小说视频| 少妇久久久久久久久| 九九九国产精品| 欧美日韩国产人人| 青青操视频在线| 成人日韩中文字幕| 一区麻豆 高清中文字幕| 大香交伊人网| 99激情| 欧美日韩第一页| 全免费a敌肛交毛片免费| 综合久久久久久久久91| 激情无码日韩| 人妻一区视频| 婷婷五月综合在线| 思思热在线| 欧美很很操视频| 亚洲欧美国产其他二区| 六月丁香五月婷婷| 激情开心五月天| 日韩免费性爱视频在线观看| 国产一区二区三区影片| 91亚州日韩高清| 性色一线| 九9热伊人| 中国熟女91| 果冻传媒A片一二三区| 青操影院| 国语少妇精| 亚洲一二三四区| 看全色黄大色大片免费视频| 国产亚洲精品A在线观看下载| 天天激情综合站| 18禁免费视频| 99精品在线播放| 黑丝内射一区二区三区| 久久精9| 欧美一区二区三区成人性生活| 精品综合久久久久久97| 东京热,男人的天堂| 青娱乐黄色录像| 亚洲学生妹高清av| 中文字幕一区电影在线观看| 亚洲人妻av| 国产精品一区二区在钱播放| 97精品第3页| 91 亚欧| 97亚洲精品| 福利操逼| 精品女人999| 99色婷婷中文字幕乱色| 96超碰网| 伊人丁香五月婷婷| 99综合网| 人妻爽爽啪视频| 亚洲伊人a线观看视频| α√在线| 亚洲精品国产AV天美传媒| 日韩亚洲97| 欧美AB在线| 艹精品| 电影69乱码96| 青青草一区二区三区四| 日韩中文字幕国产| 密桃99999| 久久m| 久久一区二区蜜桃| 超97在线精品视频| 久无码| 夜夜操夜夜高潮夜夜爽国产精品区| 亚洲综合在线第一页| 天天操人人操狠狠插| 国产一级片| 久久一区二区加油站| 国产女人视频三四五区| 亚洲色诱惑| 久草在| 色在线视频导航| 在线观看日韩av不卡| 97干色天堂| 大香蕉淫人网| 欧美精品999| 欧美色66| 亚洲精品免费中文字幕| 天天看综合网| 欧美96精品在线| 无码WWW免费视频网站| 人妻出轨一区二区三区| 91春色| 任你艹| 亚洲人妻久久久| 国产一进一出视频网站| 久久99草| 天天色综亚洲91污| 91综合天天看| 人妻人人做人人澡人人爽欧美一区| 四月丁香婷婷| 亚洲视频1区| 天天欧美色| 超碰97伊人| 欧美国产日韩高清在线| 午夜在线播放| 日韩AV电影网站| 91久| 黄总AV色图| 男人的午夜天堂| 成人五月香网在线| 神马午夜久久| 国产视频三区四区| 性爱视频无打码在线观看| 亚洲少妇诱惑| 人人操肉肉| 天堂国产AV| 精品久久无码午夜福利| 综合激情一一91| 日韩欧美tv一区二区在线观看| 性性欧美| 久久五月视频| 蜜臀久久久99久久久久| 青青草原狼av| 久久久久久国产无码精品| 国产后入内射| 婷婷综合| 国产在线激情视频| 舔人妻中文免费视频| 五月丁香色色网| 欧美精品97| 91女人的网站| 强奸乱伦中文字幕AV| 日韩久草| 色999人与兽| 青青操网| 茄子社区国产精品| 人妻天堂综合网| J?P?NESEHD熟女熟妇伦| 久久夜夜夜| 狠狠激情综合狠狠操中文字幕| 丝袜加勒比| 免费观看欧美日韩操逼视频| 色综合V| 亚洲精品97中文字幕| 女人双腿搬开让男人桶| 超碰九7| 九九九久久久久| 97干在线视频| 国产欧美日本亚洲精品| 日本不卡免费二区| 久久嫩草国产成人一区| 日韩乱插| 天天色天天干天天爱| 色噜噜狠狠色综无码久久| 91美女中出| 一区二区免费电影久久| 粉嫩AV一区二区夜夜| 久久久久久久78| 亚洲码专区| 国产精品免费久久久久久久久久| 久久精品高清无码一区| www鬼畜国产男人的天堂| 大香蕉久| 大屁股人妻女教师撅着屁股| 97在线观看| 国产亚热在线久久| 午夜天堂精品久久| 色97| 热九九精品| 亚洲欧洲综合av在线| 国产精品噜噜噜日日日| 天天天做天天天爱天天天爽| 亚洲中文字幕乱码无码一区二区 | 久久双插| 亚洲欧美日韩激情不卡| 蜜桃网熟妇| 九九久久99| 99激情视频| 亚洲精品亚洲人成在线麻豆| Av手机版天堂网| 一本久道久久综合狠狠爱一密臀精| 东北女人| 亚洲综合小视频小说在线观看| 九热视频| 人人摸人人干人人拍97| WWW啪啪的com| 亚洲国产成人精品久久久国产成人一区二区 | 男女一级A片大黄,一进一出| 午夜男人av| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 午夜天堂精品久久久久91| 日韩欧美aⅴ综合网站发布| 69国产对白刺激| 91亚洲欧美激情| 九九九精品色乱九九九| 碰超人人在线一区二区三区| 97日视频| 日韩情色AV| 欧美日韩人人精品| 蜜臀精品1区2区| 亚州操操穴网| 久久黄黄| 九一亚洲国产免费| 九一综合精品视品av| 男人的天堂亚洲| 26uuu欧美| 狠狠狠狠狠狠| 2020中文字幕| 久久一区无码| 欧美日韩一干二干| 天天干天天日天天射黄色片| 久久爱超碰网| 日本熟妇自慰性高潮一区二区三区| 亚洲国内精品成人不卡| 33044男人的天堂深夜备| 欧美国产操逼| 欧美色91| 夫妻天天操岛国视频| 亚洲熟女综合一区二区| 欧美人体性爱互联网第一页婷婷日本| 懂色Av| 少妇熟女1区2区3区| 国产美女自拍AV| 四虎国产精品永久地址入口| 日本福利二区视频| 久久香蕉国产传媒一区剧情天美| 久操视频免费在线观看| 天天干天天日天天射黄色片| 99这里都是精品| 色97欧美| 久久精品国产精品一区| 国产日韩区| 亚洲欧美日韩精品久| 亚洲aV性爱| 亚洲综合97中文网| 亚洲熟女乱熟乱熟妇综合网二区| 999久久久久久久精| 亚殴在线| wwe 天天干.com| 欧洲天天在线| 伊人久久国产免费观看视频| 日本欧美m v精品网站加| 少妇第一页| 欧美激情在线观看视频| 亚洲情色第一页| 26UUU欧美激情一区二区| 九九AV| 在线岛| 国产精品夜夜夜| 性色aV一区二区三区噜噜| 国产精品久久久吖| 无色无码| 中文字幕视频一区视频二区| 久久人体一区二区| 亚洲国产精品无码AV久久| 另类TS人妖一区二区三区| 免费综合亚洲中文| 欧美少妇性乱| 94色色电影网| 日韩性爱免费视频在线网站| 91偷拍欧美亚洲| 老熟女天天操| 淫荡熟女乱伦网| 精品国产乱码久久久久久久久1 | 国产成人自拍视频视频| 中文字幕五区| 久草综合网| 亚洲日韩视频二区| 日韩精品人妻中文字幕有码午| 欧美黑人日韩少妇色情| 秋霞成人一级在线观看| 日本久久久久久久久| 一二视频神马久久传媒| 日本羞羞的视频在线播放| 久久精品国产72国产精品福利| 中文字幕天天天天天| 欧美激情在线观看视频| 自拍偷拍 日韩无码| 久艹伊人精品综合在线| 91狠狠综合网| 欧美在线视频99| 色悠久久久av| 日韩无码黄色片| 天天干天天日天天射黄色大片| 中文字幕青青草| 日本性爱不卡视频| 2019午夜福利视频| 国产精品嫩草影院免费| 97超碰色屌| 夜色91| 色综合五月天| 日韩成人小视频| 亚乱色| 涩涩久久精品| 无码乱人伦中文视频| 99国产精品免费| 尤物网站91| 97中文天堂| 97av在线观看| 亚洲天堂色图| 操屄日韩| 欧美白嫩女HD| 一级性爱啪啪视频| 岛国不卡超碰护士AV在线播放| 欧美日韩色综合网| av东京热男人的天堂| 1769国内精品视频| 人妻 欧美 中文| 91精品久久久| 五月天亚洲网| 亚洲欧美经典一区二区| 国产后入式在线观看| 99精品久久| 五十路三区在线| 伊人影院在线理论播放| WWW操逼| 人妻熟妇久草在线| 丁香色五月 97干| 无码粉嫩白虎一线天b区| 久久婷婷五月天| 老妇女91| 九九九九九用不成了| 一线黄色免费性爱片| 十八禁一区二区无码观看| 国产树林里野战在线看| 久久伊人东京热| 黑操B| 亚洲人妻中文在线视频| 国产精品色| 色婷婷激情| a级免费在线观看| 青青草啪啪网| 91黑丝露脚| 2018天天日天天日| 肉丝中文无码高清| 美女黄页| 在线精品福利免费播放| 四虎免费在线观看| 亚洲性综合| 激情六月天| 久久性生大片免费观看性| 天天综合网入口~91| 国产懂色精品国产av| 97碰碰色| 亚洲欧美日产国产91毛片| www欧美性爱| 蜜臀99精品国产高清在线观看| 亚洲不卡不卡中文字幕不卡| 亚洲制服欧美另类内射| 2018天天日天天日| 久久久久国色αv免费观看| 日本亚洲vr欧美不卡高清专区| 成人性爱av.com| 超碰色图| 欧美激情一| 97爱欧美| 992这里有精品| 国产精品人妻熟女aⅴ| 久久久久久久唑| 97一本大道亚洲一区| 蜜桃臀av在线观看| 粉嫩不卡一区二区性爱| 乱伦日本中文自拍| 大香蕉中文网| 日韩欧美麻豆 | 色五月AV在线| 久偷拍| 人妻啊啊人妻啊| 久久亚洲精品成人av| 久久伊人最新网址视频| 嗯嗯啊啊啊好爽| 91N综合网在线| 加勒比日本在线| 97天天搞在线| 色婷婷视频| α√在线| 亚洲色图日韩精品| 亚洲第一免费视频| 九九九精品成人免费视频小说| 久久香蕉国产线看观看亚洲女人 | 伊人加勒比| 蜜臀99精品国产高清在线观看| 亚洲怡春院| 欧美78| 目产99999久久999| 中文字幕视频2区| 91亚洲精品青草| 国产11页| 殴美牲| 天天欧美欧美亚洲网| 婷婷丁香五月激情啪啪| 国产成人无码高清| a级理论午夜日本| 男女激情黄色网址| 日韩中文字幕在线视频观看| 亚洲欧美国产成人综合不卡| 在线看片国产精品每日更新| 中文字幕亚洲永久精品| 综合在线导航一区| 国产 v乱码一区二| 激情综合婷婷| 丁香六月婷婷久久综合| 成人情色一区二区| 色一射色一射| 亚洲五区熟女| 久久久久密臀一区二区| 亚洲老司机123专区| 老熟妇一区二区三区啪啪| 大乔未久88一区| 国产日韩欧美| 欧美亚洲清纯| 久久精品店| 超碰午夜| 夜夜天天噜狠狠爱2021| 免费强奸av| 激情五月婷婷综合| 亚洲中文字幕有码视频一区二区三区| 鸥美精品一区二区久久婷婷| 天堂伊人久久| 日韩有码回春沙龙第一页| 久久久久久十| 强奸乱伦免费网站| 日本韩欧美在线播放a| 九九精品热| 91 丝袜在线| 加勒比东京热五月天天堂网| 91天天综合日韩欧美| JIZZJIZZ亚洲女人被躁| 日韩无码黄色片| 99在线观看| 一区,二区,三区网站| 日韩人妻精品中文字幕| 欧美九九九| 老外又粗又长一晚做五次| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 欧美97视频| 97久久超碰亚洲| 秋霞Av理论一级在线| 国产高清26uuu| 伊人久久88国产女| 美女诱惑在线一区| 国产搭汕a级片| 黄色免费一级在线毛片| 丁香婷婷啪啪| 一区二区视频你懂的| 亚洲欧美在线丝袜| 插穴性爱视频在线观看| 亚洲人成网www| 日本新免费二区三区| 熟妇女伦乱视频| 26uuu性| 日韩有码免费视频| 成人开心网在线视频| 日韩欧美亚洲自拍偷拍| www久久99| 91丝袜激情在线| 国产精品96久久久久久| 久久久 国产精品| 九月AV| 家庭乱伦网站国产| 91色鬼| 色香欲综合| 欧美久久伊人| 老熟妇一区二区三区啪啪| 超碰91在线| 日本色婷婷| 天堂涩涩| 日韩乱伦AⅤ| 熟妇高潮一区二区免费视频| 国产sv美女内射| 欧美日韩 强奸乱伦| 成人熟女视频一区二区三区| 78久久| 操人91| 国产精品粉嫩福利在线| 国产av波波国产精品| 97欧美精品综合| 国产精品剧情| 亚洲熟妇自偷自拍另欧美| 亚洲,欧美,综合网| 精品中文字幕一区二区l - 百度| 欧美亚州综合图片| 一级片在线观看高清无码| 欧美日韩理论一区| 思思久热在线精品66| 天天日少妇逼AV| 伊人网高清| 丁香五月天视频| 岛国天天午夜影院传媒网| 人人做人人妻人人夜视频| 色九九综合AV| 婷婷亚洲五月***久久| 后入福利视频| 欧美疯狂做爰xxxx| 91中文字幕在线观看| 日本欧美亚洲高清在线看| 91国精产品| 蜜乳AV一区二区三区四| 天欧美在线| 搡老熟女老女人老熟妇免费视频| 夜夜春夜夜操| 欧美综合区| 999久久芭蕾| 国产高潮AA片免费看| 欧美天天影院| 国产按摩一区二区三区| 亚洲麻豆av一区二区| 香蕉一区二区三区在线视频| 天天视频网站黄| jiujiujiujingpin| 超碰人人干| 人人操人人摸超碰| 亚洲国产一级中文综合久久天堂在线免费观看| 黄片视频观看| 精品久久九| 欧美性爱伊人| 91色插| 午夜福利久久久噜久噜久久综合| 国产不良强奸视频免费看| 老女人碰碰在线碰碰视频| 久久亚洲精品成人av| 欧综合网| 青娱乐蜜桃臀AV色婷| a级成人毛片免费视频高清| 中文字幕黄色一起草| 极品白嫩福利在线| 国产精品一级特黄aaa大片在线观看| 日韩精品一区,二区 九九...老司机| 日本色色色| 伊人热综合| 足交视频老司机| 免费视频a级毛片免费视频| 欧美激情久操网| 日韩 女同 综合| 日韩AV电影网站| 久久男人精品| 97在线视频网站| 久久久久9| 欧苏综合色综合| 国产东北女人在线视频| 91亚洲人| 一本色道久久综合熟妇| 日本亚洲vr欧美不卡高清专区| 亚洲国产婷婷在线播放| 亚洲色阁| 青青操视频在线| 九九九网页| 我爱大香蕉| 香蕉热人人精品| 舔足天天操天天射| 欧美色图小说综合| 女人一区| 精品国产乱码久久久久久影片| 2020中文在线一区二区三区| 综合97| 羞答答AV中文字| 天天做天天爱天天爽AV| 很很干很很操| 免費黃色視頻觀看一| 欧美福利视频啊啊啊啊| 麻豆成人影音在线| 久热网| 97网址97| 国产青视频| 五月天春色激情网| 婷色五月天| 欧日a| 中文字幕一区二区在线日韩精品| 东北少妇高潮zzzz| 色九久| 久热网| 91劲爆| 国产免费一区| 一个色导综合| 亚州91| 97色综合中文网| 午夜美女诱惑电源网| 97操综合| 丝袜色综合| 老熟妇一区二区三区啪啪| 激情终合网| 熟女天天干| 蜜臀在线免费观看在线免费观看| 欧美黄页在线| 日韩精品一区二区三区四虎影视| 五月婷婷深深爱| 欧美视频在线视频免费va| 99re6久热只有精品6在线直播 | 欧美后进式| 丁香六月啪啪| 日本天天操| 9999久久久久| 99热网站| 黄色AV影视| 色综合一区二区三巨| 午夜精品久久久久久久男人的天堂| 丁香五月久久| 四虎AV在线观看| 婷婷丁香六月天| 久久一二三四五六七八九区区区| 天美传媒国产原创中文字幕亚洲欧美另类 | 亚洲欧美综合色| 在线观看A啊啊啊| 天美传媒在线一区| 夜夜免费视频| 人伦四五区| 欧美日韩久久精品爱爱| 婷婷五月天激情四射| 精品久久久久久中文字幕视频免费| 亚洲久久久久| 久久久一区二区三区三州| 黄色AAAAA欧美| 人人插人人搞人人操| 色婷网| 久操高青| 大香蕉综合在线| 超碰 国产熟女精品一区| 天天综合青苹果| 12一15性XXXX粉嫩国产| 大香蕉黄色一级片免费看| 国产欧美岛国精品一区| 91碰碰碰| 懂色AV中文| 欧美洲精品一级| 激情欧美97| 精品国产91内射久久| 日本www操操操| 亚洲精品视频二区| 一区二区三区无卡视频在线观看| 中字一区| 国产精品人妻无码久久久老鸭窝| 中国少妇XXXX做受| 人妻AV在线| 激情欧美日韩女同久久| 黑人性暴力毛片| 国产美女口爆吞精视频| 免费在线观看国内色片网站网址| www.91色综合| 亚洲九九爱| 凹凸精品熟女在线观看| 国产精品无码久久久久2028| 思思热在线| 中国黑人三级片网站上区| 日韩电影中文字幕| 啪啪啪东京| 丁香五月影院| 蜜桃精品一区二区三区久在线| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 老鸭窝在线视频播放| 午夜亚洲WWW湿好大| 亚洲图片欧美在线视频| 啊啊啊啊啊好大好舒服想要| 欧美 亚洲| 午夜120视频在线观看| 亚洲欧美激情另类色图| 中文字幕一区二区三区蜜桃视频| 新亚洲无码| 国产欧美一区激情交| 91天美传媒在线| 操逼操2| 色婷婷电影| 嫩草 我啊~嗯~在线| 色欲久久久久综合网| 日本综合色图| 蜜桃精品视频一区二区三区| AV天堂国产| 狼人综合婷婷激情四射| 亚洲天堂电影网99999| 无码高清国产AV| 亚洲av总站| 日本不卡二区| 人妻AV 中文字幕的| 97欧美色| 黄色大香焦1级‘′‘| 超碰97男人| av三级电影在线播放| 99热| 97视频免费| 九九人人操| 骚日日av| 操逼网免费无码视频| 久久日本熟女精品一区| 粉嫩av久久一区二区三区| 亚洲男人天堂网久久| 麻豆久久精品亚洲精品88| 五月激情小说| 欧美中文综合| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 色踪合AV| 婷婷丁香五月天综合东京热| 中文久久96| 国产精品欧美日韩久久| 亚洲综合69| 顶级丝袜熟女一区二区三区| 91男人天堂网| 免费a在线播放v| av草草在线电影| 成人性爱电影一区二区| 天天综合网视频91| 久久久网站| 人人妻人人玩人人澡人人爽| 亚洲欧美校园另类春色| 9久在线视频只有精品| 中美日韩毛片| 午夜一区二区三区国产| 91黑丝操| 欧洲熟妇xxXx欧美老妇裸体| 深喉吞精| 一二三啪啪专区| 牛牛操视频逼| 成人精品欧洲亚洲| 丁香五月天激情网站| 精品国产乱码久久久影院| www.夜夜| 操逼逼一区视频| 日韩欧美资源| 成人综合久久精品色婷婷| 天美麻豆一区二区三区| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 精品国产一区探花在线观看| 99国产精品免费| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 男女啪啪网站免费视频| 欧美日本天堂| 中文字幕一区日韩精| 天天噜| 国产天美传媒精品| 亚洲国产欧美中日韩成人综合视频| 蜜臀久久99精品久久久久久成人小说| 亚洲天堂色图| 亚洲1区2区三区高清中文字幕| 四季av一区二区凹凸精品小说| 在线观看一卡二卡| 精品国产91av一区二区三区| 老鸭窝在线视频播放| 丝袜六区| 狠狠色噜噜狠狠狠狠狠色综合久久| 98超碰欧美| 亚洲 欧美 小说| 黄片www.| 91久久九九精品国产综合| 天天综合网合集91| 亚州操操穴网| 91人妻尻屄视频| 熟妇综合一区二区三区| 破处bbq| 欧美性爱一内片一区二区三区| 欧美另类综合久久| 97精品| 国产97在线播放| 国产传媒美日韩av| 婷婷五月天小说| 又大又长又粗又爽又黄| 60秒不遮不挡| 午夜精品久久999热蜜桃介男人用| 3571色综合一区二区二区| 内射中出日韩在线观看视频| 色欲日韩欧美在线一区| 无码高清操逼| 久久大香蕉97| 人妻激情在线视频| 日本丝袜美腿人妻九九| 亚洲精品视频在线| 一类无码操逼视频| 中文乱码字字幕在线第5页| 国产2.3.4区| 亚洲污污网站| 蜜奶av| 啊啊啊操一区| 国产 v乱码一区二| 国产黄片精品在线| 电家庭影院午夜69久久夜色精品国产69乱 | 国产成人自拍视频在线| 91精品女厕偷拍视频| 亚欧色图在线激情| 亚洲黄色电影| 欧美青青草视频| 欧美日韩亚洲高清不卡一区二区三区| 精品超碰中文在线| 日本高清久久| 婷婷在线精品| 久久这里只精品99re66图| 欧美一级国产一级| 久久黄片国产一区二区| 欧美亚洲中文| 国产精品久久久久久久久久久久| 久久国色天香香蕉| 日语五十路和六十路亚洲国产精品| 韩日精品四区| 日韩操人| av午夜玫瑰| 超碰导航97| 国产高清26uuu| 中文字幕一区二区无码成人| 91免费看一区二区三区| 再深点灬舒服灬太大了添视频| 九九热视频在线观看| 欲色啪| 超碰无码加勒比| 91亚洲不卡一区| 天天夜夜rb| 亚洲色图亚洲无码强奸乱伦 | 99re欧美| 国产成人www免费人成看片| 欧美日本天堂| 久久丁香久草综合网| 久久极品一区二区| 欧美日韩狠狠爱| 天天躁日日躁AAA片李宗瑞| 天天色怡春院| 日韩欧美成人性爱在线| 97 国产一区| 88xx成人精品视频| 97亚洲一区| 天天躁日日躁狠狠躁| 免费观看欧美日韩操逼视频| 亚洲丝袜二区在线| 国产超碰| 91N综合网| 日本免费亚洲欧美| 久操电影网| 噜噜吧,噜噜色,噜噜| 中文字幕av一区二区三区人妻少妇 | 亚洲国产成人精品久久久国产成人一区二区| 污啪啪啪视频| 亚洲在线91| 99国内精品| 亚洲天堂久久久久久粉红视频| 国产乱码久久| 91色拍| 丝袜内射| 久操操AV电影| 99只有精品| 成人午夜小视频手机在线看| 东京热99999| www.人人cao| 蜜桃臀av一区二区| 长长久久88视频| 东京热天堂网| 人人爽夜夜操| 精品久久久久久中文字幕三区| 伊人伊人LD| 亚洲av淫乱| 中文字幕熟女人妻丝袜丝| 香蕉久久国产AV一区二区| 色噜噜国产精品视频一区二区| 伊人97超碰| 久久久久久久免费A片国产成a人亚洲精∨品无码| 美女人妻色网站| 精品人妻1区| 超碰久在线天天做| 四色永久成人网站| 综合欧美亚洲| 久久亚州高清| 国产大学生口爆吞精合集| 67914在线兔费成人视频| 欧美一级三级| 国产精品日韩在线一区| 黄色一区三区| 密桃99999| 伊人一区二区在线播放| 国产日韩欧美| 色婷婷激情| 婷婷干黄色| 肉丝无码中文高清| 高清无码网址| 性久久久| 91大香蕉伊人| 91最新综合| 一区二区三区免费岛国片| 欧美大的香蕉有线电视视频| 亚洲一二三精品久久网| 日韩人妻中文视频| 午夜精品久久久久久久久久久久久| 高树玛利亚无码流出| 人妻乱仑一区二区三区| 97色综合中文网| 97超碰亚洲| 日日干夜夜干| 国产日韩精品人妻久久久久色欲网站| 嫩草 我啊~嗯~在线| 96AV精品| 啪啪啪精品视频| 国产精品com| 夜夜免费视频| 精品免费1| 97自拍一区| 91黑人无码激情在线| 日韩欧美日韩| 亚洲91射| 九九英色视频| 99热久| 91在线视频免费播放| 天天伊人| 免费国产| 狠狠干精品一二三四五六2022| 欧美日韩性爱精品| 国产精品99精品视频网站| 国产精品乱码久久久久久久久| 91成人国产综合久久精品蜜月| 久99热| www.大香| 成年人黄色视频免费| 欧美另类丝袜熟女| 麻豆 亚洲 97| 91女网站| 色五月av| 久久免费精品视频免一| 美日韩男女操屄视频| 国产熟女一区二区| 91美女国产在线| 男人干美女| 六月婷激情福利天堂69| 澳门特级毛片免费观看| 中文字幕精品一区欧美| 97精品久久| 精品少妇99| 免看60秒涩涩视频| 传媒免费一区二区三区| 九九精品美女高溯喷水| 99re在线观看| 人人操人人摸人| 国产精品女生av| 三男一女不戴套的A片| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 自拍啪啪视频| 日韩欧美中文字| 神马久久网| 夜夜操av亚洲一区二区| 国产精品老熟女一区二区| 天天肏夜夜肏| 国产一区二区三区影片| 操逼1区| 影音先锋视频在线| 嫩草美女久久| a男人的天堂久久一级A毛片| 久久久91| 日韩日韩日韩-国产乱码精品一区二区| 免费人人搞97| 粘花网06av视频| 视频在线观看一二三区| 91色艳| 91xingse| 91人人看| 国内精品久久久久影院亚洲| 国产精品一区二区校花| 日韩国产欧美伦理在线| 翔田千里AⅤHD无码| 免费av在线播放二区| 91av一区二区在线观看| 9ⅰ久久久天天| 91精品免费| 一区二区三区四区在线不卡| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 日日夜夜模| 999 久久久| 久久人妇| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 超碰97网站| 97超碰久久| 国产自制av蜜乳| 欧美一级A一级a爱片久久| 人妻精品一区二区| 91亚洲情色| 久操精品| 日韩精品在线放| 一本精品日本在线视频精品 | 日韩免费性爱视频在线观看| 动漫爆乳3D奶水一区在线观看 | 大香蕉操久久| 欧美专利1区2区3区4区5区免费| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 婷婷丁香人妻| 亚洲天堂2020| 91肉丝| 亚洲国产成人精品999| 国产亚洲美日韩Aⅴ中文字幕无码成人| 黑人操一区二区| 久久性视频| 屌逼麻豆| 极品丝袜无码| 少妇三P| chaopen97久久| 四虎免费在线观看| 91色人妻| 欧美午夜视频精品久久| 亚洲色图亚洲无码强奸乱伦| 大香蕉av在线| 性色高清在线| 日韩 女同 综合| 亚洲男人的天堂va亚洲男人社| 无码高清操逼| 亚洲一卡2卡3卡4卡乱码网站 | 久久女婷| 亚洲最大的黄色电影网站。| 怡红院成人av| 69久久| 国产乱伦搜索结果91P| 俄罗斯一区二区视频在线观看| 中文字幕成人理论在线| 中文字幕日韩综合| 欧美 熟女 日韩| 东北女人高潮视频| 中文字幕美女91| 国产精品一区av在线| 无码伊人久久大杳蕉中文无码| 大香蕉AV丝袜| 伊人久久亚洲色欲综合网站 | 亚洲丝袜诱惑| 一本一道波多野毛片中文在线| 狠狠干综合| 久久久久久91香蕉国产| 久久超碰天天| 男人天堂网址| 国产精品自拍欧美在线| 精品人妻1237| 欧美色吧综合| 国产伊人精品在线| 夜夜春夜夜操| 操屄日韩| 国产 无码 一区二区| 中文字暮97| 国产高清在线自在拍69| 亚洲成a人v欧美综合天堂下载| 乱欲一区二区| 久久免费中文字幕在线观看| 欧美日本不卡| 91综合站| 乱伦1色页| 8050无码八戒| 清清一区二区三区四区不卡视频| 欧美激情久久久久| 少妇人妻激情四射| 天天躁日日躁狠狠躁| 国产熟女免费观看久久| 亚洲人成色9999精品久久| 超碰偷拍| xxxx网站亚洲精品| 99青草| 欧美色97| 亚洲欧美中文一区二区三| 95人妻爽爽人人做人人澡| 97视频在线免费播放| 精品人妻一区二区三区四区石在线| av国产无码| 97精品97久久| 国产超碰AV在线精品| 天堂蜜桃无码视频一区二区| 色拍偷亚洲| 日韩精品在线放| 日韩99神马视频播放片在线播放| 久久久精品九| 一区二区三区黄片免费观看| 91最新综合| 另类天堂| 97最新在线播放视频| 欧美激色| 奇米四色影视777久久久| 麻豆黄四叶草网站| 97天天综合| 99免费在线视频| 色97欧美| 男女做爰猛烈动高潮A片免费应用| 99热免费| 欧美性爱一区二区三区| 尤物一级在线免费观看| 国产精品视频在线播放| 精品国产无码中文| 久久97资源 网| 精品无码欧美三级| 大香樵伊人网| 国产路线专区|