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

ARTICLE DETAIL

資訊詳情

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

STM32入門不花錢買板,純軟件仿真從0到1跑通外設(shè)

STM32入門不花錢買板,純軟件仿真從0到1跑通外設(shè) 很多朋友一聽到嵌入式入門第一反應(yīng)就是得先買一塊開發(fā)板。但現(xiàn)實(shí)情況是有人在外讀書不方便帶設(shè)備有人只是想先試試水并不確定自己要不要投入硬件這個(gè)坑還有人純粹是被板子買回來卻不知道從哪下手這個(gè)經(jīng)典開局勸退過。我先前也是這么糾結(jié)過來的后來自己把完整的STM32入門流程用純軟件方案跑了一遍發(fā)現(xiàn)只要核心思路對(duì)了不花錢買板子一樣能扎扎實(shí)實(shí)把外設(shè)一個(gè)個(gè)吃透。這篇文章就聊聊我怎么搭出這套純軟件版的STM32學(xué)習(xí)環(huán)境以及這里面真正有價(jià)值的經(jīng)驗(yàn)。這套方案能做哪些事用一句話概括靠一個(gè)能在電腦上模擬STM32運(yùn)行的軟件工具配合標(biāo)準(zhǔn)開發(fā)環(huán)境把點(diǎn)燈、按鍵掃描、定時(shí)器中斷、串口通信這類最常遇到的外設(shè)功能以純軟件的形態(tài)完整跑通。它最大的賣點(diǎn)不是省錢而是整個(gè)學(xué)習(xí)過程的即時(shí)反饋和可調(diào)試性很多在真實(shí)板子上需要反復(fù)拔線、甚至要借用示波器才能看清的信號(hào)狀態(tài)在軟件模擬環(huán)境里可以直接用鼠標(biāo)點(diǎn)出來看。適合誰(shuí)來參考如果你是零基礎(chǔ)想入門STM32但暫時(shí)沒有硬件在手或者你是學(xué)生黨手頭板子不在身邊又或者你已經(jīng)在玩硬件但想找個(gè)快速驗(yàn)證外設(shè)邏輯的方式這篇文章都值得掃一遍。我不會(huì)只丟一個(gè)結(jié)論而是把從環(huán)境搭建到外設(shè)調(diào)試的整套邏輯都拆開講清楚順帶把我在仿真過程中踩過的幾個(gè)不明顯的坑也一并交代出來。讀這篇文章之前你不需要有開發(fā)板也不需要提前裝任何軟件。跟著我的步驟走一個(gè)多小時(shí)就能把環(huán)境跑起來然后你會(huì)對(duì)程序怎么控制硬件這件事產(chǎn)生跟對(duì)著板子燒錄完全不一樣的體感。1. 為什么純軟件路線值得走先說清楚價(jià)值邊界我說這套方案能跑通外設(shè)不代表它在所有方面都能替代真實(shí)硬件。了解它的適用范圍你才不會(huì)被仿真能跑誤導(dǎo)成程序上板必能跑。1.1 軟件模擬到底模擬了什么STM32的開發(fā)鏈路本質(zhì)上分兩條線一是寫代碼二是看硬件反應(yīng)。代碼寫的再漂亮最終都要落實(shí)到引腳電平變化、定時(shí)器計(jì)數(shù)器累加、串口數(shù)據(jù)收發(fā)這些物理行為上。純軟件模擬器的核心能力就是把這些物理行為在電腦里虛擬化呈現(xiàn)。比如你把某個(gè)引腳配置成推挽輸出并拉高模擬器不會(huì)真的點(diǎn)亮一顆LED但它會(huì)在外設(shè)窗口里把這個(gè)引腳的顏色改變并且更新電平狀態(tài)寄存器你配置了一個(gè)定時(shí)器中斷模擬器會(huì)在設(shè)定的時(shí)間點(diǎn)打斷主循環(huán)帶你去查看中斷服務(wù)程序的執(zhí)行情況。這意味著程序執(zhí)行邏輯、寄存器配置結(jié)果、外設(shè)狀態(tài)的聯(lián)動(dòng)關(guān)系全部可以逐一驗(yàn)證。這正是入門階段最需要的認(rèn)知閉環(huán)——你在代碼里寫的每一個(gè)寄存器位都能在軟件界面上看到它實(shí)際統(tǒng)治了什么。1.2 哪些外設(shè)適合仿真哪些必須上板我整理一個(gè)實(shí)際結(jié)論外設(shè)類型仿真可用度說明GPIO點(diǎn)燈/按鍵輸入極高完全適合電平狀態(tài)可實(shí)時(shí)觀察定時(shí)器中斷/計(jì)數(shù)高時(shí)序邏輯清晰調(diào)試比硬件還方便PWM波形高可以在邏輯分析窗里直接看占空比變化串口UART收發(fā)高支持虛擬串口終端連接收發(fā)可回環(huán)測(cè)試外部中斷EXTI高通過鼠標(biāo)點(diǎn)擊模擬引腳電平跳變ADC采樣中能模擬電壓變化過程但不接真實(shí)傳感器I2C/SPI與真實(shí)傳感器通信低傳感器芯片行為模擬有限上板更真實(shí)功耗/CAN總線等復(fù)雜外設(shè)低更依賴硬件真實(shí)環(huán)境從學(xué)習(xí)順序來看入門階段最關(guān)鍵的也就是GPIO、定時(shí)器、串口、中斷這幾樣恰恰是仿真支持得最好的部分。所以我的結(jié)論是純軟件路線完全覆蓋STM32入門的主干內(nèi)容直到你開始搞復(fù)雜的傳感器驅(qū)動(dòng)或通信協(xié)議對(duì)接再上板也不遲。1.3 這套方案的隱藏紅利調(diào)試習(xí)慣我提一個(gè)可能有爭(zhēng)議的觀點(diǎn)仿真反而是養(yǎng)成調(diào)試習(xí)慣的好方式。拿真實(shí)板子調(diào)程序時(shí)新手最常見的操作是改一行代碼→燒錄→看現(xiàn)象不對(duì)→再改一行這其實(shí)是在碰運(yùn)氣。而用軟件模擬器你能在代碼里斷點(diǎn)能逐行執(zhí)行能在某個(gè)外設(shè)狀態(tài)變化瞬間暫停整個(gè)系統(tǒng)去觀察寄存器。這種看見中間過程的能力會(huì)讓你的排查思路從猜謎變成真正的推理。2. 搭建純軟件開發(fā)環(huán)境選型與關(guān)鍵配置既然要純軟件第一步不是寫代碼而是先把手頭工具鏈理清楚。這里涉及兩個(gè)獨(dú)立軟件的組合很多人栽跟頭就栽在不知道兩者各管什么。2.1 開發(fā)環(huán)境與模擬器的分工邏輯我用的是Keil MDK做代碼編寫與編譯搭配STM32CubeMX做初始化代碼生成再打開軟件自帶的模擬器進(jìn)行運(yùn)行調(diào)試。這幾樣?xùn)|西經(jīng)常被混為一談其實(shí)分工很明確CubeMX負(fù)責(zé)把你想要的引腳功能、外設(shè)參數(shù)轉(zhuǎn)換成初始化C代碼省去查寄存器的功夫Keil負(fù)責(zé)編譯這些代碼并生成可在處理器上執(zhí)行的程序文件模擬器則是Keil內(nèi)置的一個(gè)調(diào)試組件它模擬了STM32處理器的運(yùn)行狀態(tài)不用連接實(shí)際芯片也能加載并執(zhí)行程序。三者串起來就是CubeMX生成工程 → Keil打開工程并編譯 → 進(jìn)入調(diào)試模式啟動(dòng)模擬 → 在模擬器里觀察外設(shè)行為。很多朋友裝好軟件后不知道怎么把模擬器調(diào)出來這里有個(gè)關(guān)鍵菜單項(xiàng)在Keil里點(diǎn)擊魔術(shù)棒圖標(biāo)Options for Target切到Debug頁(yè)在右側(cè)選擇Use Simulator選項(xiàng)模擬功能才會(huì)被激活。這個(gè)細(xì)節(jié)不設(shè)置插不插開發(fā)板都會(huì)去連真實(shí)調(diào)試器純軟件環(huán)境自然跑不起來。2.2 一個(gè)容易忽略的時(shí)鐘配置純軟件模式下代碼燒不進(jìn)任何實(shí)體芯片所有執(zhí)行都靠電腦的CPU去模擬STM32的處理過程。這里就牽扯到一個(gè)大家容易忽略但入坑必遇的問題時(shí)鐘頻率影響模擬速度。STM32內(nèi)部默認(rèn)使用內(nèi)部高速時(shí)鐘而CubeMX生成工程時(shí)經(jīng)常會(huì)幫你配置成外部晶振方案。但仿真環(huán)境根本不存在外部晶振信號(hào)如果工程配置強(qiáng)制要求外部晶振模擬器可能在啟動(dòng)后卡住或運(yùn)行極慢。我的建議是在CubeMX的時(shí)鐘配置頁(yè)面把時(shí)鐘源明確選為內(nèi)部時(shí)鐘并把系統(tǒng)主頻設(shè)置到一個(gè)標(biāo)準(zhǔn)值。這個(gè)操作本身很簡(jiǎn)單但不提前做的話后面所有仿真體驗(yàn)都會(huì)因?yàn)檫\(yùn)行緩慢而大打折扣。這個(gè)經(jīng)驗(yàn)是我一開始沒注意后來發(fā)現(xiàn)模擬器里單步執(zhí)行像蝸牛爬反復(fù)排查后才意識(shí)到是時(shí)鐘源配置跟模擬環(huán)境不匹配導(dǎo)致的。2.3 從CubeMX到模擬器的完整搭建清單別急著上手按照這個(gè)順序走一遍基本不會(huì)出亂子安裝Java運(yùn)行環(huán)境CubeMX依賴它運(yùn)行安裝STM32CubeMX選擇自己的芯片型號(hào)創(chuàng)建新工程安裝Keil MDK并添加對(duì)應(yīng)芯片型號(hào)的設(shè)備支持包在Keil中打開Options → Debug勾選Use Simulator模式進(jìn)入調(diào)試環(huán)境的Peripherals菜單打開GPIO、TIM、USART等外設(shè)觀察窗口。提示CubeMX生成代碼時(shí)工具鏈選項(xiàng)要選擇MDK-ARM V5版本否則生成的工程Keil有可能打不開。3. 第一課仿真環(huán)境里點(diǎn)燈以及背后比點(diǎn)燈更重要的事點(diǎn)燈之所以叫嵌入式入門的第一課不只是因?yàn)樗?jiǎn)單而是它能在最簡(jiǎn)單的前提下把代碼如何作用到引腳物理狀態(tài)這個(gè)核心鏈條走通。3.1 用CubeMX配置一個(gè)輸出引腳以下步驟基于標(biāo)準(zhǔn)流程新建工程、選定型號(hào)、在芯片圖上用鼠標(biāo)點(diǎn)擊某個(gè)引腳并選擇GPIO_Output模式。這個(gè)操作模擬的是你決定使用這個(gè)引腳去控制一顆外部LED燈。值得注意的一個(gè)細(xì)節(jié)是GPIO Output level選項(xiàng)這里可以選擇初始化時(shí)默認(rèn)拉高還是拉低。LED電路設(shè)計(jì)不同亮滅邏輯就不同低電平點(diǎn)亮負(fù)極接引腳和正極接電源的情況正好相反。所以選擇一個(gè)默認(rèn)狀態(tài)本質(zhì)上是為后續(xù)代碼里的置高置低操作預(yù)設(shè)了一個(gè)初始對(duì)照。實(shí)際做硬件時(shí)這個(gè)選擇由電路原理圖決定純軟件階段先隨便選一個(gè)知道有這個(gè)參數(shù)就行。配置完成后切到GPIO設(shè)置頁(yè)還能看到Pull-up/Pull-down、Maximum output speed這些參數(shù)。仿真階段影響不大但Maximum output speed這個(gè)選項(xiàng)值得留個(gè)印象——它決定了引腳翻轉(zhuǎn)的最高速率后續(xù)研究高速通信時(shí)會(huì)用上。3.2 主代碼與模擬器觀察CubeMX生成好工程后在main函數(shù)里補(bǔ)一段經(jīng)典的翻轉(zhuǎn)代碼while (1) { HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET); HAL_Delay(200); HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET); HAL_Delay(200); }這段代碼做的事情很簡(jiǎn)單讓引腳輸出低電平、等200毫秒、輸出高電平、等200毫秒。編譯通過后進(jìn)入調(diào)試模式打開Peripherals菜單里的GPIO窗口你會(huì)看到你配置的那個(gè)引腳對(duì)應(yīng)的一行其中電平狀態(tài)在一高一低地變化著。這里插一個(gè)非常重要的經(jīng)驗(yàn)純軟件模擬的環(huán)境里沒有實(shí)際電器參數(shù)約束代碼執(zhí)行完設(shè)置引腳電平的那一瞬間GPIO窗口里的狀態(tài)就會(huì)立刻變化。但真實(shí)板子上電平變化需要時(shí)間LED亮滅延時(shí)也要考慮電氣特性。仿真里看的是邏輯正確性硬件上看的是物理實(shí)現(xiàn)結(jié)果兩者之間的差異是正?,F(xiàn)象不必?fù)?dān)心自己配置錯(cuò)了。3.3 進(jìn)階玩法不用物理按鍵也能觀察輸入狀態(tài)點(diǎn)燈只是輸出方向。輸入方向就是讀按鍵狀態(tài)了這個(gè)在模擬器里觀察起來甚至比真實(shí)板子還方便。舉個(gè)例子在CubeMX里追加配置一個(gè)引腳為GPIO_Input模式然后在主循環(huán)里讀取它的電平根據(jù)電平?jīng)Q定LED引腳的狀態(tài)。在模擬器調(diào)試過程中你不需要真的去按一顆物理按鍵直接打開GPIO窗口找到對(duì)應(yīng)輸入引腳那一行手動(dòng)修改它的輸入電平值。把這個(gè)值從高改成低就相當(dāng)于用手指按下了按鍵——程序會(huì)在下一次循環(huán)檢測(cè)到這個(gè)變化然后從代碼分支里走出你預(yù)期的反應(yīng)。這個(gè)過程讓我覺得特別有價(jià)值的地方在于你在真實(shí)板子上按按鍵按鍵抖動(dòng)、接觸電阻、引腳浮空這些真實(shí)因素都會(huì)干擾你的判斷但剛?cè)腴T時(shí)根本不知道還有這些干擾存在。用模擬器把邏輯先玩明白之后碰到真實(shí)硬件至少能確定程序邏輯沒問題問題出在物理層面這是很關(guān)鍵的排查分界線。4. 定時(shí)器入門在仿真里看見時(shí)間這件事很多初學(xué)者學(xué)定時(shí)器最大的障礙來自于看不到時(shí)間流動(dòng)。你在代碼里設(shè)置了一個(gè)中斷周期腦子里知道1毫秒會(huì)到一次但沒有示波器沒有邏輯分析儀的話你很難確認(rèn)真實(shí)世界是不是按你的預(yù)期在執(zhí)行。仿真環(huán)境恰好把這個(gè)痛點(diǎn)治得服服帖帖。4.1 定時(shí)器中斷的初始化邏輯這里我用TIM2舉例。在CubeMX里啟用TIM2時(shí)鐘源選擇Internal Clock將預(yù)分頻器Prescaler設(shè)置為72-1自動(dòng)重裝載值Counter Period設(shè)置為1000-1打開全局中斷。這樣配置出來的是什么效果前提是系統(tǒng)主頻運(yùn)行在72MHz。定時(shí)器的計(jì)數(shù)時(shí)鐘等于主頻除以預(yù)分頻系數(shù)1。我的預(yù)分頻器設(shè)置為71那么計(jì)數(shù)時(shí)鐘就是 72MHz / 72 1MHz也就是每1微秒計(jì)數(shù)值加1。自動(dòng)重裝載值設(shè)置為999意味著計(jì)數(shù)器從0數(shù)到999后溢出觸發(fā)一次更新事件。這樣算下來中斷周期恰好是1000微秒也就是1毫秒。這個(gè)計(jì)算過程我建議別偷懶自己認(rèn)真推導(dǎo)一遍。很多朋友在真實(shí)板子上一次點(diǎn)亮流水燈看不出問題但一到做精確時(shí)鐘時(shí)就開始出bug根源就是預(yù)分頻系數(shù)跟自動(dòng)重裝載值之間差的那個(gè)1沒有理解透。這兩個(gè)值寫進(jìn)寄存器里的都是計(jì)數(shù)次數(shù)-1這是一個(gè)極其經(jīng)典的新手坑仿真時(shí)反而容易看出來——因?yàn)槟憧梢詴和3绦虿榭从?jì)數(shù)寄存器當(dāng)前值確認(rèn)它是不是從0一直加到設(shè)定的值。4.2 中斷回調(diào)與仿真觀察技巧初始化完成后真正的運(yùn)行邏輯寫在定時(shí)器中斷回調(diào)函數(shù)里。調(diào)用HAL_TIM_Base_Start_IT啟動(dòng)定時(shí)器后每當(dāng)計(jì)數(shù)周期達(dá)到程序會(huì)停下主線任務(wù)跳進(jìn)中斷回調(diào)執(zhí)行一次標(biāo)記操作。void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if (htim-Instance TIM2) { toggle_flag 1; } }在主循環(huán)里檢測(cè)這個(gè)標(biāo)記并翻轉(zhuǎn)LED狀態(tài)最終效果就是每1毫秒產(chǎn)生一次中斷但LED以2毫秒為周期翻轉(zhuǎn)一次。仿真時(shí)你有兩個(gè)觀察窗口一個(gè)是定時(shí)器的寄存器窗口可以看到計(jì)數(shù)器實(shí)時(shí)累加一個(gè)是打斷點(diǎn)驗(yàn)證中斷服務(wù)程序是否按預(yù)期頻率被喚醒。我自己實(shí)測(cè)時(shí)習(xí)慣在中斷回調(diào)第一行下一個(gè)斷點(diǎn)然后看右下角Call Stack窗口里的調(diào)用路徑。當(dāng)程序每次從main函數(shù)跳到中斷回調(diào)這種主線被打斷的體感對(duì)理解CPU的中斷響應(yīng)機(jī)制特別有幫助。純靠語(yǔ)言描述不如親眼看到一次。4.3 用邏輯分析窗口看PWM輸出定時(shí)器還有一個(gè)重要應(yīng)用方向就是生成PWM波。CubeMX配置TIM2的某個(gè)通道為PWM生成模式設(shè)置好占空比初始值。代碼里只需要調(diào)一個(gè)函數(shù)修改比較寄存器值就可以改變占空比__HAL_TIM_SET_COMPARE(htim2, TIM_CHANNEL_1, 500);在真實(shí)板子上想看到PWM波形有條件可以上示波器沒有的話用萬(wàn)用表只能讀到平均電壓根本看不到脈沖形態(tài)。而Keil的模擬器里自帶一個(gè)邏輯分析窗口添加變量后可以直接看到PWM信號(hào)的波形曲線。把比較值調(diào)成250、500、750波形圖上占空比的變化一目了然這比自己對(duì)著寄存器文檔腦補(bǔ)信號(hào)形態(tài)靠譜太多。不過要提醒一句邏輯分析窗口看到的波形是基于引腳電平變化狀態(tài)模擬出來的波形質(zhì)量比真實(shí)示波器要粗糙但用于理解占空比概念和驗(yàn)證代碼邏輯完全足夠。5. 串口通信在虛擬世界里聯(lián)調(diào)數(shù)據(jù)串口是STM32和外設(shè)、上位機(jī)、其他控制器打交道最常用的門戶也是很多同學(xué)入門時(shí)感覺玄乎的部分。仿真環(huán)境其實(shí)能把這個(gè)環(huán)節(jié)做得相當(dāng)真實(shí)關(guān)鍵在于配置好之后要進(jìn)行一次收發(fā)閉環(huán)驗(yàn)證。5.1 printf重定向的兩種做法串口最常見的使用場(chǎng)景就是printf打印調(diào)試信息。在STM32上直接調(diào)printf不會(huì)輸出到任何地方因?yàn)闃?biāo)準(zhǔn)庫(kù)的底層輸出函數(shù)沒有跟串口硬件建立連接需要把底層輸出重定向到串口發(fā)數(shù)據(jù)的接口上。主流做法有兩種一種是用MDK的微庫(kù)重寫fputc函數(shù)#include stdio.h int fputc(int ch, FILE *f) { HAL_UART_Transmit(huart1, (uint8_t *)ch, 1, 0xFFFF); return ch; }另一種是配合編譯器選項(xiàng)重寫底層函數(shù)寫法因工具鏈而異。入門階段用第一種就夠了。注意調(diào)用HAL_UART_Transmit最后一個(gè)參數(shù)是超時(shí)時(shí)間如果設(shè)置太短數(shù)據(jù)來不及被模擬器接收打印會(huì)顯得斷續(xù)設(shè)置成0xFFFF這種較大值能保證傳輸完成。5.2 虛擬串口終端與回環(huán)驗(yàn)證純軟件模式下你的電腦上沒有真實(shí)的串口硬件怎么看到發(fā)出來的數(shù)據(jù)答案是使用Keil模擬器自帶的串口窗口。進(jìn)入調(diào)試模式后打開串口窗口Serial Window選擇對(duì)應(yīng)的串口編號(hào)#1。程序運(yùn)行到printf語(yǔ)句時(shí)字符串會(huì)直接顯示在這個(gè)窗口里。要驗(yàn)證接收功能直接在串口窗口的輸入框里鍵入一個(gè)字符程序里配置好的UART接收中斷服務(wù)程序就會(huì)被觸發(fā)在回調(diào)里可以讀取到這個(gè)字符并做出回應(yīng)。我第一次在這個(gè)環(huán)境里做收發(fā)回環(huán)測(cè)試的時(shí)候心里還挺感嘆的虛擬世界里STM32串口把那一個(gè)字節(jié)收進(jìn)了芯片內(nèi)部再?gòu)牧硪粋€(gè)狀態(tài)里送出來整個(gè)過程不需要任何物理連線但寄存器、中斷、數(shù)據(jù)緩沖區(qū)的處理邏輯跟真機(jī)沒有差別。把這一套流程走通后以后真機(jī)上接USB轉(zhuǎn)串口模塊也好、對(duì)接藍(lán)牙模塊也好至少你不會(huì)對(duì)數(shù)據(jù)流動(dòng)的邏輯感到發(fā)怵。5.3 串口調(diào)試要注意的波特率一致性很多人第一次被串口通信折騰就是波特率不一致。仿真環(huán)境雖然省去了真實(shí)電平轉(zhuǎn)換的環(huán)節(jié)但雙方使用的波特率參數(shù)仍然需要匹配。為什么因?yàn)榻邮斩耸且罁?jù)預(yù)設(shè)波特率來對(duì)數(shù)據(jù)進(jìn)行采樣的兩邊速率不同接收方解析出的字節(jié)就會(huì)錯(cuò)亂。Keil模擬器串口窗口本質(zhì)上模擬了一個(gè)收發(fā)的邏輯端配置的是CubeMX里UART初始化的波特率參數(shù)。實(shí)際項(xiàng)目里PC端上位機(jī)軟件設(shè)置的波特率必須跟單片機(jī)里的配置一致這是鐵律。仿真階段記住這一點(diǎn)以后上板會(huì)省掉好多無謂的排查。注意仿真的串口數(shù)據(jù)流不經(jīng)過物理電平變化所以即便波特率不匹配程序可能不會(huì)報(bào)錯(cuò)但你收到的數(shù)據(jù)內(nèi)容會(huì)是亂碼或丟失。兩者行為差異值得記在心里。6. 把外設(shè)組合在一起一個(gè)完整的小實(shí)驗(yàn)單獨(dú)點(diǎn)燈、單獨(dú)定時(shí)器、單獨(dú)打印每個(gè)都很簡(jiǎn)單但真正的入門成就感來自于把它們組合起來實(shí)現(xiàn)一個(gè)像那么回事的小功能。我自己在仿真環(huán)境里搭了一個(gè)經(jīng)典的復(fù)合實(shí)驗(yàn)供你參考復(fù)現(xiàn)。6.1 實(shí)驗(yàn)?zāi)繕?biāo)與配置清單我搭的是這樣一個(gè)場(chǎng)景一個(gè)按鍵決定系統(tǒng)進(jìn)入運(yùn)行模式LED以一定頻率閃爍同時(shí)通過串口每200毫秒打印一次狀態(tài)信息再按一次按鍵則退出運(yùn)行模式。這個(gè)目標(biāo)就要同時(shí)使用到GPIO輸出LED、GPIO輸入按鍵、定時(shí)器定期翻轉(zhuǎn)、UART打印信息四個(gè)外設(shè)。整個(gè)配置階段非常順理成章CubeMX里打開四樣外設(shè)生成工程。關(guān)鍵是在回調(diào)函數(shù)里做好互斥——不能用按鍵掃描阻塞定時(shí)器翻轉(zhuǎn)也不能在打印期間卡住主線太久。6.2 主程序邏輯這是我在調(diào)試過程中不斷調(diào)整后形成的版本去掉了無關(guān)緊要的部分只保留核心思路uint8_t running 0; uint8_t led_state 0; void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if (GPIO_Pin KEY_Pin) { running running ? 0 : 1; } } void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if (htim-Instance TIM2) { if (running) { led_state !led_state; HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, led_state ? GPIO_PIN_SET : GPIO_PIN_RESET); } } } int main(void) { // ... 初始化部分由CubeMX生成 ... while (1) { if (running) { printf(System is running, LED state: %d\r\n, led_state); } HAL_Delay(200); } }代碼不復(fù)雜但有一個(gè)值得品一品的設(shè)計(jì)按鍵消抖在真實(shí)板子上是個(gè)繞不開的話題可在仿真環(huán)境里由于沒有真實(shí)的機(jī)械抖動(dòng)信號(hào)EXTI引腳在模擬器中被鼠標(biāo)點(diǎn)擊時(shí)只會(huì)產(chǎn)生一次電平變化所以不需要額外做延時(shí)消抖。這是仿真的簡(jiǎn)化優(yōu)勢(shì)也是仿真的潛在陷阱——等到了真機(jī)上同樣的代碼可能因?yàn)闆]消抖而產(chǎn)生錯(cuò)誤的邊沿觸發(fā)這點(diǎn)必須要心里有數(shù)。6.3 仿真中的調(diào)試體驗(yàn)復(fù)盤把這套組合實(shí)驗(yàn)跑通我在仿真器里重點(diǎn)觀察了幾個(gè)數(shù)據(jù)位EXTI標(biāo)志位是否在點(diǎn)擊引腳時(shí)及時(shí)置位、定時(shí)器中斷回調(diào)里的led_state翻轉(zhuǎn)是否穩(wěn)定、串口窗口打印的頻率是否符合200毫秒間隔。有意思的是問題真的被我抓到過一次。在中斷回調(diào)里我一開始把打印語(yǔ)句也放進(jìn)去了結(jié)果串口窗口的輸出變得混亂且重復(fù)。排查后發(fā)現(xiàn)打印本身耗時(shí)較長(zhǎng)定時(shí)器中斷又頻繁觸發(fā)導(dǎo)致回調(diào)還沒跑完新一輪中斷又來了。解決方法是把打印從回調(diào)挪到主循環(huán)用標(biāo)志位去協(xié)調(diào)。這種中斷里不做耗時(shí)操作的原則在仿真里犯過一次印象會(huì)非常深刻比看十遍教科書都管用。7. 仿真之外往真實(shí)硬件過渡要注意的幾個(gè)落差寫到這里我覺得有必要專門用一個(gè)篇幅討論一下仿真和真機(jī)的差異。這不是潑冷水而是希望你在純軟件路線里獲得的經(jīng)驗(yàn)不至于到真機(jī)上時(shí)被打個(gè)措手不及。7.1 電平與時(shí)序的真實(shí)性差異仿真中對(duì)IO引腳狀態(tài)的更新是立即生效的而真實(shí)芯片從CPU寫寄存器到引腳真正拉高需要經(jīng)過電平轉(zhuǎn)換、負(fù)載電容充電等物理過程存在一個(gè)微小但客觀存在的延遲。在低速外設(shè)場(chǎng)景點(diǎn)燈、串口9600波特率這種延遲可以完全忽略但在追求精確時(shí)序的場(chǎng)合比如模擬一些對(duì)外通信協(xié)議必須考慮到它。另一個(gè)常見落差在時(shí)鐘精度上。仿真環(huán)境使用的是理想化的時(shí)鐘頻率模型不會(huì)存在晶振溫漂、內(nèi)部RC振蕩器精度偏差這些因素。真實(shí)板子上的串口長(zhǎng)時(shí)間通信可能會(huì)出現(xiàn)偶發(fā)亂碼相當(dāng)一部分原因就是板載時(shí)鐘精度不夠。如果仿真階段從沒遇過這種問題上板時(shí)遇到反而容易一頭霧水。我將給你分享幾條硬件過渡的經(jīng)驗(yàn)要做的是先跑一個(gè)最簡(jiǎn)單的GPIO輸出程序驗(yàn)證板子本身能不能工作而不是一上來就挑戰(zhàn)復(fù)雜的綜合例程。另外不要直接照搬仿真的引腳配置到真機(jī)先對(duì)照原理圖確認(rèn)哪些引腳連接了按鍵、哪些連接了LED、哪些引腳被復(fù)用這步出錯(cuò)的概率其實(shí)很高。7.2 調(diào)試手段的降級(jí)與補(bǔ)充仿真里你能隨便暫停、隨便看寄存器但真機(jī)上調(diào)試受制于調(diào)試器類型和連接穩(wěn)定性隨時(shí)暫停在大部分使用場(chǎng)景下是不可行的。這會(huì)導(dǎo)致一個(gè)典型的初學(xué)困境仿真跑得好好的程序到真機(jī)上掛死或運(yùn)行邏輯詭異卻因?yàn)闊o法暫停而毫無頭緒。我的建議是在純軟件階段就有意識(shí)地培養(yǎng)借助代碼排查問題的能力比如打印關(guān)鍵變量、設(shè)置條件斷點(diǎn)、使用標(biāo)志位觀測(cè)執(zhí)行流程。這些習(xí)慣在真機(jī)上同樣有效甚至更重要。養(yǎng)成通過程序自己觀測(cè)自己的習(xí)慣比依賴暫停仿真器來得更貼近實(shí)際開發(fā)。簡(jiǎn)而言之純軟件路線是很好的起點(diǎn)但你得有意識(shí)地為下一次真實(shí)硬件之旅做鋪墊。不用急著現(xiàn)在買板子不過也不必把仿真當(dāng)成取代硬件的萬(wàn)金油。8. 回顧與幾個(gè)容易被低估的細(xì)節(jié)到了這一節(jié)我想把散落在各個(gè)步驟里容易被忽視但實(shí)際操作中相當(dāng)關(guān)鍵的小點(diǎn)集中拎出來再講一遍。這些都是正文流程里出現(xiàn)過、但一句話帶過去的細(xì)節(jié)值得你反復(fù)體味。外設(shè)窗口要主動(dòng)打開不會(huì)自動(dòng)出現(xiàn)。模擬器里默認(rèn)只顯示代碼和寄存器窗口GPIO、定時(shí)器、串口這些外設(shè)觀察窗口都要通過Peripherals菜單手動(dòng)打開。不打開這些窗口仿真體驗(yàn)直接從可視化變成盲調(diào)你會(huì)錯(cuò)過最有價(jià)值的部分。單片機(jī)的引腳狀態(tài)位和邏輯詞經(jīng)常是反的??碐PIO窗口時(shí)GPIO Pin置高可能對(duì)應(yīng)代碼里Reset狀態(tài)具體要根據(jù)電路邏輯去理解別跟概念較勁。理解置0復(fù)位、置1置位的稱呼分清物理狀態(tài)與邏輯狀態(tài)是兩套東西能少繞不少?gòu)潯L摂M串口窗口不要同時(shí)開多個(gè)。模擬器里同時(shí)打開多個(gè)串口窗口一個(gè)是調(diào)試起來容易串心流另一個(gè)是資源占用會(huì)拖慢模擬速度。按需使用用完關(guān)掉體驗(yàn)更流暢。文件保存路徑別帶全英文字符之外的特殊符號(hào)。這個(gè)雖說是個(gè)人習(xí)慣問題但CubeMX生成工程時(shí)如果路徑含中文或空格后續(xù)編譯階段偶爾會(huì)出莫名其妙的報(bào)錯(cuò)不如一開始就規(guī)避掉。這一點(diǎn)在我見過不少同學(xué)的實(shí)操里都踩過坑。時(shí)鐘樹頁(yè)面自己點(diǎn)一點(diǎn)理解一下。整個(gè)外設(shè)配置里時(shí)鐘樹的設(shè)置最容易應(yīng)付了事卻也是最能幫你建立全局觀的地方。試著改一下總線分頻系數(shù)看看APB1外設(shè)時(shí)鐘和APB2外設(shè)時(shí)鐘的變化這比任何講解都直觀。如果你之前只看文字、沒有上手操作我強(qiáng)烈建議你現(xiàn)在就動(dòng)手把環(huán)境搭起來。我?guī)缀蹩梢员WC在模擬器里親手跑通第一個(gè)GPIO點(diǎn)燈程序后你對(duì)嵌入式開發(fā)這個(gè)概念的理解會(huì)發(fā)生一次難得的具象化躍遷——你不再覺得它是一堆永遠(yuǎn)摸不著門道的寄存器而是一套可以用邏輯和實(shí)驗(yàn)去驗(yàn)證的工程體系。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
99精品国产户外露出| 天天看天天日天天操| 欧亚日本情色| 日韩在线视频1234| 中文字幕av乱伦| 最新亚洲黄色免费电影| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 欧美久久伊人| 亚洲在线综合| 亚洲乱色视频一区、二区在线| 性饥渴少妇av无码毛片| 中文字幕在线免费观看 | 伊人在线大香蕉视频久久| 99热这里只有精品地址| 亚洲色图综合| 亚洲国产青青| 精品一区96| 亚洲一区二区三区欧美日韩| 乱操乱伦AV| 91热色| 四虎永久在线精品免费网址| 日韩不卡毛片Av免费高清| 自拍六区| 日韩精品在线视频,日韩精品……| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 国产精品久久伊人| 秋霞曰韩R级| 国产高清免费不卡av| 亚洲欧洲激情卡通另类文学四射小说网站| 欧美线天码中字| 欧美三级免费伊人| 国产亚洲人妻综合日韩 久久| 特级特黄一级毛片免费| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 九九九九久久久| 尤物国产一区在线观看| 国产成人手机视频激情| 午夜视频久久久久一区| 日韩国产精品人妻无码久久久| 久欲AV| 九九九久久久久| 天美国产精品| 91操人| 综合色色婷婷| 欧美性爱五月天| 国产一区二区免费福利片| 欧美在线天堂| 国产一国产一级毛片古装| 龙兴卡官方查询| 97超碰天天| 91蜜臀在线久久久久| 久久色人体| 久久久久9999| 色蜜AV| 免费操逼视频下载| 婷婷丁香久久| 丁香五月综合| 欧亚洲精品有视频| 一区麻豆 高清中文字幕| 日韩另类色图| 2010男人的天堂| 亚洲欧美在线观看无码| 亚洲成人福利电影免费| 2011国产精品| 成人女人国产| 色噜噜人妻av中文字幕| 久久精品一区二区三区四区五区| 亚洲国产精品无码AV久久| 黑人性欧美| 亚洲性刺激| 91狠狠综合网| 婷婷AV一区二区三区| 3P乱轮视频| 丁香六月啪啪| 精品国产污一区二区三区| 性综合网| 伦伦成年午夜免费视频| 日本熟女中文| 欧美少妇第一页| 香蕉av一区二区三区| 91中文字幕在线观看| 91亚洲人| 国内毛片热久久思思热| 欧美成人性爱视频在线播放| 黄片视频,下载| www99热| 国产原创精品| 91久久久久久久久18| 青青青国产手线观看视频2| 亚洲欧美日韩免费电影| 99久久9| 九九九影院| 欧美日韩在线小说 | 老女人碰碰在线碰碰视频| 午夜AV污污污| 天天欧美| 国产av又色又爽又黄| 亚洲一区二区性爱电影| 裸体1区| 久久97超碰| 人妻少妇色综合| 成年人免费观看网站| 激情文学88| 玖玖玖玖精品国产剧情| 亚洲男人天堂网久久| 成人片视频| 97在线免费观看视频| 性爱视频无打码在线观看| 亚洲性爱无码乱伦av| 天无日色综合| 欧美日韩精品久久久久久久久东北老熟妇| 91人妻精华帖| 日韩超碰精品综合| 久操电影| 日本久久99| 99re热| 亚洲九九九| 国产AV高清AV无码| 激情四射婷婷六月天| AA级电影三区| 又黑又大又粗 | 亚洲国产97| 国产精品蜜乳AV| 99精品无码| 亚洲欧洲激情| 黑人狂躁日本妞一区二区三区| 制服乱伦| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 亚洲综合97| 五月丁香影视| 久久精品人妻一区| 黑丝少妇麻豆| 精品日韩中文在线| 天综合网欧美| 欧美色婷婷| 亚洲全色网| 日韩三级网址| 99re公开精品免费视频| 日韩欧视频| 高清无码网址| 国产精品人妻无码久久久老鸭窝| 干b在线性社区| 强奸乱伦中文字幕AV| 99re6在线视频精品免费完整版安卓版| 色网在线视频观看免费| 91bbb| 欧美大香蕉97| 日本韩欧美在线播放a| 日韩精品 欧美激情| 日日日日日| WWW.操逼.COM| 99re在线视频国产| 91黑丝露脚| 国产黄色视频久久| 欧美性Fer办公室秘书| 婷婷AV一区二区三区| 亚洲综合网91| 欧美小说区视频区| AV丝袜少妇| 国产成人自拍视频在线| 免费av在线播放二区| 性爱AV天堂| 欧美日韩99| 中文字幕丰满人妻日本| 精品二区三四区五电影 | 强奸乱伦av电影| 综合网天天| 啊啊啊好舒服视频在线观看| 天天操综合网| 色色无码| 亚洲最大AV网| 操逼视频亚洲| 家庭乱伦性爱av| 97Ai亚洲| 欧美人妻一区二区| 天天综合站| 伊人大香蕉在线| www.av在线观看| 日韩兔费看黄片| 爱丝福利| 91成人18| 欧美激情高清性猛交| 久草男人天堂| 一区二区三区日韩欧美 | 大香蕉欧美国产日韩高潮| 性一交一乱一交A片久久四色| WWW.操逼.COM| 澳门黄片一香蕉视频| 美女91网| 夜夜春夜夜操| 欧洲综合色| 九9精品| 九九九九九九成人| 天天综合网久久ww| 亚洲天天艹| 国产女人成人精品视频| 国产精品久久久久久久毛片1| 精品91| 婷婷色香伊人| 黑人美精品 A片| 日韩在线一区高清在线| 欧美v亚洲v综合v国产v妖精| 国产隔壁老王影院在线| 韩日色费| 精品久久久久久AV无码| 日本操逼视频不卡直接放| 97在线视频免费| 另类欧美色| 老熟乱一区二区三区四区| 搡老女人老91妇女熟女| 一区二区三区四区在线不卡| 干少妇视频| 国产久久久久久| 亚洲欧美另类图片| 久久久久97| 欧美91精品国产自产| 亚洲欧美综合| 亚洲欧美另类小说| 免费自拍三级综合| 太久视频| 色色无码| 伊人久久大香蕉线AV五月天| 99re99在线视频| 男人天堂导航| 亚洲欧美国产va在线播放频| 欧美激情性久久久久久| 国产三级中文有码在线视频| 五月婷婷色| 欧美在线官网| 人妻 制服 日韩 中文 在线| 青青操视频在线| 日日AAvv| 精品视频在线观看精品| 3p国产色噜噜一区| 亚洲男人的天堂一区二区| 91激情| 人人性爱视频免费| 女人高潮大叫一级毛片| 久久9久9久99久9久9| 日韩情色AV| 久久熟女嫩草成人片免费| 精品人妻一区二区蜜桃视频 | 久草视频观看视频在线| 日本国产欧美高清在线| 激情文学网伊人| 欧美色66| 国内一级精品| 搞中出久久| 日韩一级片| 日本一二区免费| 国产自产22区| 天天谢天天干| 亚洲一区二区三区麻豆传媒| 91黑丝操| 九月丁香婷婷色| 国产成人精品亚洲日本| 色女综合| 97免费在线观看| 精品国产丝袜一区二区三区乱码| 男人的天堂2019AV| 日韩色女精品| 日韩免费大片一级播放| 蜜色网色哟哟| av天堂电影网| 色播综合| 四虎在线免费视频| 性饥渴少妇av无码毛片| 97色冈| 九九九九一级| 强奸乱伦日韩AV| 熟妇亚洲一区二区三区| 午夜男人的天堂| 口爆吞精在线观看| 天天影视之亚洲综合网| 久久天天艹| 怡红院视频在线| 国产夫妻性生活视频| 日小BB小视频| 欧美香蕉视xxx| 久久这里只精品| 青青久久手机线视频| 麻豆久久久久久久久丝袜| 日韩欧美中文字幕搭讪巨乳美人妻视频| 操逼片国产| 91麻豆天美传媒HD| 天天干天天舔| 久久久亚洲精品电影免费看| 久久久久国产精品久久久| 巨爆乳肉感一区二区三区竹菊影视| 97精品视频免费| av网站在线看| 极品久久久久久久久久久久久久| 亚洲无码 国产无码| 在线 制服丝袜中出 人妻| 久久久精品,3| 丝袜 亚洲 偷拍| 91久| 欧美少妇熟女| 91激情| 嗯嗯嗯啊啊啊在线免费观看| www.色吧5.com| 按摩中文字幕| 久操99| 亚洲国产综合视频| 超碰 另类 欧美| 国产成人超碰在线| 91久久国产综合精品| 草草影院最新网址| 天天热精品| 超碰在线成人| 久96热在线观看视频| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 久久啊啊啊视频| 久久精品中文字幕无码l| 欧美日韩亚洲五月天婷婷| 久久激情亚洲精品无码?V| 久久↗↗| 精品网站9999| 偷看洗澡一二三区美女| 91伊人| 97综合国产精品高潮久久| 精品国产一区二区三区香蕉欧美| 亚洲亚洲亚洲天堂天堂| 精品久久一区二区三区四区五区| a片偷拍视频| 亚州色国| 五月天丁香欧洲日韩| www.99色| 精品熟妇视频一区二区| 精产国品一区二三产品| 日本狠狠干| 国内精品嫩模A∨私拍小视频| 欧美日韩婷婷中文| 欧美熟爽综合| 乱伦3P视频| 1区2区3区视频| 亚州色图欧美| 亚洲欧洲偷拍一区| 久草资源在线| 一牛一区二区三区久久| 99热精品在线观看| 999久久久免费精品国产牛牛| 精品人妻一区| 自拍大香蕉乱插| 狠色婷婷久久一区二区三区_| 一级啊性爱在线视频| 欧美极品| 欧美性高潮| 国产精品视频在线播放| 最新加勒比丝袜在线| 日韩在线观看字幕精品| 日韩成人在线性爱视频| 97亚洲精品| 黑人性暴力毛片| 日本一天色道久久久精品视频| 91狠狠综合久久久久久| 51一区二区三区| 国产免费黄色一级大片| 丰满人妻-区二区三区免费看| 性爱欧美五月| 熟女天天干| 久久本道| 偷拍伦理视频| 伊人成人中文字幕久久网| 玖玖玖玖精品国产剧情| 五月天精品| 欧美日本中字另类在线| 福利社区午夜一区二区| 极品销魂美女一区二区| 国产色产精品在线观看| 91久久久亚洲| 免费av在线播放二区| 92久久| 偷拍亚洲情色| 久久精品国产97欧美精品亚洲 | 午夜性刺激视频免费观看| 亚洲图片 欧美电影| 亚洲欧美日韩国产丝袜自拍中文| 欧美人妻中出| 999 久久久| 久草在| 久久久熟妇熟女国产| 青青草黑寡妇男人天堂| 一区| 欧美天堂第二区| 99蜜桃臀久久久欧美精品网站| 中文字幕版| 天天日日本| 综合干干干av久久久综合网| 91在线限制级| 无码男人天堂| 精品二区三四区五电影| 久久久78| 老女人综合网| 国产精品视频麻豆入口| 囯产操逼片| 99人人干| 99青草| 99国产在线绯色一区| 午夜福利久久久噜久噜久久综合 | 九久9精品| 人人妻人人澡人人爽人人精品浪潮| 亚洲狠| 大学生美女口爆| 91香蕉视频在线观看免费| 天天操夜夜操狠很操| 在线可观看的黄色网址| 超碰av在线| 麻豆 欧美 日韩| 欧美日韩精品国产91| 青青操视频在线| 亚洲综合色图欧美| 亚洲欧美国产中文视频| 国产一级操B视频| 99色| 欧美在线综合| 试看日韩黄片| 日本色色色视频| 麻豆人妻精品一区二区| 色老牛| 91性网| 97在线视频观看网站| a在线视频免费观看| 欧美|91色综合| 天堂亚洲精品久久老牛| 亚洲色图欧美| 精品v日韩欧美国产| 久久熟女人| 黄色一区三区| 久久精品福利影院| 嗯啊不要啊在线| 亚洲综合情色| 美女天天干| 玖玖婷婷五月天| 色盈盈影院| 国产嫩草精品A88AV| 大香蕉免费3| 色香蕉影院| 久久久久元码视频| 人妻熟女午夜精品在线| 丝袜av一区二区三区| 777超碰| 一区二区三区免费岛国片| 欧美日韩丝袜| 色老大| 超碰成人公开| 久久国99999| 亚洲综合首页| 操久久久久久| 超碰精品97| 探花在线免费观看视频国产一区| 国产福利夜| 超碰美女97| 色色色99| 人妻少妇精品久久久久久| 久久成人午夜精品影院| 久久神马影院| 性爱视频免费网址| 台湾佬中文娱乐自偷自拍| 老熟妇91| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 亚洲精品黑丝| 一级特级aaaa毛片免费观看 | 亚洲熟伦熟妇AV无码春色| 中文字幕老熟妇黄色视频| www.人人摸在线视频| 在线v中文字幕一区二区三区| 久久亚洲熟妇在线视频| 自拍视频一区在线观看| 欧美影音在线| 看黄片视频免费| 男人的天堂日本东京热| 日本高清有码网址视频| 精品国产乱码久久久久久久久久毛片| 亚洲综合九九| 亚洲深夜福利| 91久精品| 久久成人午夜精品影院 | 另类小色呦| 亚洲色欧| 99久久久无码| 午夜视频久久久久一区| 欧美A√综合网 | 伊人青青一区成人视频在线观看区| 中日韓欧美高清| 超碰亚洲97| 日本黄大片在线观看视频| 一区二区三区四区姦女| 在线观看成人性爱免费小视频| 亚洲无限观看| 99操| 操逼无码操逼| 国偷自 一区二区| 国产精品视频精品一二| 日本色日夜干| 日本男人插女人的逼黄色| 美国aaaaa一级黄片| 哈哈操 大香蕉| 荡小穴在线观看| 99老司机精品视频在线观看| 久久精品无码熟妇一区二区三区视频导航| 天天综合精品| 久操网视频| 一二三区视频在线观看| 99热精品青草在线| 操逼网免费无码视频| 麻豆成人影音在线| 亚洲精品1区| 色五月激情综合网| 欧美日产国产在线成人第一区| 人妻无码一区二区三区久久99| 日本九九久久99| 日本中文字幕在线视频 | 日韩精品区二区三区不卡| AⅤ片水多多| 2020天天色综合| 中文字幕一区二区三区人妻少妇在线 | 婷婷五月天av| 蜜桃视频成a人v在线| 九九热三级片| 超碰碰小说97| 青青草视频久久久久| 精品一二三区久久AAA片| 人人摸人人入| 亚洲天堂资源在线| 激情久久日韩精品中文字幕麻豆| 九九操久久国产免费视频| 天天干天天操天天拍| 久久‘黄片视频| 国产精品久久久久久久电影渣男| 91美女小视频| 人妻蜜桃臀| 久草男人天堂| 中文字幕88av在线| 极品丝袜无码| 激情五月天婷婷| 在线看片国产精品每日更新| 亚洲国产精品V?在线播放| 好涩综合| 蜜桃香蕉久草精品在线| 人妻丝袜肏逼| 久久久久久久久久精| 丝袜综合色图| 久久色一区| 日韩性色b| 激情五月婷婷| 欧美激情五月天| 国产 日韩 另类 视频一区爱| 俄罗斯一区二区视频在线观看 | 99999精品视频| 人妻丝袜无 码视频专区| 亚洲精品第一| 亚洲免费人妻在| 91在线精品| 国产区性爱在线视频秋霞豆| 一起草日韩| 一线黄色免费性爱片| 日日夜夜精品| 嫩草影院在线观看精品| 一区二区三区黄片免费观看| 日韩操逼HD| 久久首页| 国产成人免费观看在线视频| 激情综合网五月婷婷五月天| 中文字幕在线观看二区三区| 亚洲黄色影视| 久久国产精品一级二级三级| 少妇国产不卡| 午夜福利在线视频1000| 日本超碰色精品| 欧洲亚洲人人爽爽视频| 国产精品69久久久久久久| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 可以免费观看的av| 欧美人妻精品| 亚洲情色图片区| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 青青草色插素人| 亚洲性网| 无遮挡一级毛片视频免费的| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 久久精品亚洲东京热色播| 亚洲情色图片区| 色眯眯av| 色97干| 精品无码一区二区三区| 亚洲av综合色区无码一| 狠狠色丁香| 一道本东京热加勒比一区二区三区| 爱啪精品一区| 日天天九九天堂666| 97天堂| 强奸乱伦AV网站| 九九色图| 大香蕉欧美日韩| 久热精品在线| 性爱网站一区二区| 亚洲啪啪性视频| 国产欧美一区二区| 天操天操夜操夜月月年年操操| 好涩综合| 国产AV毛片| 中文高清一区二区的| 日韩欧美水蜜桃人妻| 精品人妻一区二区三区不卡断| 国产成人91一区二区三区| 国产熟女免费观看久久| AV色天香在线| 精品视频一区二区| 无码人妻精品一区二区中文| 日韩精品区二区三区不卡| 九九九九九九九九九九九九九九九女| 女优大全 - 91n| 精品久久久久av影院| 美女诱惑1区2区| 欧美第五页| 精品中文字幕第一页| 日本有码久久| 97在线公开视频| 草草影院最新网址| 亚洲人在线成线成人| 亚91网| 嫩草影院在线观看精品| 97精品视频免费| 9999久久久| 夜夜草网站| 国产后入内射| 性色生活片久久毛片婬片免费放女人一级毛片| 91oumei| 强乱老妇中文字幕| 亚洲性爱无码乱伦av| 超碰这里只有精品| av爱爱爱| 欧美色图亚州激情| 秋霞怕怕片| 亚洲色图久久精品蜜| 99re99在线视频| 国产又操| 久久大香蕉97| 日韩另类| 亚洲欧美骚| 亚洲色啪| 999999精品| 99精品网| 蜜臀久久99精品久久久久久| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 亚洲男人的天堂在线看| 高清国产性猛交xxxx乱大交| 久久有碼| 95自拍视频在线观看| 九九九九九九成人| 91午夜无码| 精品国产Av无码久久久伦古装| 天天日天天色| 久久78| 成人日本精品九区| 精品久久久久久中文字幕三区| 麻豆AV96熟妇人妻| ji熟女.com| 亚洲综合性网址| 国产AV无码AV| 夜夜夜爽www精品视频| 六月丁香婷| 精品九九九九| 精品亚州18| 国语对白在线播放视频| 五月天九九日国产精品一区二区三区| 日本片日本片祼观看网站在线看中文版网页在线看 | 超碰78| 日韩人妻无码精品系列| 午夜寂寞欧美| 丝袜AV一区二区三区| 狠狠久久四虎| 成年人黄色小视频网站| 一二三四区电影| 91n美女视频| 亚洲天堂中文字| 一卡二卡三卡| 日本青青草在线| 综合 欧美 亚洲 日本| 插插综合网天天影视网| 色一射色一射| 懂色AV蜜臀无码精品APP| 酒色综合网| 久久久久久中文版| 色色综合网站| 嫩呦国产一区二区三区AV| 精品一区二区2| 亚洲天堂另类小说男人| 国产树林里野战在线看| 91天天综合网| 少妇精品久久久八区九区| 亚洲av在线免费观看| 手机在线中文字幕国产| 蜜臀AV一区二区三区| 欧美性爱一区| 五月天激情国产综合婷婷婷| 6080YYY午夜理论片在线观看| 亚洲综合有码| 老熟女中文字幕高清| 91狠婷| 欧美顶级黄片AAAAA在线免费看 | 色老汉色| 亚洲综合小说另类图欧美视频激情小说色五月天 | 人妻铁牛TV| 四虎在线免费视频| 99re95| 男人天堂婷婷五月天校园春色| 在线a v| 午夜啪| 97天天| 亚欧美色图| 国产熟妇一区二区| 欧美亚州手机在线| 乱老女人一区二区视频| 综合五月婷婷亚洲一区| 女性喷水高潮在线观看| 精品九区| 老熟女综合网 | 自拍偷拍 日韩无码| 人人操人人干xxx| 亚洲高清综合网| 美女上床网站| 男人的天堂久久狠| 日本最新免费韩国1区2区视频播放| 久久久人体| 激情深爱五月天| 一区二区三区欧美激情| 欧美亚洲日本视频久久久| 另类TS人妖一区二区三区| 97爱| 日韩欧美性爱电影在线观看| 91成人无码| 国产精品一区二区密臀| 亚洲天在线| 干美女人妻| 日韩欧美天堂| 超碰 国产熟女精品一区| 91无摭挡| 少妇高潮喷水无套久久久久久| 亚洲污污网站| 男人成人黄色视频在线观看免费下载| 加勒比伊人综合| 九九九九九九九九九九精品视频| 天天躁日日躁狠狠躁| 欧美99999| 亚洲av青草久久一区二区| 午夜毛片亚洲精品片国产久久久| 人爽不卡视频| 91操操操操| 成人小说另类在线| 第四色奇米影视777| 国产99精品一区二区三区免费| 亚洲性爱电影| 亚洲第一黄色av网站| 亚洲精品中文字幕一区在线视频| 久久婷婷综合国际产色怕| 日韩一级片在线看| 青青草操逼逼视频| 高树玛利亚无码流出| 韩国三级三级BD在线| 黄资源| 国产中午字一暮区| 精品久9| 亚洲在线网站| 93人人操人人| 思思热在线观看| 国产精品乱人伊人网| 五十路二区在线| 超碰偷拍| 在线视频 亚洲精品| 草莓精品视频在线免费观看| 蜜乳性色无码专日粉嫩骚逼AV| 综合色色婷婷| 午夜天堂网| 欧美在线|亚洲| 亚洲综合九九| 黄片免费久久久久久久| 99热亚洲| 97一区二压| 欧美天天搞| 免费人成在线观看网站品爱网| 婷婷丁香五月天综合东京热| 免费观看有码高清视频| 美欧老女人97| 久久粉色| 国产精品一级毛片不卡视| 久久女人一区二区三区| www.男人天堂| 亚洲天天综合| 精品成人av一区二区三区在线| 手机av天堂久久久久| 婷婷九月国产| 欧美性爽xyxOOOO| 久久久久久AV无码免费网站| 日本丝袜美腿人妻九九| 在线洲亚线| 日逼视频日本| www老逼91| 我要色综合网站| 伦伦成年午夜免费视频| 91逼逼女人91| 一区二区三区一亚洲中文字幕、综合区灬 | 女人被添高潮免费视频| 性色av一区二区| 国产精品久久久久久久久久久久| 中日韩欧美精品无码AⅤ一区二区| 天天色悠悠激情| 亚洲不卡一| 国产中文大片资源中文字幕| 久久发布国产伦子伦精品| 日韩日韩日韩-国产乱码精品一区二区| 搡老女人911熟妇老熟女| 色综合久久888| 久久久精品视频欧州站| 国产日韩欧美中文在线播放| 久久天天性久久伊人| 九久久精| 亚洲福利中文字幕在线| 欧美在线视频观看一二三四区高清| 国产亚洲福利第一页丝袜| 欧美国产日韩清纯唯美| 日韩内| 久久久国产成人一区二区三区在线| 久久久久网站-538在线视频-欧美永久乱码 | 九月伊人中文字幕| 97人人干| 少妇的嫩逼图片| 天天躁日日躁AAAXX| 久久人妻一区二区三区高清| 国语国产操逼伊人AV网| 色娱乐色呦呦夜夜夜夜av| 国产在线能看的你懂的| 67194无码不卡| 不卡超碰护士AV在线免费播放| 超碰在线日韩一区| 自拍偷拍 日韩无码| 狠狠亚洲| 精品一区二区综合熟妇| 91精品国久久久久久无码| 亚洲精品国产无码高清| 人妻无码久久一区二区三区免费| 中文字幕美女91| 天天天乱色综合全| 国内精品a| 成人精品一区二区三区| 男人高清无码一区二区| 天美传媒av在线| 国产尤物AV尤物在线观看不卡 | 婷婷10月天青娱乐| 99日韩| 日韩综合97p| 91男女啊啊啊| 天天射天天| 精品九九淫乱男| 亚洲日韩国产欧美综合v| 啊啊啊啊,啊啊好多水| 狠狠干狠狠色| 极品国产内射| 久久人妇| 大香蕉520| 大象AV在线| 欧美日韩亚洲五月天婷婷| 欧美东京热精品A∨| 亚州综| 欧洲射精91| 黄色性爱网网| 福利视频网站| 好屌色综合| 五月天婷婷色色| 97无码视频在线播放| 不卡一区视频| 婷婷月色| 国产亚洲精品美女久久久| 丰满熟女人妻一区二区三五十一路| 日本99热| 国产一区二区三区视频在线看| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 97超碰免费生活| 能看的av| 免费的很黄很污的全部视频| 强乱老妇中文字幕| 亚洲妇色| www.久久爱| 国产成年精品高清在线观看91| 日韩无码服务区| 九九九九九九亚洲| 午夜福利免费精品视频| 激情文学88| 超碰欧美97资源| 任我爽视频在线观看| 黄片直播三级黄片两女一男| 思思久热在线精品66| 国产熟女自拍| 二对二中文字幕。| 天天爽天天爽| 九月丁香综合网| 国产亚洲精品一区二区三区| 久肏视频字幕| 97超视频在线观看| 97WW精品| www.99视频| 国精精品无码一二三区水多多| 日韩无码极品| 果冻传媒A片麻豆熟妇人妻| 亚洲性少妇| yirendaxiangjiashipin| 激情专区综合| 欧亚乱色熟女一区二区| 国产无马在线| 97超碰超碰| 九九热精品视频六| 亚洲精品国产熟女久久久| 超碰在线人妻不卡| 97精品国产97久久久久久户外免费| 在线观看国产黄色| 久久综合资源一区二区| 中国AAAAAA黄色片| 欧美天天干| 国产区在线| 男人天堂导航| 99色在线| 欧美淫乱视频| 日韩 女同 综合| AV丝袜东京热| 高清肉丝中文无码| 久久999久| 国厂麻豆77q4| 国产精品。| 精品国产99| 欧美曰韩国产精品| 欧美一区二区日韩传媒搭讪精品| 欧美淫穴| 无码99| 久久久久久久久久久久久久久性生活视频 | 免费看日产一区二区三区| 色哟哟511老熟女| 亚洲一欧洲中文字幕在线| 国产高清免费不卡av| 国产欧美精选自拍一区| 中文字幕一区二区三区高清| 大香蕉一区二区在线观看.| 波多野42部激情无码喷潮| 欧美大香蕉久| 亚洲一曲日韩精品| 国产精品激情久久久久久久| 377p欧洲日本亚洲大胆| 免费一级a毛片久久久久久鸭绿欲| 性无码专区2020| 熟妇xxxxx性春色| 五月婷婷丁香六月丁香| 26UUU欧美日本| 久96热在线观看视频| 波多野42部激情无码喷潮| 国产精品爱欲| 日韩不卡毛片Av免费高清| 精品国产肉丝袜在线拍国语| 久久香蕉网| juliaann精品熟女一区| 久久骚少妇| 国产乱不卡| 九久精品| 天天懆天天日| 国产情侣自拍在线播放| 国产刺激视频| 91九九九小逼| 超碰偷拍| 操一操摸一摸| 国产精品宅男免费| 五月香婷婷| 乱老熟女一区二区三区| 欧美淫乱视频| 日本一级特级毛片视频| 手机在线A片| 激情婷婷| 亚洲淫色网中文| 传媒在线观看一区二区三区| TS人妖另类精品视频系列| 精品人体无圣光凹凸| 91九九| 高潮综合网| 欧洲视频在线| 一级@啪啪视频| 五月香婷婷| 91欧美综合在线| 国产久久久久久| 国产精品激情久久久久久久| 五月丁香啪| 69久久久久久久久久久久久| 欧美天天综合在线| 熟妇的味道HD中文字幕| www.激情| 女上位精品在线| 12一15性XXXX粉嫩国产| www.人人cao| 色五月第四色| 少妇久久久久| 日本 欧美 国产一区| 午夜天堂精品久久| 啊啊啊啊好疼| 欧美大香蕉专区网| 色女综合| 2017天天插| 爆操无码| 97视频www| 日韩欧美性吧婷婷乱伦大香蕉| 久久久久久AⅤ无码免费肉站| 一区二区三区国产精产| 亚洲 欧美 手机在线观看| 女同亚洲欧美一二三区久久电影| 97国产精品久久久久| 超碰97人妻免费在线| 婷婷六月色| 日日玩天天干| 伊人网综合在线视频| 97久久精品亚洲中六字幕| 美女高潮国产高清| 九九无码视频| 超碰在97| 亚洲第一精品在线视频| 亚洲国产剧情少妇激情| 精品传媒在线一区| 99自拍视频在线观看| 后入式视频国产自| 日小BB小视频| 大香蕉十区| 国产精品白领在线观看| 性爱动态120秒| 操熟女91| 亚洲精品视频在线| 97操B| 亚洲av无码成人精品国产| 超碰综合97在线| 91丨熟女丨丰满熟女| 青青伊人久久| 美女写真| 91碰碰| 日本性爱少妇| 日韩无码服务区| 国产a级午夜毛片| 欧美精品不卡一二三四在线91| 综合欧美日韩在线观看| 91亚洲丝袜| 久久东京国产精品视频| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 97超碰色色| 91女人的网站| 在线播放成人高清免费视频| 75大香蕉| 国产中文精品一区二区在线观看| 亚码人妻| 亚洲一区二区性爱电影| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 操比国产| 日本熟妇人妻一区二区三区| 丁香五月激情综合| 熟女探花啪啪| 亚洲欧洲无码97久久精品| 青娱乐亚洲自拍| 美女天天干| 性站 | 中文字幕av久久爽Av| 一区二区三区亚洲| 肉丝中文无码高清| 婷婷丁香五月综合| 国产在线综合福利网站| 97超碰免费人人性爱| www网站黄| 久久精品久| 97超级欧美| 亚洲熟女中文字幕在线| 中日韓欧美高清| 日本97久久久精品| 久久久免费的精品| 久久久性爱| 超碰97色色| 九九综合久久| 日本成人在线不卡一区二区三区| 欧美72网页| 激情色色| 天天躁日日躁AAAAXXXX国产 | 天天日夜夜| se01国产在线视频| 亚洲色图欧美色18直播在线| 密臀在线免费观看| 97任你吞精| 乱伦日本中文自拍| 熟女91网| 快点操死我| 日韩性爱高清免费视频| 色哟哟 日韩精品| 超碰偷拍| 亚洲色性情三级| 日韩成人综合网| 日韩av不卡在线看| 久久国产乱子伦精品免费女,网站| 日逼五月天| 丁香激情五月| 91成人久久| a片久久久久久久久久久久 | 国产1024在线播放| 大茄子熟女AV导航| 97精品国产精品免费观看| 综合色图,成人综合网| 国产网站在线播放| 乱伦熟女专区| 美女91在线| 操婢日韩| 97人人草| 精品国产乱码久久久久久口爆网站| 啊啊啊免费| 久久熟女嫩草成人片免费| 夜夜嗷嗷一区二区| 欧美极品女人的天堂| 国模少妇一区二区三区| 中文字幕日韩精品久久| 日韩亚洲欧美中文字幕| 清纯唯美综合亚洲| 极品色电影院| 久久伊人青青草| 日韩丝袜人妻AV| 五月天综合在线| 在线观看国产黄色| 中文字幕日韩人妻视频一区二区三区| 久久大黄片| 中文字幕一区二区三区50路| 亚洲另类色综合网站| 97网址97| 亚熟hd视频在线| 97自拍一区| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 精品久久久久9999| 91色综| 婷婷中文字幕| 精品国产片亚洲一区| 国产剧情AV不卡在线观看| 熟女五十路一区二区三| ji熟女.com| 一级岛国大片| 欧美日韩大黄片| 亚洲av综合色区图片亚洲| 免费啪啪av| 亚洲欧美日韩免费电影| 亚洲图片激情综合另类| 日韩成人在线性爱视频| 伦激情人妻另类人妻| 日韩无码视频黄色| 懂色中文一区二区三区| 亚洲乱色熟女一区| 密乳AV免费观看| 操逼国产免费| 国精精品无码一二三区水多多| 93人人操人人| 国产精品久久成人免费| 人人看人人摸人人色| 久久久网站| 91亚·色| 亚洲精品 超碰| 欧美 亚洲 综合 制服 另类| 欧美最大综合网|