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

ARTICLE DETAIL

資訊詳情

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

嵌入式入門路線:從STM32到FreeRTOS與Linux實(shí)戰(zhàn)

嵌入式入門路線:從STM32到FreeRTOS與Linux實(shí)戰(zhàn) 1. 嵌入式入門到底難在哪先搞清楚這件事很多人一提到嵌入式腦子里第一反應(yīng)就是“難”第二反應(yīng)是“我該從哪開始”。網(wǎng)上搜一圈有人說先學(xué)51單片機(jī)有人說直接上STM32還有人說要先啃C語言和數(shù)據(jù)結(jié)構(gòu)更有人勸你直接搞嵌入式Linux。信息一多人就懵了。我當(dāng)年也是這么過來的買了一塊開發(fā)板裝了個Keil點(diǎn)了個燈然后就不知道下一步該干嘛了。這篇文章想解決的就是這個問題給出一條從零到能干活、能出項(xiàng)目的嵌入式上手路線。不是那種“先學(xué)模電數(shù)電、再學(xué)微機(jī)原理、最后學(xué)操作系統(tǒng)”的學(xué)院派路徑而是從實(shí)操出發(fā)讓你在最短時間內(nèi)建立起對嵌入式的整體認(rèn)知并且能動手做出東西來。適合的人群包括電子、計算機(jī)、自動化相關(guān)專業(yè)的學(xué)生想轉(zhuǎn)行做嵌入式的軟件工程師以及工作中需要接觸硬件但沒系統(tǒng)學(xué)過的開發(fā)者。核心關(guān)鍵詞就幾個嵌入式、STM32、FreeRTOS、嵌入式Linux、C語言。這幾個詞基本涵蓋了嵌入式入門的主干。我會按照“先跑起來、再搞明白、然后做項(xiàng)目、最后進(jìn)階”的邏輯來展開每一步都告訴你為什么這么做、怎么做、踩過哪些坑。先說一個基本判斷嵌入式不是一個單一技能它是一個技能棧。底層是電路和芯片中間是驅(qū)動和RTOS上層是應(yīng)用和通信協(xié)議。你不可能一口氣全吃下來但你可以沿著一條主線快速建立框架然后再往深處鉆。這條主線我建議從STM32開始因?yàn)樗馁Y料最豐富、生態(tài)最成熟、上手門檻相對低而且學(xué)完之后遷移到其他平臺比如GD32、ESP32、甚至嵌入式Linux都很順。2. 上手路線怎么選別在起點(diǎn)上糾結(jié)太久2.1 為什么是STM32而不是51或者樹莓派我見過太多人在起點(diǎn)上糾結(jié)學(xué)51還是STM32學(xué)STM32還是直接上Linux我的建議很明確如果你目標(biāo)是快速上手并能做實(shí)際項(xiàng)目直接上STM32跳過51。原因很簡單51單片機(jī)的架構(gòu)和開發(fā)方式跟現(xiàn)代嵌入式差距太大你學(xué)完51再轉(zhuǎn)STM32很多概念要重新建立。而STM32的HAL庫、CubeMX工具鏈、中斷系統(tǒng)、外設(shè)設(shè)計思路跟現(xiàn)在企業(yè)里用的主流方案是一致的。那為什么不直接上嵌入式Linux因?yàn)長inux的學(xué)習(xí)曲線更陡你需要先理解操作系統(tǒng)、文件系統(tǒng)、驅(qū)動模型、交叉編譯等一堆概念如果沒有單片機(jī)基礎(chǔ)很容易卡在“連環(huán)境都搭不起來”的階段。STM32能讓你先理解“寄存器—外設(shè)—中斷—RTOS”這條線再去學(xué)Linux會順很多。至于樹莓派它更像一臺小型電腦跑的是完整操作系統(tǒng)適合做應(yīng)用層開發(fā)但不太適合理解底層硬件控制。所以路線建議是C語言基礎(chǔ) → STM32裸機(jī) → FreeRTOS → 通信協(xié)議和常用外設(shè) → 嵌入式Linux入門。2.2 最小可行學(xué)習(xí)路徑四周跑通第一個閉環(huán)我給自己帶過的人設(shè)計過一個“四周閉環(huán)”計劃實(shí)測下來對新手很友好第一周裝好開發(fā)環(huán)境Keil或者VSCodePlatformIO跑通GPIO點(diǎn)燈、按鍵輸入、串口打印。目標(biāo)是理解“代碼怎么燒進(jìn)芯片、怎么看到結(jié)果”。第二周搞定定時器、中斷、PWM、ADC。目標(biāo)是能控制電機(jī)、讀傳感器、調(diào)燈光亮度。第三周移植FreeRTOS創(chuàng)建兩個任務(wù)一個閃燈一個串口輸出。目標(biāo)是理解“多任務(wù)”到底是怎么回事。第四周做一個綜合小項(xiàng)目比如超聲波測距OLED顯示串口上報。目標(biāo)是走完“傳感器→處理→顯示→通信”的完整鏈路。這四周下來你基本就能看懂大部分嵌入式項(xiàng)目的代碼結(jié)構(gòu)了。后面再根據(jù)方向深入比如做物聯(lián)網(wǎng)就重點(diǎn)學(xué)MQTT、藍(lán)牙、WiFi做控制就重點(diǎn)學(xué)CAN、485、伺服電機(jī)。2.3 工具鏈怎么選Keil、CubeMX、VSCode各自扮演什么角色工具選型這件事新手最容易走彎路。我的建議是STM32CubeMX必裝。它幫你生成初始化代碼配置時鐘樹、引腳、外設(shè)省掉大量查手冊的時間。很多人覺得用CubeMX“不夠底層”但實(shí)際工作中效率優(yōu)先先跑起來再研究寄存器完全沒問題。Keil MDK經(jīng)典但收費(fèi)社區(qū)版有代碼大小限制。如果只是學(xué)習(xí)可以用。VSCode PlatformIO 或 STM32CubeIDE免費(fèi)跨平臺插件生態(tài)好。我現(xiàn)在更推薦VSCodePlatformIO配合STM32CubeMX生成的代碼體驗(yàn)很順。串口調(diào)試工具隨便一個串口助手都行用來打印調(diào)試信息這是你最重要的“眼睛”。注意不要一上來就追求“純寄存器開發(fā)”。那是等你已經(jīng)能跑通項(xiàng)目之后為了優(yōu)化或者排查問題才需要深入的東西。新手階段先用庫函數(shù)把功能實(shí)現(xiàn)建立信心和整體認(rèn)知。3. C語言要學(xué)到什么程度才夠用3.1 嵌入式C和普通C的差別在哪很多人問我C語言學(xué)完了能直接搞嵌入式嗎答案是看你學(xué)的是什么C。普通C語言課程重點(diǎn)在語法、算法、數(shù)據(jù)結(jié)構(gòu)而嵌入式C的重點(diǎn)在指針操作、位運(yùn)算、內(nèi)存布局、volatile、const、結(jié)構(gòu)體對齊這些跟硬件打交道的東西。舉個例子你在PC上寫int a 10;編譯器可能把它放在寄存器里也可能放在棧上你不用管。但在嵌入式里你經(jīng)常要直接操作某個地址的寄存器比如*(volatile uint32_t *)0x40021000 0x01;這時候volatile的作用就非常關(guān)鍵——它告訴編譯器“這個值可能被硬件改變不要優(yōu)化掉”。如果你不懂這個代碼可能編譯沒問題但運(yùn)行結(jié)果完全不對。再比如位運(yùn)算嵌入式里到處都是|、、^、~、、。你要能熟練地設(shè)置某一位、清除某一位、翻轉(zhuǎn)某一位而不是用一堆if-else去操作。這些在普通C語言課里可能只是一帶而過但在嵌入式里是天天用的。3.2 必須掌握的C語言知識點(diǎn)清單我整理了一份“嵌入式C最小必備清單”你可以對照檢查知識點(diǎn)為什么重要掌握標(biāo)準(zhǔn)指針與地址操作寄存器、傳遞緩沖區(qū)能看懂*(volatile uint32_t *)addr位運(yùn)算配置寄存器位能獨(dú)立寫出置位、清位、取位宏volatile防止編譯器優(yōu)化硬件訪問知道什么時候必須加const常量存儲、只讀數(shù)據(jù)知道const變量放在哪結(jié)構(gòu)體與聯(lián)合體描述寄存器組、協(xié)議幀能定義并訪問位域函數(shù)指針回調(diào)、驅(qū)動接口能寫簡單的回調(diào)注冊內(nèi)存分區(qū)棧、堆、全局、常量區(qū)知道變量存在哪、棧溢出怎么回事預(yù)處理器宏定義、條件編譯能寫帶參數(shù)的宏、頭文件保護(hù)如果你對這些還不太熟建議先花一周時間專門補(bǔ)一下。不用學(xué)到“精通”但要能看懂、能寫出來。翁愷老師的C語言課程可以作為復(fù)習(xí)參考重點(diǎn)看指針和結(jié)構(gòu)體部分。3.3 從“會寫C”到“會寫嵌入式C”的思維轉(zhuǎn)變最大的思維轉(zhuǎn)變是你寫的代碼不再只是給CPU看的還是給硬件看的。在PC上你操作的是文件和內(nèi)存在嵌入式里你操作的是寄存器和外設(shè)。每一個外設(shè)都有一組寄存器你通過讀寫這些寄存器來控制它。比如你要讓一個GPIO輸出高電平本質(zhì)上就是往某個地址寫一個值。另一個轉(zhuǎn)變是資源意識。PC上內(nèi)存幾個G隨便用嵌入式里RAM可能只有幾十KB??臻g可能只有幾KB。你定義一個char buf[1024]就要想清楚它放在哪、會不會導(dǎo)致棧溢出。FreeRTOS里每個任務(wù)都要分配??臻g棧給少了會溢出給多了浪費(fèi)RAM。這些在PC開發(fā)里很少需要考慮。還有一個是實(shí)時性意識。嵌入式系統(tǒng)經(jīng)常要求“在多少毫秒內(nèi)響應(yīng)”比如電機(jī)控制、傳感器采樣。你不能在中斷里做耗時操作不能用阻塞式延時要學(xué)會用狀態(tài)機(jī)、非阻塞掃描、任務(wù)調(diào)度來保證響應(yīng)速度。這些思維轉(zhuǎn)變只有在實(shí)際寫代碼、調(diào)代碼的過程中才能慢慢建立。4. STM32上手實(shí)操從點(diǎn)燈到多任務(wù)4.1 環(huán)境搭建CubeMXKeil/VSCode的完整配置流程先說一下我的環(huán)境配置流程以VSCodePlatformIO為例安裝VSCode在擴(kuò)展商店搜索PlatformIO并安裝。安裝STM32CubeMX去官網(wǎng)下載對應(yīng)版本。在CubeMX里新建工程選擇你的芯片型號比如STM32F103C8T6。配置時鐘外部晶振8MHz系統(tǒng)時鐘72MHz。CubeMX會自動計算分頻和倍頻參數(shù)。配置GPIO比如PC13設(shè)為輸出用于點(diǎn)燈。配置串口USART1波特率115200用于打印。生成代碼選擇PlatformIO工程格式。在VSCode里打開工程PlatformIO會自動下載依賴。連接ST-Link下載器點(diǎn)擊上傳代碼就燒進(jìn)去了。如果你用Keil流程類似只是生成代碼時選擇MDK-ARM格式然后用Keil打開、編譯、下載。Keil的調(diào)試功能很強(qiáng)可以單步、看寄存器、看內(nèi)存建議至少裝一個。實(shí)操心得CubeMX生成代碼后你的用戶代碼要寫在/* USER CODE BEGIN */和/* USER CODE END */之間否則下次重新生成會被覆蓋。這個坑我踩過不止一次。4.2 GPIO與中斷第一個可交互的嵌入式程序點(diǎn)燈是Hello World但光點(diǎn)燈不夠你要加上按鍵中斷才算真正理解“輸入-處理-輸出”的閉環(huán)。配置步驟按鍵引腳設(shè)為GPIO_EXTI模式觸發(fā)方式選下降沿。在CubeMX的NVIC設(shè)置里使能對應(yīng)的EXTI中斷。生成代碼后在stm32f1xx_it.c里找到EXTIx_IRQHandler它會調(diào)用HAL_GPIO_EXTI_Callback。你重寫這個回調(diào)函數(shù)在里面翻轉(zhuǎn)LED引腳。void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if (GPIO_Pin KEY_Pin) { HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); } }這段代碼看起來簡單但背后有幾個關(guān)鍵點(diǎn)中斷服務(wù)函數(shù)要盡量短不能放延時按鍵要加消抖硬件消抖用電容軟件消抖可以在回調(diào)里加時間判斷中斷優(yōu)先級要配置好否則會互相打斷。4.3 定時器與PWM控制電機(jī)和調(diào)光的基礎(chǔ)定時器是STM32里最復(fù)雜但也最有用的外設(shè)之一?;居猛居腥N定時中斷、PWM輸出、輸入捕獲。以PWM控制LED亮度為例選擇一個定時器比如TIM2配置通道1為PWM Generation。設(shè)置預(yù)分頻器和自動重裝載值決定PWM頻率。比如72MHz時鐘預(yù)分頻72-1重裝載1000-1得到1kHz PWM。在代碼里用__HAL_TIM_SET_COMPARE(htim2, TIM_CHANNEL_1, duty)來改變占空比??刂齐姍C(jī)也是類似原理只是頻率要求不同。舵機(jī)一般用50Hz直流電機(jī)用幾kHz到幾十kHz。步進(jìn)電機(jī)則要用到更復(fù)雜的脈沖序列比如五線四相步進(jìn)電機(jī)的八拍控制。注意事項(xiàng)PWM頻率不能隨便設(shè)。頻率太低LED會閃電機(jī)嘯叫頻率太高可能超出驅(qū)動能力。一般LED用1kHz以上電機(jī)用8kHz到20kHz比較合適。4.4 串口通信與調(diào)試嵌入式開發(fā)的“眼睛”串口是你調(diào)試嵌入式程序最重要的工具。沒有串口你就像閉著眼睛修車。配置串口很簡單CubeMX里選異步模式設(shè)置波特率115200生成代碼后用HAL_UART_Transmit發(fā)送數(shù)據(jù)。但實(shí)際使用中我建議你重定向printf到串口這樣調(diào)試信息輸出會方便很多int __io_putchar(int ch) { HAL_UART_Transmit(huart1, (uint8_t *)ch, 1, HAL_MAX_DELAY); return ch; }然后在代碼里直接printf(count%d\r\n, count);。注意要加\r\n否則串口助手顯示不換行。串口還能用來跟其他模塊通信比如藍(lán)牙模塊、WiFi模塊、GPS模塊。很多物聯(lián)網(wǎng)項(xiàng)目就是通過串口把STM32采集的數(shù)據(jù)發(fā)給通信模塊再上傳到云平臺。巴法云這類平臺就支持MQTT協(xié)議STM32通過串口連WiFi模塊再走M(jìn)QTT上報數(shù)據(jù)是一個很典型的入門物聯(lián)網(wǎng)項(xiàng)目。5. FreeRTOS怎么學(xué)才不懵5.1 為什么裸機(jī)跑得好好的要用RTOS很多人學(xué)到一定階段會問我裸機(jī)寫得好好的為什么要上RTOS答案在于任務(wù)復(fù)雜度和實(shí)時性要求。裸機(jī)程序通常是一個大循環(huán)所有事情按順序做。如果某個任務(wù)耗時太長其他任務(wù)就會被耽誤。比如你在循環(huán)里做串口打印打印本身可能耗時幾毫秒這期間按鍵響應(yīng)就會變慢。RTOS的核心價值是任務(wù)調(diào)度你把不同功能拆成獨(dú)立任務(wù)每個任務(wù)有自己的優(yōu)先級和棧空間調(diào)度器負(fù)責(zé)在它們之間切換。高優(yōu)先級任務(wù)可以搶占低優(yōu)先級任務(wù)保證關(guān)鍵響應(yīng)及時。同時RTOS還提供了信號量、隊(duì)列、事件組等機(jī)制方便任務(wù)之間通信和同步。但RTOS不是銀彈。任務(wù)多了??臻g要分配好優(yōu)先級要設(shè)計好否則會出現(xiàn)優(yōu)先級反轉(zhuǎn)、棧溢出、死鎖等問題。我見過不少項(xiàng)目上了RTOS之后反而更不穩(wěn)定就是因?yàn)闆]理解這些機(jī)制。5.2 任務(wù)、隊(duì)列、信號量三個核心概念一次講透FreeRTOS的概念很多但最核心的就三個任務(wù)、隊(duì)列、信號量。任務(wù)一個獨(dú)立的執(zhí)行流有自己的棧和優(yōu)先級。用xTaskCreate創(chuàng)建任務(wù)函數(shù)通常是一個無限循環(huán)里面要有阻塞點(diǎn)比如vTaskDelay否則低優(yōu)先級任務(wù)永遠(yuǎn)得不到執(zhí)行。隊(duì)列任務(wù)之間傳遞數(shù)據(jù)的通道。比如一個任務(wù)采集傳感器數(shù)據(jù)通過隊(duì)列發(fā)給另一個任務(wù)處理。隊(duì)列是拷貝傳遞不是引用傳遞所以數(shù)據(jù)不能太大。信號量用于同步和互斥。二值信號量常用于中斷通知任務(wù)互斥信號量用于保護(hù)共享資源。QueueHandle_t xQueue xQueueCreate(10, sizeof(int)); xTaskCreate(Task1, Task1, 128, NULL, 2, NULL); xTaskCreate(Task2, Task2, 128, NULL, 1, NULL); void Task1(void *pv) { int val 0; while (1) { val; xQueueSend(xQueue, val, portMAX_DELAY); vTaskDelay(pdMS_TO_TICKS(100)); } } void Task2(void *pv) { int recv; while (1) { if (xQueueReceive(xQueue, recv, portMAX_DELAY)) { printf(recv%d\r\n, recv); } } }這段代碼創(chuàng)建了兩個任務(wù)Task1每100ms往隊(duì)列發(fā)一個數(shù)Task2阻塞等待接收。這就是最典型的RTOS任務(wù)通信模式。5.3 棧溢出與優(yōu)先級反轉(zhuǎn)新手最容易踩的坑棧溢出是FreeRTOS新手最常見的問題。每個任務(wù)創(chuàng)建時都要指定棧深度單位是word4字節(jié)。如果你在任務(wù)里定義了大的局部數(shù)組或者調(diào)用了深層遞歸棧就會溢出。溢出后可能表現(xiàn)為硬件錯誤、任務(wù)跑飛、數(shù)據(jù)錯亂。FreeRTOS提供了棧溢出檢測機(jī)制在FreeRTOSConfig.h里把configCHECK_FOR_STACK_OVERFLOW設(shè)為1或2然后實(shí)現(xiàn)vApplicationStackOverflowHook函數(shù)在里面打印出錯任務(wù)名。這樣一旦溢出就能及時發(fā)現(xiàn)。優(yōu)先級反轉(zhuǎn)是另一個坑。假設(shè)低優(yōu)先級任務(wù)A持有互斥鎖高優(yōu)先級任務(wù)B等待這個鎖中優(yōu)先級任務(wù)C搶占了A導(dǎo)致B一直等不到鎖。解決辦法是用互斥信號量不是二值信號量FreeRTOS的互斥量支持優(yōu)先級繼承能緩解這個問題。實(shí)操心得任務(wù)優(yōu)先級不要設(shè)得太接近也不要把所有任務(wù)都設(shè)成高優(yōu)先級。一般建議中斷相關(guān)任務(wù)最高控制任務(wù)次之顯示和通信任務(wù)較低空閑任務(wù)最低。??臻g先給大一點(diǎn)跑穩(wěn)定了再優(yōu)化。5.4 FreeRTOS移植LVGL和實(shí)際項(xiàng)目中的任務(wù)劃分LVGL是一個輕量級圖形庫在STM32上跑LVGL是很多帶屏項(xiàng)目的標(biāo)配。移植LVGL的關(guān)鍵是給LVGL一個定時器心跳通常1ms在任務(wù)里調(diào)用lv_tick_inc和lv_task_handler。LVGL本身不是線程安全的所以最好放在一個獨(dú)立任務(wù)里其他任務(wù)通過隊(duì)列或消息通知它刷新界面。一個典型的STM32FreeRTOSLVGL項(xiàng)目任務(wù)劃分如下任務(wù)名優(yōu)先級棧大小職責(zé)GUI_Task21024LVGL界面刷新、觸摸處理Sensor_Task3256傳感器采集、濾波Comm_Task2512串口/WiFi通信、協(xié)議解析Control_Task4256電機(jī)/PWM控制Log_Task1256日志輸出、調(diào)試信息這個劃分不是固定的要根據(jù)實(shí)際項(xiàng)目調(diào)整。原則是實(shí)時性要求高的任務(wù)優(yōu)先級高耗時長的任務(wù)優(yōu)先級低任務(wù)之間盡量通過隊(duì)列通信減少全局變量。6. 嵌入式Linux要不要學(xué)什么時候?qū)W6.1 從單片機(jī)到Linux的跨越點(diǎn)在哪嵌入式Linux和STM32裸機(jī)/RTOS是兩個世界。STM32你直接操作寄存器和外設(shè)代碼跑在裸機(jī)或RTOS上嵌入式Linux你跑在一個完整的操作系統(tǒng)上通過驅(qū)動和文件系統(tǒng)來操作硬件??缭近c(diǎn)在于你需要理解操作系統(tǒng)、進(jìn)程、文件、驅(qū)動、設(shè)備樹、交叉編譯這些概念。什么時候?qū)WLinux我的建議是當(dāng)你已經(jīng)能熟練使用STM32RTOS做項(xiàng)目并且工作中需要跑更復(fù)雜的應(yīng)用比如網(wǎng)絡(luò)服務(wù)、圖形界面、數(shù)據(jù)庫時再學(xué)Linux。如果你連單片機(jī)都沒跑通直接上Linux會非常痛苦因?yàn)槟阋瑫r面對硬件、系統(tǒng)、工具鏈三座大山。6.2 根文件系統(tǒng)掛載與NFS調(diào)試的實(shí)操記錄嵌入式Linux開發(fā)中根文件系統(tǒng)掛載是一個關(guān)鍵環(huán)節(jié)。常見方式有三種從Flash掛載、從SD卡掛載、通過網(wǎng)絡(luò)掛載。網(wǎng)絡(luò)掛載NFS在開發(fā)階段非常方便因?yàn)槟憧梢灾苯釉赑C上修改文件開發(fā)板上就能看到變化不用反復(fù)燒錄。配置NFS掛載的步驟PC上安裝NFS服務(wù)配置/etc/exports導(dǎo)出根文件系統(tǒng)目錄。開發(fā)板內(nèi)核啟動參數(shù)里設(shè)置root/dev/nfs nfsrootPC_IP:/path/to/rootfs。確保開發(fā)板和PC網(wǎng)絡(luò)互通。啟動開發(fā)板內(nèi)核會通過網(wǎng)絡(luò)掛載根文件系統(tǒng)。注意事項(xiàng)NFS版本要匹配。有些開發(fā)板默認(rèn)用NFS v3有些用v4配置不對會掛載失敗。另外PC防火墻要放行NFS相關(guān)端口否則會卡在掛載階段。6.3 嵌入式Linux學(xué)習(xí)路徑與項(xiàng)目推薦如果你決定學(xué)嵌入式Linux我建議按這個順序Linux基礎(chǔ)命令行、文件系統(tǒng)、權(quán)限、進(jìn)程、網(wǎng)絡(luò)。交叉編譯在PC上編譯ARM程序理解工具鏈。BootloaderU-Boot的編譯、燒錄、環(huán)境變量。內(nèi)核移植配置內(nèi)核、編譯、設(shè)備樹。根文件系統(tǒng)BusyBox、Buildroot、Yocto。驅(qū)動開發(fā)字符設(shè)備、平臺設(shè)備、設(shè)備樹。應(yīng)用開發(fā)網(wǎng)絡(luò)編程、多線程、數(shù)據(jù)庫。項(xiàng)目推薦從“網(wǎng)絡(luò)攝像頭”或“物聯(lián)網(wǎng)網(wǎng)關(guān)”入手。比如用STM32做傳感器采集通過串口發(fā)給嵌入式Linux開發(fā)板Linux板子跑MQTT客戶端上傳數(shù)據(jù)。這樣既能用到單片機(jī)又能學(xué)到Linux應(yīng)用開發(fā)。7. 常見問題與排查技巧實(shí)錄7.1 STM32下載失敗、串口亂碼、中斷不觸發(fā)怎么辦這三個問題幾乎是每個STM32新手都會遇到的。我整理了一個速查表問題可能原因排查方法下載失敗下載器驅(qū)動、接線、芯片鎖檢查ST-Link驅(qū)動、SWD接線、用CubeProgrammer解鎖串口亂碼波特率不匹配、時鐘配置錯確認(rèn)兩邊波特率一致、檢查系統(tǒng)時鐘中斷不觸發(fā)NVIC未使能、優(yōu)先級配置錯檢查CubeMX NVIC設(shè)置、確認(rèn)中斷標(biāo)志清除程序不運(yùn)行啟動文件錯、復(fù)位電路檢查BOOT引腳、復(fù)位電路、啟動文件ADC讀數(shù)跳動參考電壓不穩(wěn)、采樣時間短加濾波電容、增加采樣時間7.2 FreeRTOS任務(wù)跑飛、堆棧溢出、Flash寫入被打斷FreeRTOS項(xiàng)目里任務(wù)跑飛通常跟棧溢出、優(yōu)先級配置、中斷安全有關(guān)。如果Flash寫入被打斷可能是因?yàn)樵谥袛嗬镎{(diào)用了Flash操作而Flash寫入需要關(guān)閉中斷。解決辦法是把Flash操作放在任務(wù)里寫入前掛起調(diào)度器或關(guān)閉中斷。taskENTER_CRITICAL(); HAL_FLASH_Program(...); taskEXIT_CRITICAL();但注意臨界區(qū)不能太長否則會影響系統(tǒng)實(shí)時性。如果Flash寫入數(shù)據(jù)量大建議分塊寫入每塊之間讓出CPU。7.3 CAN通信突然連不上、藍(lán)牙配對失敗、ADC通道切換異常CAN通信突然斷掉常見原因是總線終端電阻不匹配、波特率不一致、節(jié)點(diǎn)地址沖突。用示波器看CAN_H和CAN_L的差分信號正常應(yīng)該有明顯的高低電平變化。如果信號幅度不對檢查終端電阻通常120歐姆。藍(lán)牙配對失敗先確認(rèn)模塊波特率和AT指令模式。很多藍(lán)牙模塊上電后需要先進(jìn)入AT模式配置好名稱、波特率、配對碼再切換到透傳模式。STM32通過串口發(fā)AT指令時要注意加回車換行并且等待模塊返回“OK”。ADC多通道切換時如果讀數(shù)不對可能是采樣時間不夠或者通道切換后沒有重新校準(zhǔn)。STM32的ADC在切換通道后建議丟棄第一次采樣值從第二次開始讀。8. 項(xiàng)目實(shí)戰(zhàn)從超聲波測距到物聯(lián)網(wǎng)網(wǎng)關(guān)8.1 超聲波測距OLED顯示串口上報完整實(shí)現(xiàn)這個項(xiàng)目適合作為STM32FreeRTOS的綜合練習(xí)。硬件清單STM32F103C8T6、HC-SR04超聲波模塊、0.96寸OLED、USB轉(zhuǎn)串口模塊。任務(wù)劃分Trig_Task每100ms觸發(fā)一次超聲波讀取回響時間計算距離。Display_Task接收距離數(shù)據(jù)刷新OLED顯示。Report_Task每1秒通過串口上報一次距離。超聲波測距原理Trig引腳給10us高電平模塊發(fā)出8個40kHz脈沖Echo引腳變高回響結(jié)束后變低。Echo高電平持續(xù)時間就是聲波往返時間距離時間×聲速/2。float get_distance(void) { uint32_t time; HAL_GPIO_WritePin(TRIG_GPIO_Port, TRIG_Pin, GPIO_PIN_SET); delay_us(10); HAL_GPIO_WritePin(TRIG_GPIO_Port, TRIG_Pin, GPIO_PIN_RESET); while (!HAL_GPIO_ReadPin(ECHO_GPIO_Port, ECHO_Pin)); time 0; while (HAL_GPIO_ReadPin(ECHO_GPIO_Port, ECHO_Pin)) { time; delay_us(1); } return time * 0.034 / 2; }注意事項(xiàng)超聲波測距有盲區(qū)一般小于2cm測不準(zhǔn)。測量周期不要小于60ms否則會收到上一次的回波。多個超聲波模塊同時用會互相干擾要分時觸發(fā)。8.2 STM32FreeRTOS巴法云物聯(lián)網(wǎng)網(wǎng)關(guān)搭建物聯(lián)網(wǎng)網(wǎng)關(guān)的核心是采集數(shù)據(jù)→處理→上傳云平臺。STM32通過串口連接WiFi模塊比如ESP8266WiFi模塊連上路由器后通過MQTT協(xié)議連接巴法云。巴法云MQTT接入流程在巴法云注冊賬號創(chuàng)建主題獲取客戶端ID和密鑰。STM32通過串口發(fā)AT指令給ESP8266配置WiFi和MQTT參數(shù)。連接成功后STM32把傳感器數(shù)據(jù)發(fā)布到主題。手機(jī)或電腦訂閱主題就能看到數(shù)據(jù)。這個項(xiàng)目涉及的知識點(diǎn)很多串口通信、AT指令、MQTT協(xié)議、JSON格式、FreeRTOS任務(wù)劃分。做完這個你對物聯(lián)網(wǎng)的整個鏈路就清楚了。8.3 嵌入式AI測試在MCU上跑輕量級神經(jīng)網(wǎng)絡(luò)嵌入式AI是最近的熱點(diǎn)。在STM32上跑神經(jīng)網(wǎng)絡(luò)通常用TensorFlow Lite Micro或者STM32Cube.AI。流程是PC上訓(xùn)練模型→轉(zhuǎn)換成C數(shù)組→集成到STM32工程→調(diào)用推理接口。實(shí)際測試中一個簡單的MNIST手寫數(shù)字識別模型在STM32F4上推理一次大概幾十毫秒。如果模型再大一點(diǎn)F4就跑不動了需要F7或H7系列。嵌入式AI目前適合做關(guān)鍵詞喚醒、簡單圖像分類、異常檢測等輕量任務(wù)復(fù)雜的視覺和語音還是得上LinuxNPU。9. 學(xué)習(xí)資源與進(jìn)階方向9.1 開源項(xiàng)目怎么選、怎么讀、怎么改嵌入式開源項(xiàng)目很多但質(zhì)量參差不齊。我建議從這幾個維度篩選Star數(shù)、最近更新時間、文檔完整度、Issue響應(yīng)速度。推薦幾個方向STM32的HAL庫例程、FreeRTOS官方Demo、LVGL的STM32移植例程、RT-Thread的BSP包。讀開源項(xiàng)目的正確姿勢先跑起來再改參數(shù)看現(xiàn)象然后跟蹤調(diào)用鏈最后嘗試增加一個小功能。不要一上來就逐行讀代碼那樣效率很低。9.2 從會用到會做如何積累自己的代碼庫工作幾年后你會發(fā)現(xiàn)真正值錢的是你自己的代碼庫。我建議從第一天就開始積累GPIO操作、串口收發(fā)、定時器配置、FreeRTOS任務(wù)模板、常用傳感器驅(qū)動、通信協(xié)議解析。每個模塊都寫成獨(dú)立的.c和.h文件接口清晰方便復(fù)用。我的代碼庫里有一個bsp文件夾放板級支持包一個drivers文件夾放外設(shè)驅(qū)動一個middlewares文件夾放FreeRTOS、LVGL、MQTT等中間件一個app文件夾放應(yīng)用邏輯。這個結(jié)構(gòu)在多個項(xiàng)目中直接復(fù)制省了大量時間。9.3 嵌入式架構(gòu)師需要具備哪些能力從工程師到架構(gòu)師差距不在寫代碼而在設(shè)計能力。架構(gòu)師要能根據(jù)需求選型芯片、設(shè)計軟件架構(gòu)、劃分任務(wù)和模塊、定義接口、評估資源和風(fēng)險。還要懂成本、功耗、認(rèn)證、量產(chǎn)。具體來說需要具備扎實(shí)的C語言和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)、熟悉至少一種RTOS和一種Linux、懂硬件原理圖和PCB基本知識、會看芯片手冊和協(xié)議文檔、有多個完整項(xiàng)目的落地經(jīng)驗(yàn)、能帶團(tuán)隊(duì)和做技術(shù)決策。這個目標(biāo)不是一兩年能達(dá)到的但只要你沿著“做項(xiàng)目→總結(jié)→優(yōu)化→再做更復(fù)雜的項(xiàng)目”這個循環(huán)走五到八年是可以摸到架構(gòu)師門檻的。關(guān)鍵是不要停留在“只會點(diǎn)燈”的階段要主動挑戰(zhàn)復(fù)雜項(xiàng)目主動復(fù)盤和沉淀。我個人在實(shí)際操作中的體會是嵌入式入門最快的路徑不是看視頻而是買一塊板子定一個項(xiàng)目逼自己在兩周內(nèi)做出來。過程中遇到問題就查、就問、就試這種“問題驅(qū)動”的學(xué)習(xí)效率比按部就班高得多。踩過的坑越多成長越快。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
91熟女网| 色婷婷综合网站| 欧亚日韩综合精品国产| 亚洲蜜臀懂色| 日日夜夜国产综合| 强上我不卡卡| 一本一道人妻久久一区二区三区 | 久久精品人妻一区二区| 嗯嗯嗯啊啊啊操的我好爽| 熟女人妇一区二区三区| 日本操逼视频不卡直接放| 嗯嗯不要 视频| 亚洲九九爱| 欧美少妇第一页| 国产一区二区三区精品观看啪| 国产一区二区三区免费视频在性观看| 色网在线视频观看免费| 老司机福利青青草| 亚洲另类春色| 无码操逼视频一下| 草草电影院| 亚洲图片91| 噜噜瑟| 白丝少妇一区二区| 少妇三P| 精品无码一区二区| 台湾佬中文娱乐自偷自拍| 开心婷婷五月| 日韩精品99999| 色爱国产| 精品久久久无码| 91久久精品蜜臀| 激情久久av一区av二区av| 人人摸人人添人人操| 国产精品激情久久久久久久| 久久亚洲精品成人av| 国产欧美岛国精品一区| 人妻乱仑一区二区三区| 午夜一区| 男生女生啊啊啊啊| 国产精品高朝久久久久久久| 婷婷激情四射| 日韩欧美中文日韩欧美色| 人人做天天爱| 亚洲欧美国产其他二区| 深夜操逼网| 婷婷日韩一区二区三区中文字幕在线| 91丝袜美女| 亚洲自拍另类丝袜综合| 国产一区二区久久| 国内外毛片在线观看| 可乐操亚洲蜜911| 亚洲资源吧| 试看60秒 爽| 伊人热综合| 欧美视频在线第3页| 男人天堂一区二区| 亚洲免费日韩在线一区二区| 很狠操| 中文区中文字幕免费看| 国产不良强奸视频免费看| 男人的天堂午夜av| 五月婷婷综合在线| 91网18| 亚洲综合 欧美| 久操免费视频| 亚洲激情在线观看一区| 国产精品视频白浆免费| 狠狠躁天天躁日日躁| 风月影院男女十八禁| 天天日天天干天天摸天天操| 国产操伦| 天天日天天色| 久久久久久久久国产| 色噜噜日韩精品| 91老熟女视频| 久久精品色欧美aⅴ一区二区| 亚洲色图激情小说| 97欧美色| 内射小黄片| 综合五月婷婷| 国产精品久久久久久久久久久久久久久久 | 欧洲色| 中文字幕视频2区| 男人把坤坤插入女人的下体| 亚洲男人电影天堂| 丰满人妻一区二区三区大胸懂色| 久久综合日韩亚洲欧美| 香蕉人欧美综合| 粉嫩粉嫩一区性色AV片| 青青草日逼视频| 国产精品一区二区麻豆| 超碰碰激情97+久| AV女资源| 日本午夜久久电影| 亚洲资源网| 日本视频在线中文字幕| 巨爆乳肉感一区二区三区竹菊影视| 丁香六月婷婷久久综合| 91久久婷婷| 狠狠色狠狠色狠狠五月| 97干在线看| 色妺妺AⅤ| 精品性爱无码在线播放| 亚洲自拍欧美色综合| 精品人妻一区二区三区在| 黄aaaaaaaaaaaaaaaaaa色网站| 日本天天吊| 精品无av| 国产精品电影| 欧美丝袜中文字幕07在线| 99在线无码精品秘 入口黑人| 2019AV天堂| 亚洲 在线| www久久99| 麻豆色99999| 一级特级aaaa毛片免费观看| 婷婷九月国产| 操操操日本的逼| 色大师网站www永久网站视频| 久久久久久九九九九九| 99少妇精品视频| 色淫网站优优视频| 久久久一区二区三区四曲免费听| 亚洲欧美另类图片| 97国产色综合| 亚洲无码一二三区| 国产成人无码啪| 亚洲免费97免费| 秋霞成人做爱| 强奸熟女一区二区三区 | 中文字幕片| 韩国三级一线观看久| 女人妻一区| 日韩 国产 欧美自拍| 久久久久国产亚洲一区欧美色图日韩| 福利视频香蕉免费一区二区在线| 国产无遮挡| 澳门黄片一香蕉视频| 91亚洲影院综合| 欧美片第一页| 97精品国产精品免费观看| 国产精品探花色| 日韩精品人妻中文字幕久久久| 久久成人国产精品| 亚欧成人综合影院| 一级特黄aaa大片在线观看成人一级片在线观看| 伊人色综合网| 大香蕉乱级| 91人妻视频在线| 无码高清操逼| 五十路人妻在线| 欧美日韩第一页| 97se亚洲综合自| 91狠| 国产成年女人免费视频播放a| 后入内射蜜桃臀| 激情网色| 欧美日韩色| 北京专精特新企业招聘信息| 天天干天天燥| 怡春院久久| 国产精品久久久久久夜夜夜| 国语国产操逼伊人AV网| 狠狠爱大香蕉| 中日韩久久久免费看| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 久久九九国产精品| 9久在线视频只有精品| 99国产精品久久久在线播放| 丁香五月综合| 91人妻Pr| 亚洲一级性爱视频免费看| 人妻熟妇一区二区三区| 大香蕉琪琪日本女优不卡| 五月综合视频| 亚洲中文字幕精品久久久久久直播| 日韩少妇无码| 中文字幕第7页| 天天澡天天爽日日av| 一区二区 韩日AV| 亚洲中文一区二区三区| 国产福利精品98视频| 欧美日韩精品青青| 久操网在线| 嗯啊不要啊啊在线观看视频| 国产一级片| 蜜乳AV一区| 人人么人人操| 色99999| 欧美操逼录像国产黄色国产| 久草精品视频| 欧美一区二区成人一卡| 60秒试看最爽10分钟网站| 天天爱天天操| 涩五月婷婷| 柠檬AV导航| 夜间福利片1000无码| 国产人妖的免费的视频| 性色av大全| 97超碰色色| 精品国产乱码久久久影院| 97精品视频免费| 欧美美女自慰一区二区三区| 99久re热视频精品98| 久操凹凸视频| 一级特级aaaa毛片免费观看| 日韩精品一区二区三区色欲 | 久久精品老司| 亚洲揄拍网| 精品国产网站| 亚洲国产一区二区三区在线 | 日韩大香蕉AV影片| 国产97色在线 | 亚洲| 97在线日韩中文字幕| 国产精品乱码久久久、久久| av橘色网站| 亚洲 欧美 日本 国内 首页| av草草在线电影| 欧美在线综合| 久久久精选| 色爱天堂| 乱伦强奸区日韩| 亚殴在线| 欧洲中文字幕| 综合视频91| 九99久久| 久久产精品一区二区三区电影| 欧美一二三| A 天堂| 日本色色视频网站| 日本视频一区二区三区| 99综合| 99999久久久久9国产精品| 精品国产一区二区三区久久久蜜臀| 偷窥自拍亚洲色图| 成人十八禁日韩欧美一二三| 亚洲男人天堂2| 天天综合站| 91人人操| 欧美成人AⅤ大片在线观看| 91人妻做a观看视频| 把腿张开老子CAO烂你| 99热这里是精品| 人妻夜夜爽天天爽麻豆三区网站 | 一本色道久久综合狠狠操| 久久精品噜噜噜成人看免欧美大片| 99久久99九九99九九九| 熟女乱伦A| 无套内射性感少妇视频| 蜜桃久久久久久久| 91青青| 五月天久久综合网| 超碰人人草| 中文字幕视频一区视频二区| 婷婷探花久久精品一区| 大学生美女口爆| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 91伊人久| 啊啊啊操一区| 亚洲91射| 国产精品久久久久亚洲av| 五月天色综合| 大香蕉92| 九月丁香婷婷色| 欧美精品人妻视频| 好吊色青靑草| 中文字幕日本久久| 亚洲熟女少妇免费视频| 黄色AAAAA欧美| 国产黄a三级三级三级av在线看| 97免费视频在线观看视频| 日韩猛交| 综合网色| 欧美色图校园春色| 中国亚洲呦女专区| 四季av一区二区凹凸精品小说| 亚洲无码精品AV久久久| 黑丝少妇在线观看| 国产熟女无套内射| 婷婷五月天成人网| 操人妻视频| 日韩一区二区三区四区五区| 欧美人妻另类在线| 亚洲国产欧美一区二区潘金莲 | 中文字幕av片| 在线观看精品国产免费| 麻豆色约约| 欧美性爱伊人| 日日骚精品视频| 不卡av在线中文字幕| 800zy一区二区| 日本色婷婷| 中文字幕一二三av| 97人人超| 亚洲资源站| 五月天综合网| 欧美性高潮| 婷色五月| CCYY草草影院地址入口| 熟女一区二区| 变态乱伦伪娘灌肠一区二区| 色老牛| 久久男人精品| 蜜臀无码一区二区| 操一区| 欧美日韩人妻精品系列一区二区三区| 欧美啪啪女女| 最新AV在线| 久久久久久中文字幕中文字幕最新| 综合亚洲欧美| 欧美三级一级| 成人影院永久免费观看网址| 欧美 牲| AV不卡在线| 精品女同一区| 96精品在线| 亚洲最新Av| 97色97好| 久久色人体 | 精品一区96| 亚洲高清无毛一区二区| 青青草女人天天干| 殴美,日韩国产伦精品| 久久久久亚洲熟妇熟女| 欧美大色交| 国产无马av| 久久69| 97久久超碰国产网站| 成人性爱av.com| 97超碰色中文字幕| 天堂九九九九九九九九九| 不卡码视频| av在线免费一区二区| 久99在线免费观看视频| 97色在线观看| 九九久久精品| 7777奇米影视久久| 成人三级片一区二区三区视频| 91ise欧美| 亚洲AV性爱电影| 91少妇人妻| 91色色综合| 天天综合网~69| 四虎国产精品永久地址入口| 麻豆天美在线| 亚洲色情在线影视| 中文字幕91综合| 国产福利小视频高清在线观看| 粉嫩av一区二区三区天美传媒 | 欧美色图 色综合图| 亚洲一本色码中文字幕| 99国内精品| 欧美丰满熟妇XXXX性ppX人交| 女性喷水高潮在线观看| 不卡视频一区蜜桃视频 | 欧美91精品国产自产| 男人的亚洲天堂| 超碰在线974| 久久这里只精品99re66图| 日逼逼免费看| 国产拍偷精品网站| 亚洲se91| 亚洲精品少妇| 国产精品一区在线播放| 狠狠爱夜夜干| 色香综合天天影视综合 | 国产欧美精选自拍一区| 一级性爱视频免费观看| 亚洲精品99999| 日本一卡二区在线| 欧美性Fer办公室秘书| 五月开心久久AV官网| 午夜情侣自拍网站| 九九热九九热| 97精品国产97久久久久久| 99热自拍| 久久综合99| 夜夜操狠狠操| 玖玖97综合| 艹我哪美一区无码| 又黑又大又粗| 少妇高潮99p| 欧苏综合色综合| 91国产精品在线看| 亚洲精品819| 欧美中文字幕男人天堂久久精品| 亚州色交| 日本免费一区二| 116美女午夜| 无码99| 91黑丝少妇| 九九久久一区二区三区| 青青草国产亚洲精品久久| 欧美熟妇视频| 91综合国产精品| 亚洲综合69| 国产蜜臀在线| 少妇三p| 日韩少妇无码| 9丨亚洲一区二区在线| 操www| 欧美日韩操操操| 色官网在线| 啪啪啪综合网| 久久久啊啊| 九九自拍伦理| 久久久久久久唑| 国产又粗又大硬免费色网视频| 日本羞羞的视频在线播放| 狠狠色噜噜狠狠狠狠2018| 人人 操人人 操人人| 亚洲精品无码久久AV| 韩国三级理论在线| 操九九九九九九| 免费网站观看www在线观| 欧美传媒一区| 69精品| 国产一级特黄大片处女| 色色色999| 神马久久久久眼| 欧洲精品人妻| 久操免费观看| 欧美十八禁导航成人| 亚洲欧洲另类| 人人超碰在线观看黄| 日韩精品资源| 综合国产影视三级| 97天堂| 97久久精品国产| 欲色啪| 麻豆国产97在线| 色青青久久影视| 亚洲综合色男人网| 婷婷五月天色网| 天天看夜夜看日日干| 亚洲欧美日韩精品久| 夜夜高潮夜夜爽高清视频一| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 九色 蝌蚪 熟女自 | 99中出在线| 97草草| 久久丁香久草综合网| 女人双腿搬开让男人桶| 中文字幕超碰CAO| 亚洲日韩天堂| 色小视频蜜乳| 九一国产精品| www.av在线视频| 国内黄色精品| 91操熟女| 亚州色图第三区| 日本精品一区二区三| 超碰97人妻免费在线| 大香樵伊人网| 96精品久久| 日本在线激情一区二区三区| 91超碰碰在线| 国产不良强奸视频免费看| 久久黄黄| 亚洲精品少妇| 黄页18禁| 视频不卡中文字幕| 中文字幕视频在线观看一区二区| 国产精品久久久久久久久久久久久久吹| av绯色| 亚洲一区二区 麻豆传媒| 国产无码精品成人| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 伊人影院综合是一个与深夜成人在线| 91五月天| 香蕉久久AⅤ...| 久久一二三四不卡| 亚洲小电影免费涩涩成人在线高清| 中文字幕 av v| 欧美性暴力| 色综合98| 成人小说另类在线| 亚洲一二三四区机械| 俄罗斯及免费在线看| 一本一道人妻久久一区二区三区| 97欧美| 精品久久久av| 欧美一级特黄淫片在线观看| 成人天天爽| 人人操人人操草草| 精精品人妻一区二区三区| 五月天伊人| 精品一级毛片在线观看| 大香蕉欧美日韩| 十八禁的黄污污免费网站| 97在线资源| 婷婷伊人| 伊人影院日本| 久色99999| 四虎影院成年人片| 蜜臀在线视频| 久久大陆| 精品国产精品一区二区| 91人人| 大香蕉十区| 岛国网址国产 | 国产亚洲精品美女久久久| 99国内熟女露脸视频| 欧美日韩性爱操大逼| AV女优男人的天堂| 蜜桃色院一区久久 | 91在线观看,天天综合| 亚码激情| 91爆操视频| 天天日天天干少妇日| 中文字幕日韩精品一区二区三区| 亚洲日韩国产欧美综合v| 变态综合色| 久操在97| 亚洲欲色9532548967一区| 天天色天天干天天爱| 亚洲黄网在哪免费看| 狠狠爱夜夜| 91麻豆一二三区| 九九无码| 日韩免费看黄片| 26uuu最新| 欧美色吧综合| 大香蕉色欲AV| 91人妻视频在线| 午夜男人一级A片7777| 另类亚洲一区二区三区| 欧美综合色,www| 欧美国产操逼| 神马久久久久久久久久| 国产又粗又又黄又猛| 99精品欧美一区二区三区桃色| 久久91| 9久9久9久9久视频网站| 欧亚成人在线视频| 色婷婷在线视频精品导航| 免费看日产一区二区三区| 色天使亚洲综合在线观看| 加勒比综合网| 极品肉射| 久草这里只有精品| 91中文字幕在线观看| 99精品伊人| 日本精品88888888| 91neishe| 欧美专区第一页| av中文在线| 国产又大又硬又长又粗| 青娱乐国产精品| 国产精品午夜高潮呻吟久久av| a人欧美综合天堂麻豆| 一级二级在线观看| 密臀在线免费观看| 日韩紧密久久| 欧美在线色图| 99999精品成人| 91人妻超碰| 老鸭窝亚洲毛片| 东京日日夜夜| baisiav| 在线观看AV不卡| 久久国产视频性吧| 激情四射婷婷四五月天| 精精夜夜| 丁香五月天久久精品视频一区二区三区| 偷拍网站久久男女男| 欧美1727免费观看视频| 精品国产乱码久久久久久久久1 | 激情文学欧美| 伊人 俄罗斯 a v| 亚洲熟久久| 正在播放国产精品一区| 人人做,人人操,人人摸| 少妇一级婬片免费放一级a性色.| 久久黄色性爱视频| 人看人人摸人人操| 成人看片网站| 密臀在线免费观看| 1000午夜黄色| 91在线丝袜| 91中文字幕制服丝袜免费视频| 超碰97丝袜| 蜜臀无码视频在线观看| 大黄片做爱的大的| 成人av动漫在线观看| 国产在线76页| 国产成人主播| 蜜臀99久久精品| 91美女小视频| 99这里只有精品国产| 黄色区免费观看中文字幕| 亚洲女毛多水多21P| 婷婷久久五月天| 高清不卡国产| 91青青在线视频| 国语少妇精| 一本色道久久天天射天天干| 亚洲欧洲日韩国产自在线| 91丝袜美女国产| 60秒试看最爽10分钟网站| 超碰69| AV中亚| 精品人妻av在线播放| 天天日天天色| 国产乱子伦一区二区三区免看| 快播久久人人aV| 岛国黄片网站| 91美女中出| 国产精品视频| 少妇色| www网站黄| 91天美传媒精品| 婷婷激情五月综合| 成人性爱av| 熟女丰满人妻一区| 综合网亚洲1| 黑人美精品 A片| 精品四五区| 亚洲高清在线se| 人人操 欧美| 五月丁香六月| 国产三级中文字幕粉嫩| 国内偷自视频区视频综合| 黑丝少妇| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 亚洲交换| 国产精品一区午夜福利| 超碰激情808| 丝袜美腿av女优在线| 92午夜免费福利视频| 99国产精品免费| 免费操逼91| 人妻AV在线| 久久久久婷婷精品av电影| 国模私拍一区二区三区神乳| 97日本超碰综合| 色97干| 九月婷婷久久| 亚洲图片欧美偷拍| 99精彩视频| 久久激情视频| 亚洲五月婷| 少妇九九九九| 婷婷91| 亚洲a色| 超碰99在线| 亚洲精品日韩国产欧美| 98超碰日本| 日韩精品1区2区中文字幕| 欧美天堂超碰97| 天天综合网日韩7799| 中文字幕AV片| 亚洲αv一区二区三区| 美女干逼2| 男人a天堂手机在线版| 97就爱干| 日韩中文字幕二区| 欧美色吧综合| 天堂岛av| 日韩性爱长视频免费| 毛片17S| 岛国1区2区3区在线观看| 好看的91视频| 天天弄天天操| 激情文学亚洲| 日韩在线视频1234| 日韩av免费一级电影| 日韩不卡网操逼中文字幕日韩| 国产精品婬乱一级毛片彝族| 国产AV天美传媒一区二区三区 | 丝袜色综合| 欧美在线视频99| 人妻夜夜爽天天爽三区麻豆AV网站| 另类图片五月| 精品午夜福利国产一区二区在线观看 | 天天爽入口| 97久久精品亚洲| 一级人妻性爱视频| 久久女女| 素人美腿视频网站| 欧美国产欧美在线观看| 超碰导航97| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 99精品伊人| 婷色五月| 亚洲图片激情综合另类| 久久99干一本高清| 色呦呦、国产精品| 26uuu国产免费观看| 大香蕉欧美| 日本三级韩国三级美三级91| 精品国产乱码久久久久久久久1 | 亚州伊人色综台| 370p日韩欧美亚洲精品| 日天天九九天堂666| 91久久伊人婷婷青青草| 激情色播| 中文字幕精品一区二区精| 久 久无码人妻AV| 免费97视频| 青青草密桃在线播放| 2021久久国产综合精品青草| 我要色综合网| 夜夜嗨老熟女AV一区二区三区| 青青草自拍视频在线播放| 中文字幕123| 秋霞一级鲁丝片A片| 美女好片色日本| 亚洲天天影视综合网| 91oumei| 久久香蕉国产线看观看猫咪av| 99婷婷一区二区| 怡红院成人视频| 99re热| 亚州色站 日韩电影| 五月婷婷色| 1禁看欧美黄片免费看| 台湾一区国产高清在线| 色图综合| 熟女高潮精品一区二区| 九九九九免费高| 欧洲射精91| 欧美亚洲综合色| 日本99视频| 美女被艹尤物视频| 国产激情av女片自拍| 中国一级特黄大片护士| 人妻性爱一区二区| 婷婷久月| 美女91网站| 少妇精品久久| 成年人黄色| 天天综合中文字幕 91| 亚洲做性| 91痴汉| 久久天堂网| 影音资源男人日韩| WWW美腿丝袜香蕉中文| 亚洲精品一卡二卡三卡福利视频网站| 好吊色一区| 久久久久久久78| 色眯眯射| 偷拍在线观看视频| 久久久久久69国产一区二区| 丰满人妻被猛烈进入中| 岛国黄片网站| 高清无码一区二区三区| 久久青青草原免费视频| 久久美女国产| 99精品成人免费看| 二色av| 混色激情av| 色噜噜国产在线| 安徽熟妇视频| av久日| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 中文字幕日韩综合| 亚洲熟妇图片| 亚洲精品国产精品乱码不卡| 日韩78m视频| 91激情国产| 四方色播| 五月丁香六月综合缴清无码 | 天天情欲宗合网| 亚洲成人在线乱码色午夜| 91性情| 免费看黄片现成| www.大香| 67914亚洲精品| 中文字幕视频一区视频二区| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 国产麻豆一区二三区| 日本二区不卡| 无遮挡男女激烈动态图| 园内精品自拍视频在线播放| 99久久精品国产高潮| 久久久九97| 国产小炒后入式| 天天肏夜夜肏| 性videos欧美熟妇hdx| 户外裸露刺激视频第一区| 久久XX| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 亚洲性综合| 色五月av| 口爆吞精在线观看| 久悠悠av| 国产精品一区二区麻豆| av网站免费线看| 91干熟女| 久久久久亚洲一区女同性恋中文字幕| 国产精品一二三| 我要去看2个日本美女.com曹逼| 婷婷丁香五月天亚洲天堂网| 丰满欧美少妇| 欧美综合自拍亚洲综合图| 又大又大又大又粗爽高潮观看| 色色福利| 韩日男人的天堂| 大逼色网站| 日日日日做夜夜夜夜无码| 99国产人成精品| 天天情欲宗合网| 三级精品三级在线观看| 中文字幕精品一区二区精品| 素颜老阿姨乱情色| 日韩激情电影中文字幕| 亚洲丁香花色| 中国熟女91| 操www| 超碰激情808| 男人综合网| 亚洲综合中文字幕有码| 青青草乱入乱欲视频在线观看| 久久超碰97| 婷婷五月综合在线| 偷拍自拍在线视频观看| 精品一区96| 骚女天天综合网| 97精品综合| chaopen97久久| 日本一区二区成人在线| 超碰中文字幕人妻草一区| 国产亚洲色停停久久99精品91| 狠狠干狠狠色| 亚洲色婷婷综合久久一区二区三区| 污污汅18禁网站在线永久免费观看 | 色踪合AV| 玖玖玖玖精品国产剧情| 日本东京热大香蕉a片| 日韩操啪| 日韩99神马视频片| 欧美真人抽搐一进一出gif| 日本在线不卡123| 亚洲se91| 久久久精久久久| 草草草视频在线免费看| 韩国一区二区精品亚洲| 加勒比综合| 天天影视网综合少妇| 日韩一二三区| 亚洲有码 欧美精品| 天天网综合| 69AV女优男人的天堂| 亚洲春色一区二区三区| 超碰碰97| 亚洲无码免费看| 久操| 婷婷五月影院| 女人综合网| 亚洲综合影片| 东北丰满熟女国产一区| 肉丝中文无码高清| 国产热RE99久久6国产精品首| 97中文字幕一区| 99热精品在线| 日本操逼视频免费| n1038 一二三区| 日韩无码三级影院| 国产中文字幕在线| 国产11页| 亚洲无无码αⅴ每日更新| 伊人aaa| 国产在线精品偷| 欧美人妻少妇| 欧美另类自拍| 免费av大片| 亚州性色| 又黄又粗又硬又长又大| 国产熟女免费观看久久| 97超碰超| 激情文学欧美| 欧美综合区| 久久产精品一区二区三区电影| 看黑丝美女操逼青青网站| 日本色色色视频| 丰满人妻一区二区三区免费| 用力操死我| 日本操BAV| 亚洲无码视频免费在线观看网址!| 亚洲美女色图| 五月天婷婷小说| 中文字幕一二区二三区人妻专区| 91亚洲狠狠色| 色综合加勒比四四季| 日本一区二区三区四区免费观看| 久久9精品| 伊蕉97蜜桃97狠狠综合干| 破苞ⅩXXX性无码动漫无码| 一二三区操逼国产91| 四虎免费视频| 91女人的网站| 精品一区二区亚洲国产| se吧提供91精品国产91久久久久久| 精品9999| 欧美国产视频| 五月综合视频| 久久精品毛片免费不卡| 日韩三级伊人| 精品少妇高潮久久| 青青草字幕AV| 亚洲天堂女优在线| 超碰免费人人| 亚洲毛片一级带毛片基地| 成人一二| 中文字幕三四五区| 国产人妻精品一区二区三区秋霞| 成人熟女视频一区二区三区| 激情五月综合网| 精品中文字幕一区二区l - 百度| 成 人 A V免费视频在线观看| 天美传媒麻豆一区二区三区国产精| 和协影院中文字幕三区| 中文字幕在线观看AV| 99热精品在线在线| 手机看av网站在线看| 亚洲制服aⅴ中文字幕| 日韩有码 一区二区三区| 丰满人妻-区二区三区免费看 | 爽极品影院| 最新无码国产| 97超碰色| 69精品| 国产400孕妇孕交群| 综合欧美色图| 99精品无码| 97jingpin| 啊嗯嗯啊好大好爽| 性交一区二区在线播放| 日本精品性生活久久久| 久插综合| 妇女视频网站| 九热大香蕉| 天天天乱色综合全| 91夜夜蜜桃臀1区2区3区| 国产白嫩精品久久| 中文字幕在线观看第二页| 日本有码影片下载 | 91精品国产91综合久久蜜臀| 97精| 国产 日韩 欧美一区| 亚洲综合欧美| 精品国产三级av韩国在线| 日本国产亚洲一区在线观看| 欧美精品二区视频在线| 麻豆国产精品午夜视频| 一级AV性爱| 国产精品久久久久无码A√| 中国国产精品一区视频| 天堂中文日本在线观看| 欧美大香蕉专区网| 日韩在线观看中文字幕视频| 99操视频| 欧美性爱97超碰| 国产美脚女优尤物在线观看| 亚洲永久AV无码精品秋霞| 日日骚av| 亚洲国产97| 青娱乐老司机视频| www..com操老师| 色小视频蜜乳| 黄色网址久久精品欧美喷水| 亚洲不卡av在线| 99蜜桃臀久久久欧美精品网站| 久操影视| 亚洲欧洲日韩中文字幕一区| 亚州综合在线| 欧美性生活免费网| 欧美日韩性爱视屏免费看了| julia高潮后不停追击中出| 无码一区二区三区四区五区六区七区八区九区十区视频 | 熟女一区二区三区四区| 亚洲熟妇A V黑人| 久久性爱视频99| 中国乱伦一区二区| 香蕉在线一区二区三区| 色大师网站www永久网站视频| 狠狠爱夜夜干| 天天日天天干天天操| 又大又长又粗又爽又黄| 91日本在线观看| 精品人妻一区二区三区-国产精品| 青青伊人久久| 在线天堂资源亚洲| 亚洲日本激情| 欧美性爱五月天| 秋霞午夜视频一区二区| 99少妇| 激情抓乳插进去啪啪啪日韩| 婷婷精品| av东京热男人的天堂| 熟妇女伦乱视频| blacked精品一区国产| 又黄又爽在线观看视频| 精品视频久久区| 97在线免费视频| 中国亚洲呦女专区| 日韩传媒在线| 啪啪自拍九九综合| 十八禁成人网站在线观看| 久都青青视频 | 男人的天堂网免费| 超碰97在线中文| 26uuu久久| A久久| 91 国产丝袜在线播放-百度| 日本成a人v网站在线观看| 美女黄频a美女大全免费皮| 九热大香蕉| 蜜臀中文字幕| 久9热| 欧美亚洲宗合色性图| 天天日天天操天天射河南省| 九九色影院| 亚洲综合一| 国产人妖的免费的视频| 丝袜制服字幕在线| 人妻丝袜美腿中文字幕| av九九| 色综合1991| 久久久久久亚洲中文| 亚洲A色| 激情综合网亚洲| 久久女人一区二区三区| 青青草好吊| 亚洲国产麻豆一区二区三区| 久久久久ab| 免费人成在线观看网站品爱网| 人妻在线臀日韩| 国产精品免费久久久久久久久久| 五月天激情小说| 91久| 日韩另类色图| 四虎影视欧美| 日韩在线76| 久久精品熟妇丰满人妻99| 婷婷在线视频| 久草这里只有精品| 日韩草久视频| 97超碰站| 久久伊人在线五区| 精品无码久久久久久久杏吧| 无码欧美有限公司| 一级乱伦网站| 欧美白嫩女HD| 天天草夜夜草高潮片| 伊人久久久日韩一区| 久久riav中文精品| 天堂网 主播 亚洲| 亚洲精品中文字幕一区在线视频| 97天天插| 超碰狠狠操| 亚洲国产97| yiren97| 欧美日韩一区二区三区四区蜜桃| 日本999精品| 日韩少妇一区二区三区| 欧美图片校园春色| 国产丝袜视频| 老熟妇乱轮| 欧美91在线+|+欧美| 久久九九视频九九视频| 欧美啪啪天堂| 99re这里只有精品中心播放| 热思思免费视频| s片在线观看| 亚洲天堂 视频你懂的| 易易A毛视频| 有码免费观看| 手机在线视频国内精品| 人妻夜爽夜夜爽| 97网址www| 日韩乱伦影音先锋| 9 1果冻精品视频| 中文字幕天天天天天| 综合在线导航一区| 婷婷性网| 亚洲av热热色| 午夜高清成人在线视频| 国产后入| 日韩操呦呦影院在线观看| 综合色色婷婷| 很很操在线| 插B在线观看| 宅男91视频在线播放| 污污汅18禁网站在线永久免费观看 | 欧美色网| 97视频新免费| 久久精品人体| 99热99在线播放激情| 欧美九九九九九| 六月婷婷一区二区三区| 久热免费视频| 操逼操逼视频操逼| 农村女一级毛卡片| 国产av色网| 亚洲欧美另类少妇精品| 国产精品青草综合久久| 无码区蜜乳| 91丝袜在线播放| 亚洲诱惑天堂 | 日韩性爱毛片操骚逼| 色与欲影视| 粉嫩久久久久| 午夜呻吟欧美| 99精品在线| 中文字幕123| 国产精品无码成人精品| 亚洲图片欧美偷拍| 锕锕好爽 死我在线观看| 亚洲AV资源| 色婷婷六月| 成人午夜小视频手机在线看| 91在线免费精品视频| 国内精品久9| 色网综合网| 日本日日色视频| 96精品在线| 9久热| 国产AV久久久蜜爱影集| 久久国产性爱| 亚洲AV无码乱码| 久久久96| 玖玖久久久| 超碰人人干天天射| 久久久三区二区一区| 美女黑人91神马| 国产美女精品| 男人的天堂激情| 欧美在线官网| 97天天爽| 亚洲一区深夜| 欧美九9 9 9| 色色色综合网| 人人操av| 五月天激情婷婷| 色综合色色| 天天做天天爱| 1024日韩| 成人欧美一区二区三区黑人一| www.丁香五月| 91久久久久久| 久久久久免费少妇| 精品超碰中文在线| 情侣开房子拍 日韩无码 女的很漂亮| 丁香五月激情五月| 日日夜夜天天| 久久久人体| 国产精品天美传媒| 精品久久久中文字幕不| 亚洲。日韩。欧美| 97激情97激情| 国产综合久久久鬼色| 熟妇精品juliaannAV| 亚洲成人色情五月天丁香花| 极品色电影院| 色网亚洲人| 国产精品久久久久婷婷二区次| 在线97视频|