久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

STM32F103開發(fā)板從入門到實戰(zhàn):點燈、外設(shè)與避坑指南

STM32F103開發(fā)板從入門到實戰(zhàn):點燈、外設(shè)與避坑指南 STM32F103的開發(fā)板剛到手很多人都是這個狀態(tài)快遞拆開板子拿在手里翻來覆去看了幾遍數(shù)據(jù)線一插電腦“叮咚”一聲然后就沒有然后了。板子吃灰三個月再想起來的時候連Keil都打不開了。這個標(biāo)題——“stm32-103的開發(fā)板買回來了想學(xué)stm32的可以點個關(guān)注”——看著像是個新手報到帖但過來人都知道這恰恰是學(xué)習(xí)嵌入式最關(guān)鍵的一個節(jié)點。板子到手之后那一周干了什么基本決定了你是三個月后能自己寫驅(qū)動、調(diào)外設(shè)、做小項目還是把板子放在書架頂層落灰。這篇就當(dāng)是我陪你一起開箱把這板子從第一次通電到獨立做項目的完整路徑捋一遍。我盡量說人話該給代碼給代碼該講原理講原理該排坑排坑不搞云里霧里那一套。1. 為什么是F103一塊“老古董”憑什么還在被大家買STM32F103這塊芯片2007年問世到現(xiàn)在十幾年了。你要說它性能強那真算不上72MHz主頻64KB Flash20KB SRAM放在今天也就是個“中老年”水平。但你要是想學(xué)STM32在2025年買開發(fā)板F103依然是最合理的選擇之一。1.1 Cortex-M3的內(nèi)核底子STM32F103用的是ARM Cortex-M3內(nèi)核屬于經(jīng)典中的經(jīng)典。Cortex-M3是個什么概念它定義了中斷向量表怎么放、NVIC中斷控制器怎么工作、Thumb-2指令集怎么執(zhí)行、系統(tǒng)定時器SysTick長什么樣。這些底層機制在M3、M4、M7甚至后來的M33內(nèi)核上大同小異。你在F103上學(xué)到的中斷優(yōu)先級分組、SysTick延時、位帶操作、啟動文件里的向量表跳轉(zhuǎn)流程換到F407、H743上照樣成立只是外設(shè)寄存器和時鐘樹變了。這就像學(xué)開車用了一輛老捷達(dá)離合手感清晰、油門響應(yīng)直接開熟了換奔馳寶馬你缺的只是適應(yīng)過程而不是重新學(xué)一遍。換句話說F103把“芯片內(nèi)部是怎么跑起來”這件事暴露得足夠清楚沒有那么多自動化的隱藏邏輯特別適合用來建立嵌入式的地基認(rèn)知。1.2 生態(tài)和資料是真正的護(hù)城河F103真正無敵的地方不是性能是生態(tài)。你去搜“STM32 GPIO配置”打開十個網(wǎng)頁九個半是F103的例程去GitHub搜stm32f103相關(guān)的項目幾千個起步B站、CSDN、電子發(fā)燒友上關(guān)于F103的教程視頻和圖文多到你看不完。這個生態(tài)意味著什么意味著你在學(xué)習(xí)過程中遇到任何問題基本都有人踩過、問過、回答過。比如后面我講到的ILI9341讀ID讀到0xA1A1、CAN通信突然連不上、JTAG引腳被復(fù)用導(dǎo)致燒錄失敗這些坑全網(wǎng)都有大量討論你能找到幾十種排查思路。對新手來說資料密度就是最大的安全感。1.3 和其他開發(fā)板怎么選很多人買板子之前糾結(jié)F103、F407、ESP32、Arduino到底買哪個我直接說我的看法。板子主頻生態(tài)資料上手門檻適合目標(biāo)STM32F10372MHz海量中等打基礎(chǔ)、學(xué)底層、做畢設(shè)STM32F407168MHz多較難需要算力/攝像頭/DSPESP32240MHz雙核多低WiFi藍(lán)牙物聯(lián)網(wǎng)快速落地Arduino16MHz極多極低體驗編程、極速原型我的建議是如果你目標(biāo)明確要做物聯(lián)網(wǎng)產(chǎn)品直接ESP32沒毛病如果你想認(rèn)真理解嵌入式、以后吃這碗飯F103起步是最穩(wěn)的。而且F103開發(fā)板便宜50到80塊錢就能買到帶ST-Link的完整核心板燒壞了也不心疼。2. 從開箱到點亮第一顆LED環(huán)境搭建與時鐘系統(tǒng)很多新手第一步就卡住了卡住的點不是編程是環(huán)境。開發(fā)板到手第一件事不是寫代碼而是把工具鏈整明白。2.1 開箱先做三件事板子到手別急著上電先做三件事。第一認(rèn)清板載資源。看板子上有哪些東西ST-Link調(diào)試器、電源指示燈通常是紅色PWR、一個用戶LED大多在PC13藍(lán)色或紅色、兩個按鍵復(fù)位鍵和用戶鍵、USB轉(zhuǎn)串口芯片如CH340、BOOT0和BOOT1跳線或按鍵。把這些在板子上挨個找出來對照原理圖看一遍。第二確認(rèn)供電來源。F103核心板一般有兩種供電方式通過ST-Link的USB口供電或者通過板子上的5V/3.3V引腳外部供電。新手階段用USB供電即可但要注意如果你的板子是那種純核心板沒有板載ST-Link需要外接ST-Link調(diào)試器那就要確認(rèn)調(diào)試器是否給目標(biāo)板供電不然燒錄時會報“No target connected”。第三安裝驅(qū)動。如果是CH340 USB轉(zhuǎn)串口芯片Windows第一次插上會提示安裝驅(qū)動如果識別不了去WCH官網(wǎng)下最新的CH340驅(qū)動裝完以后在設(shè)備管理器里能看到COM口。2.2 Keil MDK與芯片包把編譯器伺候好寫STM32最常用的IDE是Keil MDK-ARM。安裝過程不展開細(xì)說核心幾步裝Keil我建議裝5.x版本兼容性最好、在Pack Installer里在線安裝STM32F1系列的Device Family Pack、新建工程時選擇對應(yīng)芯片型號STM32F103C8T6或RCT6。這里有個容易被忽略的坑只裝Keil不裝芯片支持包新建工程時器件列表是空的什么都選不了。很多人卡在這一步半天以為Keil裝壞了。Pack安裝完成后還要確認(rèn)魔術(shù)棒Options for Target里的Debug頁面選的是ST-Link Debugger而不是默認(rèn)的ULINKSettings里確認(rèn)SWD模式、接口速率然后點“Settings”能看到芯片ID才說明調(diào)試器連接正常。再說說代碼編輯器很多教程默認(rèn)用Keil自帶的編輯器代碼補全能力和VS Code比確實有差距但新手階段用Keil沒問題少折騰一項是一樣。想用VS Code寫STM32的話需要搭EIDE插件或者PlatformIO這個后面學(xué)習(xí)路線里再說現(xiàn)階段先別把自己繞進(jìn)去。2.3 新建工程的三條路標(biāo)準(zhǔn)庫、HAL庫還是寄存器新建工程你有三條路標(biāo)準(zhǔn)外設(shè)庫Standard Peripheral Library、HAL庫Hardware Abstraction LayerSTM32CubeMX、純寄存器操作。我的建議是這樣分的如果你想把底層搞明白用標(biāo)準(zhǔn)庫代碼里能看到GPIO_InitStructure、RCC_APB2PeriphClockCmd這種直白的結(jié)構(gòu)體配置每個函數(shù)后面都能追到寄存器層面如果你想要快速做產(chǎn)品原型、或者以后打算跨芯片復(fù)用代碼就上HAL庫CubeMX圖形化配置時鐘和引腳代碼自動生成。但記住一個核心原則不管用哪個庫芯片參考手冊RM0008針對F103必須放在手邊。庫只是把你和寄存器之間的操作包裝了一下最終寫的都是那些外設(shè)寄存器。你學(xué)會了標(biāo)準(zhǔn)庫配置GPIO的流程再看HAL庫代碼就會覺得它們只是“換了一層皮”底層邏輯完全一樣。標(biāo)準(zhǔn)庫新建工程的完整配置步驟老手都覺得煩要添加stm32f10x_conf.h、stm32f10x.h、啟動文件startup_stm32f10x_md.s中等容量C8T6選md、core_cm3.h還要在外設(shè)庫目錄里把需要的gpio、rcc等源文件加進(jìn)來C/C選項卡里定義USE_STDPERIPH_DEVICE和STM32F10X_MD勾選MicroLIB以支持后面的printf重定向。這幾步少一個編譯就報錯。零報錯配置文件我強烈建議直接抄現(xiàn)成模板。網(wǎng)上找到“STM32F103標(biāo)準(zhǔn)庫空白工程模板”下載下來先跑通編譯再自己照著搭一個比對著文檔敲效率高太多。2.4 時鐘系統(tǒng)點亮LED前你必須先懂RCC點燈代碼本身只有幾行但里面的門道很深。先看代碼#include stm32f10x.h #include stm32f10x_gpio.h #include stm32f10x_rcc.h void Delay(void) { for (uint32_t i 0; i 500000; i); } int main(void) { GPIO_InitTypeDef GPIO_InitStructure; // 打開GPIOC外設(shè)的時鐘 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); // 配置PC13為推挽輸出最高翻轉(zhuǎn)速度50MHz GPIO_InitStructure.GPIO_Pin GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz; GPIO_Init(GPIOC, GPIO_InitStructure); while (1) { GPIO_ResetBits(GPIOC, GPIO_Pin_13); // 拉低引腳LED點亮 Delay(); GPIO_SetBits(GPIOC, GPIO_Pin_13); // 拉高引腳LED熄滅 Delay(); } }注意里面有一行很多人不理解但極其重要的代碼RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);為什么點燈之前要“打開時鐘”因為STM32為了省電默認(rèn)情況下幾乎所有外設(shè)的時鐘都是關(guān)閉的。你往GPIO配置寄存器里寫數(shù)據(jù)如果對應(yīng)的外設(shè)時鐘門控還是關(guān)著的寫進(jìn)去的數(shù)據(jù)根本不會起作用。這個“時鐘門控”機制分布在AHB、APB1、APB2三根總線橋后面每根總線都有對應(yīng)的RCC外設(shè)時鐘使能寄存器。打個比方時鐘就像是整個芯片內(nèi)部各單位共用的節(jié)拍器。你要讓GPIOC這個單元開始工作必須先打開它的節(jié)拍器——這就是RCC_APB2PeriphClockCmd做的事情。GPIO在APB2總線上所以用APB2Periph的時鐘命令。ST官方系統(tǒng)啟動后默認(rèn)使用內(nèi)部8MHz RC振蕩器HSI所以哪怕你不配置外部晶振芯片也能跑只是主頻是8MHz而不是72MHz。真正的72MHz要通過外部8MHz晶振HSE經(jīng)過PLL鎖相環(huán)9倍頻得到8MHz × 9 72MHz。這條鏈路HSE8MHz→ PLLMUL×9→ PLLCLK72MHz→ AHB預(yù)分頻÷1→ APB1預(yù)分頻÷2得到36MHz→ APB2預(yù)分頻÷1得到72MHz。APB1上掛著USART2/3、SPI2/3、I2C1/2、定時器TIM2-7、看門狗這些外設(shè)最高36MHzAPB2上掛著GPIOA-E、USART1、SPI1、ADC、TIM1和TIM8最高72MHz。這個分頻關(guān)系在編寫串口波特率、定時器周期時非常關(guān)鍵后面你會無數(shù)次用到。系統(tǒng)時鐘初始化這一套標(biāo)準(zhǔn)庫默認(rèn)在SystemInit()函數(shù)里幫你做了它會自動檢測HSE并配置PLL到72MHz但作為學(xué)習(xí)者必須把這條鏈路背下來。因為當(dāng)你改用外部不同頻率的晶振或者以后用HAL庫時你會發(fā)現(xiàn)自己需要手動改PLL配置不懂時鐘樹的人就是一頓亂試。2.5 點燈代碼與“為什么燈不亮”的排查思路寫完了代碼、編譯通過、點擊下載結(jié)果燈不亮。怎么辦我見過太多新手卡在這里然后開始懷疑人生。排查思路應(yīng)該是線性的別跳步驟看電源指示燈亮不亮。不亮說明沒供電檢查USB線是不是數(shù)據(jù)線很多手機充電線不能傳數(shù)據(jù)檢查ST-Link是否供電??淳幾g下載提示是否提示成功。如果是“Error: Flash Download failed - Cortex-M3”說明芯片連接有問題或Flash鎖定先“Settings”里降速到1MHz再試或者檢查BOOT0跳線。程序下載成功但燈不亮先Debug看程序是否在main()里跑。如果停不下來/一直在SystemInit里循環(huán)多半是啟動文件配置不對選錯了md/ld/hd容量型號。檢查GPIO配置。板載LED是PC13還是PA1、PA2每個板子不一樣查原理圖。我前幾年買某家的板子LED在PB12照著網(wǎng)上通用的PA8例程抄燈當(dāng)然不亮。檢查LED點亮電平。如果LED接在3.3V和引腳之間灌電流方式引腳拉低才亮如果接在引腳和GND之間拉電流方式引腳拉高才亮。代碼里的GPIO_SetBits和GPIO_ResetBits要對調(diào)才行。這也是很多人明明程序“沒問題”燈卻反著亮的原因。上面這五步走完基本能解決99%的點燈問題。剩下的1%是硬件問題比如板子出廠時LED虛焊——那我就只能說恭喜你可以開始學(xué)焊接了。3. 會點燈只是開始外設(shè)實戰(zhàn)與那些繞不開的“疑難雜癥”點燈是STM32世界的“Hello World”但它只是熱身。真正拉開新手和老手差距的是對中斷、定時器、串口、I2C/SPI這些外設(shè)的理解深度。這里我挑幾個核心外設(shè)說一說它們背后的原理和常見坑。3.1 定時器PWM呼吸燈與輸入捕獲測頻率定時器是STM32里最常用也最好用的一類外設(shè)。F103里有TIM1-TIM8其中TIM1和TIM8是高級定時器TIM2/3/4是通用定時器TIM6和TIM7是基本定時器只能做定時沒有輸入捕獲和輸出比較通道。學(xué)習(xí)定時器我建議分三步走。第一步是定時的本質(zhì)。定時器的核心是一個計數(shù)器在時鐘脈沖驅(qū)動下遞增。當(dāng)計數(shù)值到達(dá)我們設(shè)置的自動重裝載值A(chǔ)RR時計數(shù)器歸零并產(chǎn)生更新事件/中斷。定時時長計算公式為定時時間 (ARR1) × (預(yù)分頻PSC1) / 定時器時鐘頻率。以TIM2掛在APB1上時鐘36MHz為例想讓定時器每1ms進(jìn)一次中斷設(shè)置PSC35999、ARR0這里換成36000-1和1000-1也可以多種組合都能得到1ms關(guān)鍵是理解預(yù)分頻把36MHz分到1kHz再數(shù)1000個數(shù)就是1ms。第二步是輸出PWM。PWM本質(zhì)上就是定時器的輸出比較功能計數(shù)器在ARR范圍內(nèi)循環(huán)計數(shù)輸出引腳在計數(shù)值小于比較值CCR時輸出一種電平大于比較值時輸出另一種電平從而形成占空比可調(diào)的方波。呼吸燈就是把CCR的值從0到ARR循環(huán)變化。舵機控制也是同理50Hz頻率、0.5ms到2.5ms的脈寬對應(yīng)0到180度角度。第三步是輸入捕獲測頻率。這個功能用來測量外部信號的頻率非常實用。原理很簡單定時器開啟輸入捕獲通道當(dāng)外部引腳檢測到上升沿時把當(dāng)前計數(shù)器的值鎖存到捕獲寄存器。兩次捕獲的計數(shù)器差值除以定時器時鐘頻率就是信號的周期再取倒數(shù)就是頻率。公式為頻率 定時器時鐘頻率 / (兩次捕獲值之差)。用這個方法讓F103可以測幾Hz到幾十kHz的信號具體上限取決于定時器位寬和預(yù)分頻配置超聲波測距的核心也在這HC-SR04超聲波模塊發(fā)一個10us的TTL脈沖然后回波引腳拉高測量距離高電平持續(xù)時間就是超聲波從發(fā)射到反射回來的時間距離 高電平時間 × 340m/s / 2。高電平時間的測量用的就是定時器輸入捕獲。這里必須提醒一句輸入捕獲測頻率時如果信號頻率很低兩次捕獲之間定時器會發(fā)生多次溢出更新事件你沒處理溢出計數(shù)的話計算出來的周期就會嚴(yán)重偏小。正確的做法是在定時器更新中斷里累加溢出次數(shù)計算時把溢出次數(shù)也考慮進(jìn)去得到完整的周期。這個細(xì)節(jié)很多教程不會主動講但實際測量低頻信號時100%會遇到。3.2 串口printf重定向與GBK/UTF-8編碼坑串口是STM32和外界溝通最廉價的方式。點燈只能告訴我們“程序在跑”而串口能把程序里的變量值、狀態(tài)信息發(fā)出來相當(dāng)于芯片在對你說話。串口配置流程開啟USART和GPIO時鐘、配置TX/RX引腳復(fù)用、設(shè)置波特率/數(shù)據(jù)位/停止位/校驗位、使能USART。波特率必須是雙方約定一致的值收發(fā)兩端不一致的話出來全是亂碼。常見的有9600、115200等115200對F103來說很輕松。串口最常用的技能是把printf重定向到USART。標(biāo)準(zhǔn)庫環(huán)境下你需要做兩件事勾選Keil魔術(shù)棒Target標(biāo)簽頁里的MicroLIB然后自己實現(xiàn)fputc函數(shù)int fputc(int ch, FILE *f) { USART_SendData(USART1, (uint8_t)ch); while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) RESET); return ch; }不勾MicroLIB的話標(biāo)準(zhǔn)C庫的printf會引起堆棧配置問題導(dǎo)致程序一進(jìn)printf就死機這是新手經(jīng)常碰到的的“串口打印就卡死”問題。還有一個非常實際的坑中文亂碼。代碼里寫printf(溫度%d, temp);串口助手上顯示“娓╁害”這種亂碼。原因不是串口配置而是編碼不匹配。Keil的源碼文件默認(rèn)是GB2312/GBK編碼而很多現(xiàn)代串口助手默認(rèn)用UTF-8解碼或者反過來。解決辦法有兩個一是源碼文件保存為UTF-8格式后再編譯注意如果使用中文注釋Keil舊版本會有中文注釋亂碼風(fēng)險二是在串口助手切換解碼方式為GBK。還有一個一勞永逸的辦法串口輸出的中文字符串統(tǒng)一先轉(zhuǎn)成UTF-8再發(fā)送這就涉及到字符串編碼轉(zhuǎn)換網(wǎng)上也有GBK轉(zhuǎn)UTF-8的現(xiàn)成C代碼可以直接抄。我的建議是如果只是調(diào)試用途串口輸出盡量用英文或拼音如果要做產(chǎn)品交互信息老老實實研究編碼轉(zhuǎn)換。3.3 SPI顯示屏的真實一課ILI9341讀ID為什么是0xA1A1ILI9341是2.4寸/2.8寸TFTLCD屏最常見的驅(qū)動芯片支持SPI和MCU并口兩種接口。很多人照著某教程初始化屏幕卡在第一步讀芯片ID怎么讀都讀出0xA1A1。這個0xA1A1太經(jīng)典了新版網(wǎng)絡(luò)熱詞都帶它。問題出在哪我復(fù)盤一下。先說正確流程。ILI9341讀ID需要發(fā)送命令0xD3而不是0x04然后連續(xù)讀4個字節(jié)數(shù)據(jù)。在SPI模式下你發(fā)的每個命令字節(jié)后面要跟一個“讀操作”的字節(jié)——這個字節(jié)的數(shù)據(jù)無效但時鐘必須有因為SPI是同步協(xié)議所有數(shù)據(jù)傳輸都需要時鐘。接著再讀兩個字節(jié)才是真實的ID一個0x93一個0x41合起來就是9341。很多新手直接調(diào)用讀函數(shù)發(fā)送0xD3后就期望下一次讀取返回0x93結(jié)果返回的是0xA1然后一臉茫然。這0xA1是哪來的0xA1通常是你上一條命令/數(shù)據(jù)的遺存或者是命令字節(jié)本身被回讀出來了。SPI接口的屏主控發(fā)送數(shù)據(jù)時MISO線上會同時返回數(shù)據(jù)當(dāng)芯片沒有主動輸出時MISO狀態(tài)取決于模塊設(shè)計很多模塊MISO上會有一個0xA1的高位垃圾數(shù)據(jù)。讀ID讀出來“A1A1”幾乎可以斷定是讀取時序錯了把命令字節(jié)或空閑字節(jié)當(dāng)成ID了。正確操作應(yīng)該是發(fā)送0xD3命令前先拉低CS片選發(fā)送命令后要發(fā)送一個假字節(jié)比如0x00產(chǎn)生時鐘同時讀取到的第一個字節(jié)丟棄繼續(xù)發(fā)送假字節(jié)讀到0x93再發(fā)第三個假字節(jié)讀到0x41。然后拉高CS結(jié)束。另一個常見原因是對復(fù)位時序不敏感。有些模塊上電后需要給RESET引腳一個低脈沖至少10us然后等待120ms才能初始化。如果復(fù)位時序不對屏幕狀態(tài)不確定ID也可能讀不對。最后還有一個非常隱蔽的坑SPI模式選擇。ILI9341模塊背面的電阻配置決定了SPI模式Mode1還是Mode3——CPOL和CPHA的組合。如果主控配置的SPI極性和相位和模塊不一致數(shù)據(jù)會錯位讀出來的ID自然是垃圾值。一般SPI模式0是CPOL0、CPHA0模式3是CPOL1、CPHA1都試一下就知道模塊到底工作在哪個模式。這個“讀ID是A1A1”的坑非常典型它把SPI時序、命令時序、復(fù)位時序三個知識點全考了一遍。你要是能獨立排查解決這個問題SPI協(xié)議你基本就掌握了。3.4 超聲波測距和步進(jìn)電機一個完整的傳感控制閉環(huán)學(xué)外設(shè)不能光學(xué)外設(shè)要串聯(lián)成一個系統(tǒng)。我常建議新手做的第一個組合項目是超聲波測距 OLED顯示 五線四相步進(jìn)電機跟隨。超聲波模塊HC-SR04發(fā)一個10us的Trig脈沖等待Echo高電平用定時器捕獲測得回波時間算出距離。把這個距離顯示在OLED或LCD屏上同時讓步進(jìn)電機根據(jù)距離轉(zhuǎn)動一定角度比如距離小于30cm就往回轉(zhuǎn)一點大于50cm就往前轉(zhuǎn)一點。這里會碰到一個新的驅(qū)動對象五線四相步進(jìn)電機最典型的是28BYJ-48配合ULN2003驅(qū)動板使用。這種步進(jìn)電機是四相八拍驅(qū)動的繞組通電順序決定轉(zhuǎn)動方向和步距角。核心代碼邏輯是定義一個換相表const uint8_t STEP_CODE[8] {0x01, 0x03, 0x02, 0x06, 0x04, 0x0C, 0x08, 0x09};對應(yīng)A-AB-B-BC-C-CD-D-DA八拍循環(huán)切換這八個狀態(tài)電機就持續(xù)轉(zhuǎn)起來。每切換一拍電機轉(zhuǎn)過一個最小步距角28BYJ-48的步距角是5.625°/64也就是說內(nèi)部經(jīng)過64倍減速后輸出軸轉(zhuǎn)動一圈需要2048個脈沖。新手容易在這里栽跟頭直接用GPIO翻轉(zhuǎn)來模擬脈沖發(fā)現(xiàn)電機轉(zhuǎn)一陣就發(fā)燙、還丟步。原因是28BYJ-48的額定轉(zhuǎn)速很低減速后每分鐘15轉(zhuǎn)左右換相太快會丟步甚至堵轉(zhuǎn)。給每次換相之間加個延時比如1ms速度就差不多了。想調(diào)速就調(diào)延時想控制轉(zhuǎn)角就計數(shù)脈沖數(shù)。這個項目的價值在于超聲波測距鍛煉定時器捕獲、OLED驅(qū)動鍛煉SPI/I2C、步進(jìn)電機鍛煉GPIO輸出和時序控制三個外設(shè)串在一起就是一個完整的“感知-決策-執(zhí)行”閉環(huán)以后做小車、做機械臂都是這套邏輯。4. 我踩過的幾個真坑排查鏈路完整復(fù)盤連著講三個經(jīng)典死機/連接問題把完整排查鏈路寫出來。這些問題我基本都親自踩過寫出來的都是血淚。4.1 延時函數(shù)delay卡死SysTick與編譯優(yōu)化現(xiàn)象程序燒錄成功燈亮了但一進(jìn)延時函數(shù)就死機或者整個程序卡在那里不走了。這個問題的本質(zhì)可能有好幾層必須一層層剝。第一層延時函數(shù)本身寫錯了。很多人第一次自己寫延時用的是for (i 0; i 500000; i);但i定義成了uint8_t最大值255循環(huán)條件永遠(yuǎn)不成立延時變成死循環(huán)。這不是卡死這是循環(huán)根本出不來。排查方法是看調(diào)試器里i變量的值或者直接把i定義成uint32_t。第二層SysTick中斷被錯誤配置了。標(biāo)準(zhǔn)庫的Delay()延時實現(xiàn)如果用了SysTick中斷方式而你在配置優(yōu)先級時把SysTick的搶占優(yōu)先級設(shè)得太高/太低或者沒有啟動SysTick中斷延時自然不可用。更常見的是在新版HAL庫里調(diào)用HAL_Delay()之前必須先調(diào)用HAL_Init()完成滴答定時器SysTick配置否則HAL_Delay進(jìn)到while (uwTick uwTickTarget)循環(huán)里永遠(yuǎn)出不來。第三層編譯器優(yōu)化導(dǎo)致延時循環(huán)被“優(yōu)化掉”。Keil在-O0和-O2下產(chǎn)生的代碼差別很大優(yōu)化級別高時一個沒有副作用的空循環(huán)會被編譯器直接省略掉于是“延時”沒了程序運行飛快、執(zhí)行邏輯混亂。解決方法是把循環(huán)變量聲明為volatile告訴編譯器這個變量不能優(yōu)化或者干脆用SysTick做延時不開空循環(huán)。第四層就是時鐘配置不對提到72MHz果然后SysTick的時鐘源或者重裝載值算錯延時時長和預(yù)期完全不一致現(xiàn)象表現(xiàn)為“延時不準(zhǔn)”嚴(yán)重時會讓外設(shè)邏輯崩掉比如I2C時序錯亂。排查鏈路的正確順序應(yīng)該是先判斷是“卡住”還是“沒執(zhí)行”——用調(diào)試器打斷點、看PC指針位置再檢查延時實現(xiàn)方式——空循環(huán)還是SysTick最后檢查編譯優(yōu)化。絕大多數(shù)卡死都是這個鏈路走出來的。4.2 禁用JTAG后板子“變磚”SWD保命法現(xiàn)象程序里使用了PB3、PB4、PA15這些引腳做普通GPIO代碼里調(diào)用了GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);禁用JTAG來釋放這幾個引腳。程序燒錄運行后突然發(fā)現(xiàn)自己用ST-Link連不上芯片了。這個坑非常經(jīng)典。F103的PA13、PA14是SWDPA15、PB3、PB4是JTAG。你禁用了JTAG確實釋放了PB3/PB4/PA15但如果不小心同時也影響了SWD引腳配置ST-Link就無法通信了——板子看起來就像變磚了。但別慌這板子幾乎不可能真磚。三種恢復(fù)辦法如果只是禁用了JTAGSWDPA13/PA14還沒被禁用那就直接用SWD模式燒錄——ST-Link默認(rèn)就是SWD模式通常沒問題。如果SWD也一起被關(guān)了按住板子上的復(fù)位鍵在Keil里點擊Download然后快速松開復(fù)位鍵讓芯片在復(fù)位期間被連接。趁芯片還沒來得及跑飛之前的幾毫秒擦除Flash。這招實測有效但手速要快。終極辦法STM32的BOOT0拉高后上電芯片從系統(tǒng)存儲器啟動程序不執(zhí)行Flash里的代碼。此時ST-Link可以正常連接把Flash擦掉然后把BOOT0跳線跳回低電平芯片就活了。如果還是連不上大概率你的ST-Link排線接觸不良檢查SWDIO、SWCLK、GND三根線的連接——順帶一提SWDIO和SWCLK在空板子上測量應(yīng)該能測到約1.8V的上拉電平?jīng)]有這個電平就說明調(diào)試器沒連好。4.3 CAN通信突然連不上終端電阻與波特率之謎現(xiàn)象兩塊F103開發(fā)板用CAN收發(fā)器如TJA1050對接上午還能正常通信下午突然連不上了。程序沒改過接線也沒動過。新手遇到這個第一反應(yīng)是代碼bug但其實硬件層面的嫌疑最大。CAN總線是差分信號要求總線兩端都必須接120歐姆終端電阻用于匹配阻抗、消除反射。很多新手兩塊板子都沒接終端電阻或者只接一端短距離低速通信比如波特率125kbps線長幾十厘米可能沒問題一旦線長超過幾米或者波特率提高反射信號會直接干掉整個通信。排查順序先量CAN_H和CAN_L之間的靜態(tài)電壓正常應(yīng)該約2.5V隱性顯性時CAN_H比CAN_L高至少2V。如果電壓異?;驗?說明收發(fā)器供電問題或總線短路。檢查終端電阻萬用表量CAN_H-CAN_L之間沒接電阻時阻值很高接了正確終端電阻時應(yīng)該在60歐姆左右兩塊板各120歐姆并聯(lián)。波特率匹配F103的CAN外設(shè)時鐘是APB136MHz波特率通過“預(yù)分頻時間段”配置。如果兩端用相同的波特率配置代碼但一個板子晶振有偏差標(biāo)稱8MHz實際8.1MHz兩個節(jié)點的階段采樣點就會錯位高波特率下必現(xiàn)偶發(fā)斷連。處理方式是降低波特率或者用CAN分析儀抓波形核對位時間。最后再看代碼異常處理里有沒有處理CAN_ESR寄存器的Bus-Off位總線關(guān)閉后CAN控制器會退出總線不再參與通信需要在錯誤中斷里做恢復(fù)。CAN通信這類工業(yè)總線問題的排查核心原則就是先物理層、再數(shù)據(jù)鏈路層、最后才應(yīng)用層。別一上來就懷疑代碼。4.4 五個會讓新手當(dāng)場崩潰的“祖?zhèn)鲉栴}”最后再列五個我見過的高頻崩潰現(xiàn)場給個速查表現(xiàn)象大概率原因解決辦法下載報錯No Target ConnectedSWD線接反/接觸不良、目標(biāo)板沒供電檢查三根線降下載速率按住復(fù)位鍵下載Flash Download failedFlash讀保護(hù)、芯片鎖定BOOT0拉高上電后全片擦除程序能跑但外設(shè)沒反應(yīng)外設(shè)時鐘沒開、引腳復(fù)用不對檢查RCC使能檢查AFIO重映射液晶屏幕花屏電源不穩(wěn)、SPI速率太高、復(fù)位時序不對單獨供電降低SPI分頻到18MHz以下復(fù)位后延時120ms引腳輸出電平異常引腳被JTAG/SWD占用、復(fù)用沖突禁用JTAG檢查PA13/PA14不能當(dāng)普通IO“芯片第一腳怎么確認(rèn)”這個熱搜詞也經(jīng)常和這些混淆在一起。芯片LQFP封裝一般在第一腳附近會有圓點/斜切角標(biāo)記圖中左上角有絲印白點或者芯片一角被切掉那一腳就是第一腳。PCB原理圖上通常也有標(biāo)注不確認(rèn)前千萬別硬懟電源正負(fù)極——STM32F103耐壓5V但很多核心板上的3.3V引腳懟5V進(jìn)去會直接冒煙燒一片。5. 買開發(fā)板之后的三個月一份可照抄的學(xué)習(xí)路線最后來說說從買到入門這三個月怎么安排。很多人覺得自己“學(xué)不會STM32”其實不是因為笨是因為不知道學(xué)完GPIO之后該學(xué)什么沒有路線圖東一榔頭西一棒子最后放棄。5.1 第一周別急著寫代碼先建立“引腳感”這一周的目標(biāo)不是寫多少代碼而是把板子“摸熟”??丛韴D搞清楚每個引腳的功能跑通點燈、跑通按鍵控制LED找一本講STM32的書或者一份完整教程把GPIO的四種輸入模式浮空、上拉、下拉、模擬和兩種輸出模式推挽、開漏弄明白。開漏輸出為什么需要外接上拉電阻推挽輸出為什么能直接驅(qū)動LED這些概念一周時間建立起來后面的路會順很多。5.2 第2-4周六大外設(shè)逐個過按這個順序來外部中斷EXTI、定時器TIM定時中斷、PWM輸出、輸入捕獲、USART串口收發(fā)、printf重定向、ADC讀電位器電壓、DMA串口收發(fā)不占CPU、I2C和SPI驅(qū)動OLED/Flash/傳感器。每個外設(shè)都要經(jīng)歷“看例程→抄例程→改例程→自己從空白工程寫一遍”的過程。抄一遍永遠(yuǎn)只是會“跑代碼”自己寫一遍才是會“配外設(shè)”。外設(shè)這關(guān)過了STM32的80%就學(xué)了。5.3 第5-8周第一個小型項目別再做“流水燈”了做一個有實際意義的小東西。我的推薦清單超聲波測距OLED顯示屏做成一個便攜測距儀DHT11溫濕度傳感器OLED串口打印做一個環(huán)境監(jiān)測器步進(jìn)電機紅外遙控做一個自動窗簾模型紅外遙控需要學(xué)習(xí)NEC協(xié)議解碼也是個好東西如果對物聯(lián)網(wǎng)感興趣ESP8266/ESP01通過串口AT指令連接巴法云這類免費MQTT云平臺把傳感器數(shù)據(jù)傳到云端再用手機看——這一套做完你就打通了“設(shè)備端-云端-應(yīng)用端”的完整鏈路。做項目的時候我強烈建議用一個“需求拆解”的方法把最終功能拆成多個模塊每個模塊單獨調(diào)通再拼接。比如測距儀拆成“超聲波測距模塊→OLED顯示模塊→主邏輯模塊”每個模塊先在main函數(shù)里單獨測試最后合并。千萬不要一次性寫完一坨600行代碼然后指望它一次跑通——那是在折磨自己。5.4 第9-12周往“產(chǎn)品級”靠攏學(xué)到這里你對F103已經(jīng)比較熟了。這時候可以有兩條進(jìn)階路。一條是底層方向開始看寄存器手冊把之前用庫函數(shù)配置過的寄存器手動寫一遍比如直接操作GPIOx-CRL和CRH寄存器配置引腳模式理解庫函數(shù)的本質(zhì)其實就是給這些寄存器賦值。然后研究啟動文件startup_stm32f10x_md.s理解上電后是怎么進(jìn)入main函數(shù)的中斷向量表到底是什么。另一條是系統(tǒng)方向引入FreeRTOS操作系統(tǒng)把前面的點燈、串口、按鍵放到不同的任務(wù)里學(xué)習(xí)任務(wù)調(diào)度、信號量、消息隊列。用F103跑FreeRTOS綽綽有余以后做復(fù)雜項目也不至于面對裸機狀態(tài)的很多問題束手無策這是從“玩單片機”到“做嵌入式系統(tǒng)”的關(guān)鍵一步。同時工具鏈也可以趁這段時間升級一下嘗試用VS Code加EIDE/PlatformIO搭建STM32開發(fā)環(huán)境git做版本管理。新手階段用Keil沒問題但以后工作大概率不用Keil早熟悉現(xiàn)代工具鏈沒有壞處。開發(fā)板并不是只能配Keil用PlatformIO管理F103工程也很方便。最后的幾句大實話板子買回來那天熱血上頭的樣子我記得很清楚。我那塊F103核心板到現(xiàn)在還在抽屜里偶爾拿來驗證個新點子依然順手。以我?guī)氯说慕?jīng)驗學(xué)STM32這件事最大的坎從來不是技術(shù)難度而是“卡住了沒人告訴你怎么走”。這篇里寫的每一個坑——從點燈不亮、串口亂碼、ILI9341讀ID、延時卡死、JTAG禁用變磚到CAN掉線——你大概率在接下來三個月里至少碰到兩三個。真遇到了回來對著排查鏈路一步步走大多能走出來。我的建議是別貪多一個外設(shè)一個外設(shè)過一個項目一個項目做。F103這塊板子能教給你的東西比你想的多得多。動起來今天就把環(huán)境搭好先讓LED閃起來再說。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
婷婷五月天综合网| www.久久爱| 99热最新网址| 黄片www视频免费| 懂色av色欲av蜜臀av| 一区二区 电影 亚洲| 看全色黄大色大片免费视频| 精品一国2| 99久久综合网| 黄视频免费| 道久久五香丁月婷婷激情综合| 国产日韩欧美中文在线播放 | 久久久四区| 嗯啊不要啊在线| 操一操摸一摸| 欧美少妇色图| 日韩久久艹| 无码视频黄色网战| 欧美A片中文字幕| 欧亚日韩中文在线| 91在线/欧洲| 国产亚洲精品第一最新| 中国AAAAAA黄色片| 日本一区二区三区四区五区六区七区八区九区| 熟女露脸激情自拍视频| 亚洲综合网电影91| 91精品人| 精品午夜福利| 中文字幕乱码在线| 国产400孕妇孕交群| 亚洲影视第一页| 又大又长又爽| 亚洲激情AV| 天天色播| 91精品丝袜久久久久久| 五月天婷精品激情| 国产AV天美传媒一区二区三区 | 亚洲三级网址久久最新| 激情图片亚洲色图| 日本三级精品| 一区二区三区黄色片a| 日本阿v天堂在线观看| 国产蜜臀精品一区二区尤物| 中文字幕制服欧美久久一区| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 国产99999| 九七超碰| 97国产精品一区二区传媒公司| 天天天天做夜夜夜夜做| 国产精品丝袜久久亚洲不卡| 欧美性天天影院| 天天综合影院91| 日韩99神马视频播放| 亚洲。日韩。欧美| 国产原创精品| 黄资源| 91色五月俺来也| 国产精品天干天干综合网麻豆| 97国伦国色| 久久综合女优| 91高清欧美| 试看60秒 爽| av亚欧| 国产日韩欧美中文在线播放| 狠狠操狠狠插| 东京热不卡视频| 人妻蜜桃臀| 国产精品乱码久久久久久久| 久久久久网站-538在线视频-欧美永久乱码 | 亚洲,欧美,春色,另类| 精品乱子一区二区三区99| 欧美精品91| 亚洲综合一| 91人妻熟女| 搡老熟女免费视频| 色噜噜人妻丝袜a∨先锋影| 无码99| 人妻天天夜夜爽一区二区| 红桃视频高潮| 亚洲高清自拍| 亚洲精品中文字幕一区在线视频| 亚洲男人天堂网久久| 欧美有码亚洲中文字幕一区二区三区四区| 亚洲AV不卡在线观看| 一区在线精品中文字幕| 粉嫩av在线一区二区| 亚洲有码 欧美精品| 99re在线视频国产| 91夜色| 一区二区三区 日韩欧美| 亚洲无码一二三区| 久久综合九九| 蜜区区视频79| 成人蜜乳小视频网站| 国产v片在线免费观看| 911粉嫩人妻| 婷婷五月天无码| 老熟女91视频| 激情四射婷婷四五月天| 99国产精品久久久在线播放| CCYY草草影院地址入口| 久久精品国产亚洲AV高级北京| 中文字幕黑人大片| 一卡二卡三卡| 久久草在线综合视频| 日韩三级一区 | 午夜福利免费精品视频| 丰满人妻-区二区三区免费| 日韩美女高潮喷水视频| 亚洲春色欧美激情自拍| 欧美久久婷| 精吧天堂| 操逼操逼逼操操逼91 | 97在线免费看视频| 先锋精品av色鲁| 精品久久久一本一道| 大色综合| 久久99久久99久久99人受| 在线五区| 青青草操逼逼视频| a片久久久久久久久久久久 | 女人18精品一区二区三区| 热99re69精品8在线播放| 凸凹视频在线观看| 竹菊一区二区三区AV线| 五月天婷婷基地| 夜夜欧美| 人人摸人人叼| 黑人在线91| 欧美另类精品xxxx| 日韩成人午夜精品久久高潮| 国产一区二区在线播放量| 日本高清久久| 狠狠久久手机视频精品| 国产一区二区三区久久精品太古里| 日韩av免费一级电影| 欧美中字二区| 国产乱伦亚洲色图高清无码| 久久久国产精品人妻丝袜| 粉嫩国产精品久久粉嫩| 天堂v无码免费视频| 欧美不卡二区| 精品九九淫乱男| 欧美精品1区2区3区| 四虎影视欧美| 91性高| 人人插人人摸人人| 97超碰超| 99爱视频| 大色综合网| 96国产精品| 亚洲天堂另类小说男人| 亚洲AV无码国产精品久久久久| 超碰在线成人电影| 青青操少妇| 搡老熟女老女人老熟妇免费视频| 久 久无码人妻AV| 青青草日本中文字幕 | 欧成人精品一区二区三区| 久久久99久9| 国语精品内射在线观看| V A在线| 青青草导航在线视频| 青青草在线视频人人想人人上| 天天操人人操狠狠插| 任我爽视频在线观看| 尤物网址| 男女啊啊啊啊啊| 欧美在线大香蕉| 色噜噜狠狠色综无码久久合欧美| 国产一区免费午夜视频| 狠日欧美| 9九九国产| 青青草视频在线观看一区二区| 国产精品免费视频人成| 日韩操逼HD| 五十路一区无码| 亚洲自拍欧美色综合| 日韩精品啪啪啪| 神马久久久久久久久久| 91丝袜美女| 国产一区二区视频在线播放| 911av网站免费观看| J?P?NESEHD熟女熟妇伦| 亚洲图片欧美色| 亚洲欧美内射| 久久精品日韩专区免费观看| 色哟哟1区2区| 国产天天看| 嗯嗯啊啊操死我| 久久九九网| 亚欧高清在线| 天天天天天天天天天天干美女| 国产丝袜欧美在线视频| 天天日骚逼熟女| 天天内射| 激情小说亚洲视频| 啊啊在线| 亚洲欧美伦综合| 日日日日做夜夜夜夜做无码97| 日本一天色道久久久精品视频| 青青青操| 欧美天天谢综合网| 91av天美性媒精品视频| 丁香五月天久久精品视频一区二区三区| www.婷婷| 精品国产乱码久久久久久影片| 国产精品日日摸天天碰| 久久蜜桃一区二区| 国产精品白丝| 国产精品久久久久久亚洲色欲| 免费国产视频| 久久精品国产Aⅴ| 亚洲av成人精品一区| 天天伊人| 国产日韩在线播放av| 日本一区视频在线观看| 秋霞一级视频在线观看免费| 亚洲另类电影| 口爆综合网| 欧美老熟另类| 亚洲少妇在线影音| 日本欧美m v精品网站加| 国产第二页| 福利天天都操| 最新日本中文字幕| 粉嫩粉嫩一区性色AV片| 亚 欧 美 综合| 91亚洲不卡一区| 欧美精品双插| 亚州欧美在线| 翔田千里无码一区| 无码在线亚洲| 欧美亚洲性爱一区二区| 经典丝袜一区| 欧美91变态| 精品久久久久久AV无码| 亚洲综合成人网| 亚洲城人男人的天堂| 亚洲第一页欧美| 一本色道久久综合亚洲二区三区| 日韩一级欧美一级国产一级台湾 | 欧美亚洲性爱一区二区| 色网在线| 日本性感人妻91| 日本三级一区二区 在线| 日本视频在线观看污污污| 久久激情网| 久久久久久久久久久久久久9999| 天天热精品| 精品午夜福利| 97香蕉碰碰人妻国产欧美| 91狠| 色爱天堂| 视频国产精品未满十八禁止在线观看| 久久这里都是精品| 自拍第一页| 91久久免费视频互動交流 | 色亚洲欧美| 自拍偷拍第26| 狠狠五月天| 1204金沙人妻懂旧版免费| 91男人综合| 性暴力欧美猛交在线直播| 国产成人精品亚洲日本| 国内操逼视频二区| 69一区二区三区| 日韩AV一起草| 青青草久草AV| 九九精品无码专区免费| 中文字幕老熟妇黄色视频| 天美传媒av在线| 色在线综合| 一本一道人妻久久一区二区三区 | 中文字幕在线观| 亚洲无码AV九九九| 国产AV人人夜夜澡人人爽麻豆| 久久的免费性爱视频| 婷婷久久五月天| 亚洲老司机123专区| 100啪啪视频大全| 美女黄页| 免费家庭乱伦视频| 亚洲A色| 97超碰中文在线| 凹凸视频特色日本特黄| 天天搞欧美| 温婉少妇玩3p| 9ⅰ久久久天天| 国产亚洲中文不卡二区| 久久9精品网站| 密乳AV免费观看| 歐美一級亂黃99在綫精品| 婷婷五月天激情四射| 亚洲天堂久久| 少妇久久久久| 九九十八精品| 天天操天天干一区二区| 97bbn| 少妇人妻太紧太深av| 日韩精品人妻中文字幕久久久| 亚洲人成网站7777| 国产青青美女玩逼视频| 操逼啊啊啊91| 久久婷婷一区| 欧美精品在线观看| 欧美黄片免费在线观看视频| 亚洲国产无码精品首页久久久| 美女骚尻视频| 发朗少妇买婬全视频中文| 好吊色综合| 久久蜜桃综合网| 精品国产无码中文| 日韩射图| 日本天天人人狠狠在线日美女 | 亚洲人在线| 一本精品日本在线视频精品| 国产欧美后入| 97国产精品国| 中文字幕一二区二三区人妻专区| 四季av一区二区凹凸精品小说| 美日韩成人| 国产一国产一级毛片古装| 99热精品青草在线| 黄片免费看黄片免费看| 欧美日韩精品久久久久久久久东北老熟妇| 日韩丝袜人妻AV| 新久久AV| 亚洲色图 欧美| 色 亚洲 91| 丁香五月婷婷啪啪| 午夜视频久久久久一区| 婷婷丁香人妻 | 精品人妻久久久| 夜夜夜久久| 久久久久久国产手机AV| 中文字幕国产在线天堂| 啊啊啊在线看| 97爱欧美| 日本三级中国三级99人妇网站| 国内毛片热久久思思热| 尤物视频偷拍免费| 久久一二三四不卡 | 国产三级日产三级韩国三级| 97aiaiai| 肥佬影院91| 亚洲天天影视综合网| 任你草| 中文字幕奈奈美被公侵犯| 91色夜| 久久久久78| 亚洲精品色| 国产69精品久久久久99尤物| 日韩在线观看三级电影| 黄色工厂这里只有精品| 人人澡人人澡人人| 亚洲污污网站| 亚洲丝袜天堂| 欧洲Au麻豆| 99在线免费观看| 操逼视频亚洲| 浪人综合网| 国产福利一区二| 中出欧美| 校园激情狠狠四射| 九九热精品视频六| 日本国产二线女色| 久久视频,这里只有精品 | 九九成人| 91操碰| 欧美熟妇精品黑人巨大91| 91N五十路| 中文字幕久久婷婷丁香五月天| 久草男人天堂| 人人爽夜夜操| 97天天做| 欧美情色贴图| 东京热av男人的天堂| 女优视频第10页| 婷婷色婷婷| 亚洲操人| 超碰av在线| 91精品丝袜久久久久久| av九九| 五月激情影院| 欧州色图区| 亚码激情| 欧美视频第二页| 久超超碰| 99色婷婷中文字幕乱色| 精品176精品2| 粉嫩久久久极品| 欧亚韩国999| 91丝袜人妻| 哈哈操电影| 夜夜嗨视频| 国产精品国产精品国产| 日本孕妇一区二区视频操逼免费看| 思思热一热婷婷热一热| 啪一啪免费视频| 中文字幕中文字幕一区二区| 天天做日日做天天欢。| 久久性爱大全| 亚洲男人天堂Av| 人人澡人人爽人人精品| 神马久久69| 超碰导航97| 国产无码久久高清| 玖玖爱免费观看视频| 国产一区二区啪啪视频| 91蜜臀熟女| 欧美色一二三| 色区97| 国产高清视频无码在线| 无码av永久免费专区网站| 日韩性爱播放| 熟妇熟女亚洲天堂网| 欧美熟妇视频| 中文欧丝袜诱惑| 狠狠躁伊人中文字幕| 久久丁香久草综合网| 风流老熟女一区二区三区l| 五月婷婷无码| 四虎免费视频| 久久超碰国产一区二区三区| 最新欧洲欧美日本激情网站| 懂色av色欲av蜜臀av| 另类视频在线| 亚州91| 艳尻美人妻| 欧美强奸一区二区诱惑| 中文字暮97| 国内偷拍精品一区二区| 熟女突然公开看18禁影片| 久久激情视频| 日韩熟女精一区二区三区不卡| 日韩精品一区二区三区色欲| 躁躁日曰躁2020| 强乱老妇中文字幕| 中国乱伦一区二区| 亚洲 欧美 小说| 欧美性爱超碰97| 夜色AV无码手机在线影院| 在线天堂999| 九九九九精品视频| 婷婷操逼| 91老熟女91老女人| 久久国产免费激情视频| 夜夜操91744565| 久久日韩肥臀| 日本片日本片祼观看网站在线看中文版网页在线看| 校园春色亚洲无码| 日本十八禁免费看污网站| 日本黄色XXX| 99re国产精品视频| 久久精品视| 激情另类激情| 91操人| 亚洲天堂人人妻| 日本不卡一二区| 国产成人在线观看综合| 欧美精品不卡一二三四在线91| 七月丁香婷婷| 日韩精品在线放| 美女黄色一级A视频| 中国熟妇| 欧美亚洲丝袜人妻制服99| 久久99九九九九6666免费观看软件| 国产 v乱码一区二| 欧美线天码中字| 欧美在线观看综合国产| 久草电影网| 97干天天| 国产福利影视| 天天欧美色| 78久久| 久久麻豆一区二区| 黄色大片视频在线免费看| 天美AV片| 成人av影院在线观看| 9999亚洲电影| 五月天婷精品激情| www欧美91| 啊啊啊啊啊啊在线看| 亚洲爽图| 国产精品ww久久| 91扒丝袜综合在线| 强奸乱伦大香蕉| 亚洲偷91色| 激情看片网站| 97在线免费| 久久久久久久国产| 九九黄色网| 亚洲人妻在线精品| 亚洲色悠悠久久88| 91久久婷婷| 精品久久久av无码免费| 91无码人妻| 香蕉婷婷| 日韩欧美午夜一区二区| 九九超碰综合网| 婷婷日韩一区二区三区中文字幕在线| 亚洲日韩视频二区| 天堂亚洲精品| 九九九九九九成人| 五月婷在线| 亚洲精品国产无码高清| 91欧美少妇| 97一区二区蜜臀| 97人人操人人摸| 97超碰色色| 精品无码久久久久| 久久久久久久极品香蕉视频| 欧美成人A天堂片在线观看| 欧美日韩中国x| 97色在线观看| 国产日本久久免费精品| 在线观看一级α片刺激高潮视频| 99热在线只有精品| 9999亚洲电影| 国产suv精品一区二区四| 免费αⅴ在线观看| 色吧 综合| 青青草在线视频美女| 天天看人人操屄犊摸阴| 麻豆人妻精品一区二区| 久久精品高清AV| 亚洲精品国产精品成人| 亚洲黄色| 欧洲自拍第一页| 丰满精品人妻少妇久久字幕| 999狠狠综合| 超碰在线免费一区二区三区| 欧美情色贴图| 另类av天堂| 花野真衣| 欧美日韩国产中文超碰| 六月婷婷综合| 欧亚在线视频| 在线中文字幕极品av| 国产精品久久久久久高清无码免费看 | 爽爽淫人网| 国产免费永久精品无码| 秋霞蝌科网日本一区| AV天堂国产| 玖玖爱在线视频免费观看| 啊啊啊啊啊在线| 九九九九九精品视频| 婷婷10月天青娱乐| 啊啊啊水好多| 97超级久久| 安微少妇操BBB| 成人一级二级| 97超碰色中文字幕| 91亚洲黄色网| 欧美春色| 亚洲精品九九九| 久久春色| 久久成年片色大黄全免费网站| 亚洲日韩美女丝袜美腿人妻视频| 丰满人妻一区二区三区免费 | 蜜乳AV一区二区三区四| 93人人操人人| 国产一区二区在线电影| 欧美婷婷| 91青视频| 日韩丝袜高跟制服在线观看| 青娱乐手机日韩在线视频| se,,,亚洲欧美| 97操综合| 中文字幕乱亚洲美女精品一区| 日韩三级一区| 久久发布国产伦子伦精品| 男人天堂站| 免费看一级a性色生活片久久无| 天天日日舔舔| 欧美超碰96| 麻豆伊人网| 日韩精品一区,二区 九九...老司机| 蜜臀无码一区二区| 无马一区二区| 一级婬片120分钟试看| 91精品微拍福利| 免费看A片毛毛片在线播| 色官网在线| 3571色综合一区二区二区| 成人无码专区精品视频| 亚洲污污网站| 色香av| 亚洲人妻中文在线视频| 欧美性爱一级操| 伊人AAA| 狠狠色一区二区中文字幕| 老司机福利社视频在线观看| 三久久久四久久久久| 欧美黄色片在线播放| 一区二区娱乐网站| 色第一页| 欧洲综合色| 亚洲自拍天堂| 一区二区你上我| 久久亚码| 欧美精品三区| 免费看日本操逼视频| 蜜臀亚洲中文| 日韩久射综合| 一牛影视成人片免费| 五月天丁香| 91色堂| 日本性爱视频一级| 91狠狠色丁香婷婷综合久久| 夜夜骑天天燥| 大肥女高潮bbwbbwhd视频| 岛国艾薇凹凸视频天堂| 少妇同性| 懂色aV一区二区天美传媒| av天堂5| 2017大香蕉国产精品久久| 日本99热| 九七毛片九九毛片| 国产精品直播在线观看直播| 99热精品在线观看| 九九九九九九九| 国产成人无码a| 77777亚洲蜜臀精品久久综合蜜臀| 亚洲另类色综合网站| www亚洲免费| 亚洲一二三四区机械| 淫荡网址| 精品久久視頻在线| 东京热综合久久一区二区| 久久精品国产72国产精品福利| 超碰人妻中文在线| 国产第12页| 少妇天堂网络| 亚欧高清| 一区二区精品更新提醒| 国产强奸无码乱伦| 国产原创精品| 日本一级真人黄色性爱视频| 久久久精品日本一道| 2017天天插| 小泽玛利亚一二三| 青青草中文字幕| 亚洲图片欧美91N| 外站AV在线| 欧美黑人猛交春色影视大全| 国产强奸无码乱伦| 亚洲中文字幕乱码无码一区二区| av网站在线看| 日日骚 av| 国产成年女人免费视频播放a| 青青操少妇| 熟妇xxxxx性春色| 美美91成人国产精品欧美精品久久久久久久| 中文字幕日韩专区精品系列| 97干天天| 操逼操网| 91色插| 97免费在线视频在线观看| 粉嫩av在线| 国产乱弄免费在线视频。| 国产精品视频麻豆入口| 精品综合久久久久久97| 婷婷丁香成人| 婷婷婷婷婷婷久久久久| 超碰97玖玖爱| 中国一区二区亚洲人妻| 操久久久久| 国产欧美一区二区| 中文字幕一二区二三区人妻专区| 九七毛片九九毛片| 99精品在线观看| 午夜福利国产欧美日韩夜夜| 在线观看视频91| 一起草精品人妻| 免费精品国偷自产在线在线| 色操逼网| 日韩日韩日韩-国产乱码精品一区二区| 色婷婷成人| 人人操人人爽人人操人人| 久久AV色| 天天综合在线4| 欧美性爱日韩性爱| 亚洲熟女诱惑| 午夜精品久久久久| 操碰97| 天天日天天搞天天干| 中文字幕一二三av| 一区 欧美 日韩 麻豆| 色色色色网站| 欧美十八禁视频| 99精品无码| 久久亚州高清| 99热思思| 无码WWW免费视频网站| 一二三区精品视频| 亚洲精品国产av天美传媒| 激情五月天色色| 狠狠中文字幕| www国产无码| 黄久久| 999综合色| 亚洲欧美日韩免费观看| 六月激情婷婷| 一区二区三区不卡视频| 亚洲AV在线资源| 欧美日韩222| 五月激情啪啪| 草莓精品视频| 亚洲精品三区在线观看| 97在线免费视频| 91制服丝袜| 91无码人妻| 亚洲综合图色在线| 中文字幕精品丝袜| 天天综合日韩网| 九九无码视频| 夜嗨影院| 黄色电影在线播放综合网站| 超碰97人妻| 亚洲高清欧美总合| 日韩精品人妻中文字幕不卡乱码| 9999九九九久久久| 欧美精品久久96人妻无码| 欧美黑人猛交春色影视大全| 免费黄色视频网址| 色5月婷婷| 欧美很很操视频| 日韩AV一起草| 亚洲综合精品国产一区| 草草网站影院白丝内射| 乱伦图一区| 日韩激情啪啪啪| 懂色av色欲av蜜臀av| 免费?级毛片无码?∨蜜芽试看| 老熟女乱伦片| 免费观看成人www精品视频| 国产成人在线观看网址| 九九九精品| 午夜舔阴达高潮视频免费看| 国产高清成人免费视频| 精品久久久av无码免费| 国产精品不卡高清在线观看| 一起草三级AV电影在线观看| 中文?日韩?免费?精品| 69国产对白刺激| 欧美性爱日韩高清| 美国精品国产精品| 国产熟女免费观看久久| 一级久久久久久久久久久 | 91伊人大香蕉| 亚州高清色综合| 超碰伊人在线| 91高潮| 大香蕉男人的天堂| 亚欧无码线免费观看视频| 香蕉精品二区二区| 超碰2017| 色黄污美女啪啪啪免费网站| 国产欧美精选激情视频| 老司机射| 亚洲性爱高潮影院| 综合 青草 伊久久 影院 综合 | 国产久久日| 97综合久第一页| 91第一页| 大香蕉乱级| 色爱三区| 综合网,亚洲,欧美| 亚洲综合九| 亚洲 欧美 第一页| 国产亚洲精品一区二区三区| 韩国午夜理伦三级好看| 伊人久久婷婷| 精品国产91久久久久久一区黄无| 97欧美色综合| 国产精品扒开腿做爽爽爽视频| 翔田千里无码一区| 无码日韩网站| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 中文幕97| 超碰99re| 乳欲人妻办公室奶水| 激情五月综合| 亚州综合图片| 婷婷五月天激情四射| 中文日本免费高清| 国产后入精品| 97国产精品久久久久| 国产又黄又爽| 亚洲一区中文字幕一区| 欧美美女在线高潮999| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 免费视频97| 91操人| 日夜久久久九九九久| 中文字幕视频二区| 操高情无码| 超碰激情808| 亚洲欧美在线丝袜| 亚洲高清无码AAA久久久精品| 青青爽| 亚洲成成熟女人综合一区二区| 手机在线中文字幕国产| 男女打扑克高清网站| 欧美色图99| 玖玖蜜臀资源网| 日本媚薬中文字幕在线| 国人欧美精品一区二区| 天天舔九色婷婷| 免费a v| 99精品无码| 天天干夜夜| 天天干人人干天天日97| 91红杏| 免费操逼91| 操久久久久久| 91老司机精品| 看一级黄色视频| 加勒比性爱成人在线| 乱伦a片视频| 亚洲成人精品久久久| 探花视频免费观看国产专区| 大奶啊啊好爽| 久久久蜜桃臀无码视频| 久操大香蕉手机视频在线看| 超碰在线日韩一区| 国产精品熟女乱伦| 四虎精品永久在线观看| 欧美视频边做饭边橾| 超碰在线1234区| 欧美视频一区二区在线| 国产情色第一第二页在线观看| 欧美性爱免费短视频| 超碰97色色| 少妇一级婬片免费放一级a性色.| 人人摸人人干| 亚洲成人性| 亚洲伊人久久精品影院| a v网站在线播放| 九九热午夜欧亚国产视频| 香蕉人人操tv| 日本在线999| 91大胆欧美| 欧美18老人禁| 人妻酒店出差被中出免费在线播放| 国产v片在线免费观看| 东北老女人的激情视频| 密乳无码| 久久是精品| 亚洲精品男人的天堂| 久久精品国产97欧美精品亚洲 | 伊人991| 久久仑合| 天天操人人操狠狠插| 亚州 综合 色图| 操逼逼福利视频| 亚洲国产97在线精品一区| 五月丁香成人网| 色悠久| 操逼精品视频| 亚洲无线码一区国产欧美国| 自拍六区| 北条麻妃性愛视频| 强奸a片网| 久艹日日日| 热久日综合| 97欧美综合网| 亚洲欧美日韩激情不卡| 嫩草 人人网精品| caoni国产亚洲av| 992大香蕉| 亚洲综合888| 99精品成人免费看| 国产乱子伦久久精品综合一区二区三| 天天日日本| 国产精品熟女丝袜一区二区| 啊啊啊好想要| 精彩久久中文| 久久最新免费视频23| 东北丰满熟女国产一区| 久热热| 97国产色图 | 欧亚日韩三区| 狠狠狠狠狠干| 欧美久久人人网| 91亚洲综合| 亚洲精品久久久久久| 国产怡红院| 自拍鲍鱼一区在线高清观看免费| 天天草天天日| 中文字幕熟女人妻丝袜丝| 日本不卡码黄色| 国产 码在线成人网站| 370p日韩欧美亚洲精品| 亚洲自拍97| 啊啊啊啊啊好舒服视频| 在线天堂999| 这里只有精品视频在线| 黄片com.| 五月天久久综合网| 欧美天天弄| 日韩天天综合| 91爱欧美| 国产乱人妻精品入口| 亚洲色人妻综合| 大香蕉手机视频| 超碰成人最新最好看| 亚洲欧美精品国产一区二区| 亚洲图片另类| 日本熟妇人妻一区二区三区| 亚州欧美综合| 98福利在线视频| 欧美一区二区三区不卡高清视频 | 岛国在线免费视频| 操逼无毒无码免费视频| 偷拍亚洲熟女视频播放| 91人人| 超碰在线日韩一区| 97操综合| 成人精品水蜜桃久久久久久久| 91艹逼精品| 五月天伊人| 按摩中文字幕| 人妻精品综合中文字幕在线| 丁香六月激情| 97精品熟女少妇一区| 97色操| 欧美性爱系列| 男啪女色黄无遮挡免费观看| 日本大香蕉| 欧美毛片在线网| 日韩探花精品在线视频| 精品人妻中文字幕高清| 极品色综合| 97 视频在线| 后入内射蜜桃臀| 欧美嫩性色| 嗯嗯啊啊操死我| 校园春色综合色| 亚洲激情天堂网| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 亚洲第一黄色av网站 | 啊啊啊啊在线播放| 日日嗷| 96超碰网| 久久天堂| 亚洲精品白浆高清久久久久久| 中文字幕精品一区欧美| 免费观看的黄色的网站| 一区二区娱乐网站| 亚洲日本韩国极品一区二区| 女一区二区| 在线亚洲丝袜视频网站| nuu12国产麻豆精品| 怡红院成人视频| 日韩兔费看黄片| 一二三四视频中文字幕在线看| 国产亚洲精品农村妇女| 成人日本视频人妻在线| 久久黄黄| 96免费视频在线| 色偷偷综合91久久噜噜| 大香蕉中文在线| 亚洲另类小说卡通动漫| 日本理论在线| 国产馆极品诱惑| 东京热熟女亚洲视频网站| 国产熟码AV| 亚洲不卡三级手机播放| 欧美日本中字另类在线| 亚洲中文字幕网| 97人人中文网| 91熟女视频网| 国产呦精品系列在线观看| 欧美强奸乱能| 后入 亚洲 美女 射| 加勒比五月天| 性猛交| 亚洲精品啪视频| 99热97| 51一区二区三区| 日本爽爽爽爽爽爽免费视频| 日本性爱少妇| 男人干美女| 国产又粗又长视频| 天天躁日日躁AAAAXXXX国产 | 亚洲精品电影| 色就色综合| 天美传媒一二三区永久网站| www.男人天堂| av三级电影在线播放| 亚洲色图亚洲无码强奸乱伦| 99re3这里只有精品| 91蜜臀人妻中文字幕在线| 免费av高清无码| 国内外色色色色色成人视频| 色麻豆AV| 国产一区二区成人av在线播放| 伊人婷婷五月天| 色在线69堂| 91精品无码久久久久久久| 亚洲中文字幕三级在线| 999综合色| a片在线播放| 一区二区三区在线资源| 中文字幕日韩情色| 99re公开精品免费视频| 天天爽夜夜欢视| 九九AV| 婷色五月| 亚洲性综合11| 亚洲色 国产 欧美 日韩| 国产亚卅97| 中文字幕在线免费观看2| 另类在线| 蜜臀久久99精品久久久久久成人小说 | 香蕉人人操tv| 91AV天美在线视频| 亚洲 欧美 偷拍 唯美| 国产性刺激| 国产在线能看的你懂的| 天天日老熟妇| 91春色| 国产精品青青草| 国内一区二区免费| 91欧美高清| 综合网天天| 久久国产精品91| 亚洲色图91| 国产视频三区四区| 伊人影院日本| 熟女在线视频| 超碰在线人妻中文字幕| 91色综合激情| 成人精品久久久午夜福利| 亚洲色图 欧美热图 清纯唯美 另类自拍| 国产精品香蕉| 精品人妻一区二区三区-国产| 精品人妻一区二区三区日产乱码| 最新加勒比丝袜在线| 人妻夜夜爽天天爽三区麻豆AV网站| 一区二区三区精品黑丝白丝酒店对鸡 | 日本影视久久免费| 丰满少妇一区二区三区四区观看| 国产一级高清免费观看| 99啪啪视频| 欧美日韩国产另类综合| 熟女高潮合集-永久久久-成人AV | 91爱看| 1769一区二区| 91制服丝袜| 久久最新免费视频23| 影音先锋每日最新资源在线观看| 亚洲自拍欧美国产首页网曝 | 伊人一区二区三区| 粉嫩粉嫩一区性色AV片| 久久精品无码熟妇一区二区三区视频导航 | 激情网色| 性感美女91影视| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 日本三级小说中文字幕| 免费1级a做爰片观看| 97天天插| 超碰97爽| 国产成人自拍视频视频| 婷婷探花久久精品一区| 欧美亚洲丝袜人妻制服99| 国产精品第一区第一页| 天美传媒av在线| 日本三级韩国三级99| 强被迫伦姧在线观看无码网站| A男人的天堂| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 青草综合| 我爱搞逼综合网| 99热思思| 国产精品熟女九色九色蜜臀| 热G综合热G中文| 欧美大香蕉卡久久| 国产精品一二三在线看| 精品对白久久不卡| 淫乱图区 | 欧州91高潮| 热的中文 热的有码 热的国产| 亚洲操操操| 亚洲蜜乳av| 久久精品久| 午夜精品久久久99热蜜桃的功能特点| 夜夜肏2021| 日本免费专区| 亚洲性网| 岛国天天午夜影院传媒网| 自拍丝袜美腿人妻| 2024人人操人人摸| 色黄污美女啪啪啪免费网站| 啊啊啊好大好深| 欧洲自拍色图gif在线| 中文字幕国产精品1区| 91成人在线免费视频| 国产精品久久久久久久无码AV| 玖玖大干人妻| 九九九九九九成人| 手机av天堂久久久久| 美女自卫慰黄网站免费| 无码国产Av| 国产精品第一区第一页| 熟女精品日韩一区二区三区| 男人的亚洲天堂| 欧美狠狠操| 大香蕉碰| 99热9| 亚洲操人| 美女一区二区国产精品| 亚洲无无码αⅴ每日更新| 超碰色老头| 密臀在线视频| 五月天人妻综合| 97精品97久久| 日本精品免费一区二区三区四区| 翘臀vidoes| 加勒比大香蕉视频在线| 婷婷丁香五月激情啪啪| 国产亚洲日本精品在线| 免费亚洲黄色视频在线观看| 在线观看亚洲成人精品| 国产一级内射高清视频| 97国产超碰| 啊v在线观看视频| 2017天天插| 欧美性暴力猛交| 国产成人五月天丁香花| 全国男人天堂网| 神马久久免费电影观看| 老司机福利社视频在线观看| 日日干夜夜欢| 99re在线视频| 智利AV在线网| 台湾佬中文娱乐网久久久久久久久久com| 日韩资源网| 五十路人妻在线| 精品无码产区一区二| 精品9999| 性高潮久久久| 美女9118禁| 久久久一区二区三区四区五区| 亚洲成人贴图| 插入逼91| 欧美1区二区三区公司| 日韩在线一区高清在线| 久久久久久国产成人| 1024精品在线| 一二三区精品视频| 色婷婷一区二区三区久久| 日本精品一区二区三区四区的功能| 五月丁香激情四射| 女欧美一区二三区| 无码最新| 亚洲中文一区二区三区视频|