99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

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

STM32 UART引腳復(fù)用配置詳解:從原理到實(shí)戰(zhàn)避坑指南

STM32 UART引腳復(fù)用配置詳解:從原理到實(shí)戰(zhàn)避坑指南 1. 從一次串口“失聯(lián)”說(shuō)起為什么我的STM32串口不工作了最近在調(diào)試一塊基于STM32F103的板子遇到了一個(gè)讓我折騰了大半天的“靈異事件”。我的項(xiàng)目里用到了USART1和USART2USART1通過(guò)PA9/PA10連接了一個(gè)GPS模塊USART2通過(guò)PA2/PA3連接了一個(gè)調(diào)試用的藍(lán)牙模塊。代碼寫(xiě)好了USART1收發(fā)GPS數(shù)據(jù)一切正常但USART2死活沒(méi)反應(yīng)示波器量TX引腳連個(gè)毛刺都沒(méi)有。我反復(fù)檢查了時(shí)鐘配置、波特率、中斷、DMA甚至懷疑是硬件虛焊把芯片都重新吹了一遍問(wèn)題依舊。最后在幾乎要放棄的時(shí)候我鬼使神差地翻開(kāi)了數(shù)據(jù)手冊(cè)的“Alternate function mapping”表格才恍然大悟——我犯了一個(gè)STM32開(kāi)發(fā)中非常經(jīng)典且隱蔽的錯(cuò)誤GPIO引腳復(fù)用功能配置錯(cuò)誤。具體來(lái)說(shuō)我初始化USART2時(shí)想當(dāng)然地認(rèn)為它的TX發(fā)送引腳固定是PA2RX接收引腳固定是PA3。于是我的代碼里只配置了GPIOA的Pin2和Pin3為復(fù)用推挽輸出和浮空輸入。但實(shí)際上對(duì)于STM32F103C8T6這款芯片USART2的TX信號(hào)除了可以映射到PA2還可以映射到PD5如果芯片有PD端口的話。問(wèn)題不在于此而在于我沒(méi)有在GPIO初始化之后明確地將這兩個(gè)引腳的功能“重映射”到USART2上。對(duì)于USART1、USART2等外設(shè)STM32的GPIO有一個(gè)“復(fù)用功能重映射”機(jī)制你需要告訴芯片“請(qǐng)把PA2和PA3這兩個(gè)物理引腳從默認(rèn)的普通GPIO模式切換給USART2外設(shè)使用”。這個(gè)操作就是通過(guò)配置“復(fù)用功能重映射寄存器”來(lái)實(shí)現(xiàn)的。這個(gè)坑讓我深刻意識(shí)到STM32的UART通用異步收發(fā)傳輸器配置遠(yuǎn)不止是開(kāi)啟時(shí)鐘、設(shè)置波特率、使能收發(fā)那么簡(jiǎn)單?!耙_復(fù)用”是隱藏在底層、卻足以讓整個(gè)通信鏈路癱瘓的關(guān)鍵一環(huán)。它就像連接CPU核心與外設(shè)接口的一座橋橋沒(méi)搭對(duì)數(shù)據(jù)流就過(guò)不去。今天我就結(jié)合這次踩坑經(jīng)歷和多年的項(xiàng)目經(jīng)驗(yàn)把STM32 UART的復(fù)用問(wèn)題掰開(kāi)揉碎了講清楚涵蓋從基礎(chǔ)概念、配置流程到高級(jí)重映射、常見(jiàn)坑點(diǎn)以及跨系列芯片的差異。無(wú)論你是剛接觸STM32的新手還是有一定經(jīng)驗(yàn)卻在此處栽過(guò)跟頭的開(kāi)發(fā)者這篇文章都能幫你建立起清晰、系統(tǒng)的認(rèn)知。2. 理解STM32的GPIO復(fù)用系統(tǒng)不止是“開(kāi)關(guān)”在深入U(xiǎn)ART復(fù)用之前我們必須先理解STM32的GPIO通用輸入輸出系統(tǒng)是如何工作的。你可以把一個(gè)GPIO引腳想象成一個(gè)多功能接口它背后連接著一系列復(fù)雜的數(shù)字電路開(kāi)關(guān)矩陣。2.1 GPIO的四種基本模式與復(fù)用功能每個(gè)GPIO引腳都可以被配置為以下幾種模式之一輸入浮空引腳處于高阻態(tài)電平由外部電路決定。常用于讀取按鍵、開(kāi)關(guān)狀態(tài)。輸入上拉/下拉在浮空基礎(chǔ)上內(nèi)部通過(guò)電阻連接到VDD上拉或VSS下拉提供一個(gè)默認(rèn)電平。避免引腳懸空時(shí)產(chǎn)生不確定的抖動(dòng)。推挽輸出引腳可以主動(dòng)輸出高電平接近VDD或低電平接近VSS驅(qū)動(dòng)能力強(qiáng)。這是最常用的輸出模式比如驅(qū)動(dòng)LED、控制繼電器。開(kāi)漏輸出引腳只能主動(dòng)拉低到地高電平狀態(tài)需要外部上拉電阻來(lái)實(shí)現(xiàn)。常用于I2C總線等需要“線與”功能的場(chǎng)合。那么“復(fù)用功能”是什么當(dāng)這個(gè)引腳不是用作普通的輸入或輸出即上述四種模式而是分配給某個(gè)特定的片上外設(shè)如UART、SPI、I2C、定時(shí)器等時(shí)它就工作在“復(fù)用功能”模式。此時(shí)該引腳的控制權(quán)從CPU的GPIO寄存器移交給了對(duì)應(yīng)的外設(shè)。例如當(dāng)PA9被配置為USART1_TX的復(fù)用功能時(shí)你向USART1的數(shù)據(jù)寄存器寫(xiě)入一個(gè)字節(jié)硬件會(huì)自動(dòng)將這個(gè)字節(jié)轉(zhuǎn)換成串行比特流從PA9引腳發(fā)送出去而不需要你手動(dòng)操作GPIO寄存器去翻轉(zhuǎn)電平。2.2 復(fù)用功能選擇器AFIO與GPIOx_AFRSTM32如何知道這個(gè)引腳要分配給哪個(gè)外設(shè)呢這依賴于兩個(gè)關(guān)鍵機(jī)制具體使用哪個(gè)取決于STM32的系列。對(duì)于STM32F1系列如F103即我踩坑的那個(gè)系列它有一個(gè)獨(dú)立的“復(fù)用功能I/O和調(diào)試配置寄存器”通常簡(jiǎn)稱為AFIO寄存器。這個(gè)寄存器里包含一個(gè)非常重要的子模塊“外設(shè)重映射寄存器”。例如AFIO_MAPR寄存器。你需要通過(guò)設(shè)置這個(gè)寄存器里的特定位來(lái)“重映射”某個(gè)外設(shè)的引腳到另一個(gè)位置或者使能默認(rèn)映射。是的你沒(méi)看錯(cuò)對(duì)于F1系列即使你使用默認(rèn)的引腳映射比如USART2用PA2/PA3有時(shí)也需要在AFIO寄存器中使能這個(gè)重映射實(shí)際上是不重映射但需要確認(rèn)該功能被開(kāi)啟。很多庫(kù)函數(shù)如標(biāo)準(zhǔn)外設(shè)庫(kù)的初始化流程里會(huì)默認(rèn)幫你開(kāi)啟這個(gè)使能但如果你是自己操作寄存器或者使用某些簡(jiǎn)化的HAL庫(kù)配置就可能漏掉這一步導(dǎo)致外設(shè)無(wú)法控制引腳。這就是我踩坑的根本原因我配置了GPIO為復(fù)用模式但沒(méi)有在AFIO中使能USART2的復(fù)用功能。對(duì)于STM32F4/F7/H7等更現(xiàn)代的系列它們引入了更靈活、更精細(xì)的**“復(fù)用功能選擇器”**。每個(gè)GPIO端口如GPIOA都有一組“復(fù)用功能寄存器”比如GPIOx_AFRL用于引腳0-7和GPIOx_AFRH用于引腳8-15。每個(gè)引腳對(duì)應(yīng)4個(gè)比特位可以編碼從0到15的16個(gè)“復(fù)用功能編號(hào)”AF0到AF15。芯片的數(shù)據(jù)手冊(cè)里會(huì)有一張龐大的表格告訴你每個(gè)外設(shè)如USART1_TX在某個(gè)引腳上對(duì)應(yīng)的AF編號(hào)是多少。例如對(duì)于STM32F407PA9引腳作為USART1_TX時(shí)其AF編號(hào)是AF7。你的初始化代碼就需要兩步1. 將GPIO模式設(shè)置為“復(fù)用功能”模式2. 在GPIOA-AFR[1]因?yàn)镻A9是第9個(gè)引腳屬于AFRH中寫(xiě)入AF7這個(gè)值。這種方式比F1的全局重映射寄存器更直觀也更容易管理多路復(fù)用。注意無(wú)論哪個(gè)系列在配置復(fù)用功能前必須首先開(kāi)啟對(duì)應(yīng)GPIO端口和所用外設(shè)的時(shí)鐘。這是STM32低功耗設(shè)計(jì)的要求默認(rèn)所有外設(shè)時(shí)鐘都是關(guān)閉的。忘記開(kāi)時(shí)鐘是比復(fù)用配置錯(cuò)誤更常見(jiàn)的初級(jí)錯(cuò)誤但癥狀類似。3. UART復(fù)用配置的完整流程與代碼實(shí)戰(zhàn)理論說(shuō)再多不如一行代碼。下面我以STM32F103標(biāo)準(zhǔn)外設(shè)庫(kù)和STM32F407HAL庫(kù)為例分別展示UART復(fù)用功能配置的完整、正確的流程。我會(huì)特別標(biāo)出容易遺漏的關(guān)鍵步驟。3.1 案例一STM32F103C8T6 配置USART2默認(rèn)PA2/PA3假設(shè)我們使用常見(jiàn)的標(biāo)準(zhǔn)外設(shè)庫(kù)。目標(biāo)是配置USART2波特率1152008位數(shù)據(jù)無(wú)校驗(yàn)1位停止位。// 步驟1開(kāi)啟相關(guān)時(shí)鐘絕對(duì)不能忘 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // 開(kāi)啟GPIOA時(shí)鐘 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); // 開(kāi)啟AFIO時(shí)鐘這是關(guān)鍵 RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); // USART2掛在APB1總線 // 步驟2配置GPIO引腳為復(fù)用功能模式 GPIO_InitTypeDef GPIO_InitStructure; // 配置PA2為USART2_TX復(fù)用推挽輸出 GPIO_InitStructure.GPIO_Pin GPIO_Pin_2; GPIO_InitStructure.GPIO_Mode GPIO_Mode_AF_PP; // 復(fù)用推挽輸出 GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz; GPIO_Init(GPIOA, GPIO_InitStructure); // 配置PA3為USART2_RX復(fù)用浮空輸入 GPIO_InitStructure.GPIO_Pin GPIO_Pin_3; GPIO_InitStructure.GPIO_Mode GPIO_Mode_IN_FLOATING; // 注意對(duì)于F1的UART RX常用浮空輸入 // GPIO_Mode_AF_INPUT 模式在某些庫(kù)中也可用但浮空輸入是通用做法。 GPIO_Init(GPIOA, GPIO_InitStructure); // **步驟3關(guān)鍵配置AFIO的重映射此例為不重映射但需確認(rèn)設(shè)置** // 對(duì)于USART2默認(rèn)就是PA2/PA3我們不需要重映射到其他引腳。 // 但是為了確保AFIO模塊正確路由信號(hào)最好有時(shí)是必須清除可能的重映射位。 // 查看數(shù)據(jù)手冊(cè)USART2的重映射由AFIO_MAPR寄存器的位3控制。 // 0: 不重映射 (USART2_RX/PA3, USART2_TX/PA2) // 1: 重映射 (USART2_RX/PD6, USART2_TX/PD5) GPIO_PinRemapConfig(GPIO_Remap_USART2, DISABLE); // 明確禁止USART2的重映射 // 步驟4配置USART2外設(shè)本身 USART_InitTypeDef USART_InitStructure; USART_InitStructure.USART_BaudRate 115200; USART_InitStructure.USART_WordLength USART_WordLength_8b; USART_InitStructure.USART_StopBits USART_StopBits_1; USART_InitStructure.USART_Parity USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART2, USART_InitStructure); // 步驟5使能USART2 USART_Cmd(USART2, ENABLE);核心要點(diǎn)開(kāi)啟了RCC_APB2Periph_AFIO時(shí)鐘。這是很多教程會(huì)遺漏的一步?jīng)]有AFIO時(shí)鐘你對(duì)重映射寄存器的操作無(wú)效。使用了GPIO_PinRemapConfig(GPIO_Remap_USART2, DISABLE)。這行代碼明確地告訴AFIO模塊“我不需要對(duì)USART2進(jìn)行引腳重映射”。在有些開(kāi)發(fā)環(huán)境或庫(kù)版本中這個(gè)操作可能不是強(qiáng)制的但顯式地、明確地配置它是最保險(xiǎn)、最專業(yè)的做法可以避免因寄存器上電默認(rèn)值或庫(kù)函數(shù)內(nèi)部邏輯不清晰導(dǎo)致的問(wèn)題。我踩的坑就是因?yàn)槿鄙倭诉@行“保險(xiǎn)”代碼。3.2 案例二STM32F407ZGT6 配置USART1PA9/PA10AF7現(xiàn)在我們使用更流行的HAL庫(kù)在STM32F4系列上配置USART1。// 步驟1定義句柄和初始化結(jié)構(gòu)體 UART_HandleTypeDef huart1; // 步驟2在初始化函數(shù)中配置 void MX_USART1_UART_Init(void) { // 步驟2.1配置GPIO引腳和復(fù)用功能 GPIO_InitTypeDef GPIO_InitStruct {0}; // 開(kāi)啟時(shí)鐘 __HAL_RCC_GPIOA_CLK_ENABLE(); // GPIOA時(shí)鐘 __HAL_RCC_USART1_CLK_ENABLE(); // USART1時(shí)鐘 // 配置PA9為USART1_TX GPIO_InitStruct.Pin GPIO_PIN_9; GPIO_InitStruct.Mode GPIO_MODE_AF_PP; // 復(fù)用推挽輸出 GPIO_InitStruct.Pull GPIO_NOPULL; GPIO_InitStruct.Speed GPIO_SPEED_FREQ_HIGH; GPIO_InitStruct.Alternate GPIO_AF7_USART1; // **關(guān)鍵指定復(fù)用功能編號(hào)為AF7** HAL_GPIO_Init(GPIOA, GPIO_InitStruct); // 配置PA10為USART1_RX GPIO_InitStruct.Pin GPIO_PIN_10; GPIO_InitStruct.Mode GPIO_MODE_AF_PP; // 對(duì)于F4的UART RX也常用復(fù)用推挽但內(nèi)部會(huì)自動(dòng)切換方向 // 另一種更準(zhǔn)確的配置是GPIO_MODE_AF_INPUT但HAL庫(kù)中GPIO_MODE_AF_PP是通用做法。 GPIO_InitStruct.Pull GPIO_NOPULL; GPIO_InitStruct.Alternate GPIO_AF7_USART1; // **關(guān)鍵同樣指定AF7** HAL_GPIO_Init(GPIOA, GPIO_InitStruct); // 步驟2.2配置UART參數(shù) huart1.Instance USART1; huart1.Init.BaudRate 115200; huart1.Init.WordLength UART_WORDLENGTH_8B; huart1.Init.StopBits UART_STOPBITS_1; huart1.Init.Parity UART_PARITY_NONE; huart1.Init.Mode UART_MODE_TX_RX; huart1.Init.HwFlowCtl UART_HWCONTROL_NONE; huart1.Init.OverSampling UART_OVERSAMPLING_16; if (HAL_UART_Init(huart1) ! HAL_OK) { Error_Handler(); } } // 步驟3HAL_UART_Init函數(shù)內(nèi)部會(huì)調(diào)用一個(gè)回調(diào)函數(shù)HAL_UART_MspInit用于MCU特定的初始化。 // 我們上面的GPIO配置實(shí)際上應(yīng)該放在這個(gè)回調(diào)函數(shù)里這是HAL庫(kù)推薦的架構(gòu)。 // 但為了流程清晰這里將GPIO和UART參數(shù)初始化放在了一起。在實(shí)際項(xiàng)目中請(qǐng)遵循HAL庫(kù)的MSP回調(diào)模式。核心要點(diǎn)對(duì)于F4系列核心在于GPIO_InitStruct.Alternate這個(gè)成員。你必須準(zhǔn)確填寫(xiě)數(shù)據(jù)手冊(cè)中查到的AF編號(hào)此處是GPIO_AF7_USART1。HAL庫(kù)已經(jīng)為你定義好了這些宏。時(shí)鐘開(kāi)啟方式使用了HAL庫(kù)提供的宏__HAL_RCC_xx_CLK_ENABLE()更加簡(jiǎn)潔。F4系列沒(méi)有F1那個(gè)全局的AFIO重映射概念每個(gè)引腳的復(fù)用功能通過(guò)AFR寄存器獨(dú)立選擇配置更直觀但需要查表確認(rèn)AF號(hào)。4. 引腳重映射當(dāng)默認(rèn)引腳被占用時(shí)如何靈活應(yīng)對(duì)在實(shí)際項(xiàng)目中默認(rèn)的UART引腳可能因?yàn)镻CB布局、外設(shè)沖突或其他功能需求而被占用。這時(shí)就需要使用“重映射”功能將UART信號(hào)切換到另一組備用引腳上。4.1 STM32F1系列的重映射操作F1系列的重映射是“套餐式”的即一個(gè)外設(shè)的所有信號(hào)線TX、RX、CK、CTS、RTS作為一個(gè)整體被映射到另一組引腳上。例如USART1默認(rèn)映射TX/PA9 RX/PA10 CK/PA8 CTS/PA11 RTS/PA12。部分重映射TX/PB6 RX/PB7 CK/PB8 CTS/PA11 RTS/PA12。只有TX/RX/CK移動(dòng)了完全重映射TX/PB6 RX/PB7 CK/PB8 CTS/PB13 RTS/PB12。全部移動(dòng)配置代碼與之前類似只是在AFIO配置步驟不同// 開(kāi)啟AFIO時(shí)鐘略 // 配置GPIOB的Pin6和Pin7為復(fù)用功能略 // **關(guān)鍵使能USART1的部分重映射** GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE); // 注意這里是ENABLE // 后續(xù)USART1配置不變重要提示數(shù)據(jù)手冊(cè)中會(huì)明確說(shuō)明當(dāng)啟用重映射后原來(lái)的默認(rèn)引腳不能再作為普通GPIO使用即使你沒(méi)有用到它們。因?yàn)樗鼈儍?nèi)部的復(fù)用功能開(kāi)關(guān)已經(jīng)被切換了。4.2 STM32F4系列的重映射更準(zhǔn)確的叫法是“復(fù)用功能選擇”F4系列的重映射更加自由是“引腳到AF”的映射。你只需要在目標(biāo)引腳上將其Alternate Function設(shè)置為對(duì)應(yīng)的AF編號(hào)即可。例如想把USART2的TX從默認(rèn)的PA2移到PD5上查表確認(rèn)PD5支持哪些AF。在STM32F407的數(shù)據(jù)手冊(cè)中PD5的AF7對(duì)應(yīng)USART2_TX。開(kāi)啟GPIOD和USART2的時(shí)鐘。配置PD5的模式為GPIO_MODE_AF_PPAlternate設(shè)為GPIO_AF7_USART2。RX引腳也可以類似地移到其他支持USART2_RX的引腳上比如PD6同樣AF7。不需要操作任何專門的“重映射使能”寄存器。這種方式的靈活性極高你可以只重映射TX而RX不變或者反過(guò)來(lái)。但務(wù)必注意一個(gè)外設(shè)的同一個(gè)信號(hào)如TX不能同時(shí)映射到兩個(gè)物理引腳上。4.3 重映射的實(shí)戰(zhàn)考量與陷阱PCB設(shè)計(jì)階段就要規(guī)劃在畫(huà)原理圖和PCB時(shí)就要根據(jù)芯片數(shù)據(jù)手冊(cè)的“Pinout and pin description”章節(jié)規(guī)劃好所有外設(shè)的引腳。優(yōu)先使用默認(rèn)引腳當(dāng)沖突時(shí)再考慮重映射到其他可用的、布線方便的引腳。檢查重映射沖突有些重映射選項(xiàng)是互斥的。例如在F1上你可能無(wú)法同時(shí)使能USART1的重映射和某個(gè)定時(shí)器的重映射因?yàn)樗鼈児蚕鞟FIO寄存器里的某些控制位。務(wù)必仔細(xì)閱讀數(shù)據(jù)手冊(cè)和參考手冊(cè)中的“復(fù)用功能重映射”章節(jié)。調(diào)試接口的優(yōu)先級(jí)STM32的SWD調(diào)試接口SWCLK和SWDIO通常固定在某些引腳上如PA13 PA14。盡量避免將這些引腳重映射為其他功能否則可能導(dǎo)致程序下載后無(wú)法再次調(diào)試。如果必須使用要確保有辦法恢復(fù)調(diào)試功能如通過(guò)Bootloader。庫(kù)函數(shù)與CubeMX使用STM32CubeMX圖形化工具可以極大地避免重映射配置錯(cuò)誤。它用圖形界面清晰地展示了引腳沖突和可用的復(fù)用功能并自動(dòng)生成初始化代碼。對(duì)于HAL庫(kù)用戶強(qiáng)烈推薦。5. 高級(jí)話題與深度避坑指南掌握了基本配置和重映射你已經(jīng)能解決95%的問(wèn)題。但要成為高手還需要了解下面這些更深層次的知識(shí)點(diǎn)和坑。5.1 復(fù)用功能與JTAG/SWD調(diào)試接口的相愛(ài)相殺這是一個(gè)經(jīng)典大坑。以STM32F103為例PA13SWDIO、PA14SWCLK、PA15JTDI、PB3JTDO、PB4NJTRST默認(rèn)用于調(diào)試接口。上電后這些引腳優(yōu)先作為調(diào)試功能而不是普通GPIO或復(fù)用功能。問(wèn)題如果你在代碼初始化中將PA15配置為SPI1的NSS片選引腳或者將PB3配置為SPI1的SCK可能會(huì)發(fā)現(xiàn)1程序無(wú)法通過(guò)SWD下載2即使程序能運(yùn)行SPI功能也不正常。原因調(diào)試接口的優(yōu)先級(jí)更高在系統(tǒng)復(fù)位后這些引腳被鎖定在調(diào)試功能上。解決方案在初始化你自己的復(fù)用功能之前需要禁用JTAG接口釋放這些引腳。通常只保留SWD功能因?yàn)镾WD只需要兩根線這樣就釋放了PA15、PB3、PB4。// 在F1的標(biāo)準(zhǔn)外設(shè)庫(kù)中通常在系統(tǒng)初始化后、外設(shè)初始化前調(diào)用 // 禁用JTAG啟用SWD GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); // 此時(shí)PA15、PB3、PB4可用作普通IO或復(fù)用功能PA13和PA14仍為SWD。切記如果你完全禁用了SWJ包括SWD那么你將再也無(wú)法通過(guò)調(diào)試器連接芯片只能通過(guò)串口ISP等方式更新程序。操作務(wù)必謹(jǐn)慎5.2 同一引腳上的多重復(fù)用沖突與仲裁一個(gè)物理引腳可能支持多個(gè)復(fù)用功能。例如PA2可能同時(shí)支持USART2_TXAF7、定時(shí)器2通道3AF1、甚至ADC輸入模擬功能。那么當(dāng)你同時(shí)初始化了USART2和TIM2并且都試圖控制PA2時(shí)誰(shuí)生效呢規(guī)則生效的是最后配置的那個(gè)功能。GPIO的復(fù)用功能選擇寄存器AFR或重映射寄存器是一個(gè)全局設(shè)置后寫(xiě)的配置會(huì)覆蓋先前的。后果這會(huì)導(dǎo)致難以調(diào)試的Bug。比如你的USART2本來(lái)工作正常后來(lái)你初始化了一個(gè)定時(shí)器輸出PWM不小心占用了PA2USART2就會(huì)突然“啞火”。排查方法使用STM32CubeMX檢查引腳分配沖突。在代碼中對(duì)所有復(fù)用功能引腳的配置保持清晰、集中的管理。當(dāng)某個(gè)外設(shè)異常時(shí)檢查其相關(guān)引腳是否被其他部分的代碼重復(fù)初始化。5.3 低功耗模式下的GPIO狀態(tài)與復(fù)用功能當(dāng)STM32進(jìn)入睡眠、停止或待機(jī)等低功耗模式時(shí)為了省電大部分外設(shè)時(shí)鐘會(huì)被關(guān)閉。這會(huì)影響復(fù)用功能外設(shè)時(shí)鐘關(guān)閉如果UART的時(shí)鐘被關(guān)閉即使GPIO配置正確UART也無(wú)法工作。在退出低功耗模式后你需要重新初始化外設(shè)至少重新使能時(shí)鐘和可能必要的配置。GPIO配置保持通常GPIO的配置包括模式、速度、復(fù)用功能選擇在低功耗模式下會(huì)保持。但為了絕對(duì)可靠特別是從待機(jī)模式最低功耗喚醒后進(jìn)行一輪外設(shè)和GPIO的重新初始化是良好的編程習(xí)慣。引腳泄漏電流如果UART連接的對(duì)方設(shè)備在MCU休眠時(shí)仍然上電而RX引腳配置為浮空輸入可能會(huì)產(chǎn)生微小的泄漏電流。在電池供電的極致低功耗場(chǎng)景下可以考慮在進(jìn)入休眠前將不用的UART引腳配置為模擬輸入模式功耗最低并在喚醒后恢復(fù)。5.4 使用CubeMX與HAL/LL庫(kù)的最佳實(shí)踐對(duì)于現(xiàn)代STM32開(kāi)發(fā)STM32CubeMXHAL庫(kù)是提高效率、減少配置錯(cuò)誤的利器??梢暬渲迷赑inout視圖里你可以直接點(diǎn)擊引腳為其分配功能。CubeMX會(huì)自動(dòng)處理沖突并直觀顯示當(dāng)前引腳的功能綠色表示已分配黃色表示沖突紅色表示無(wú)效。自動(dòng)生成代碼CubeMX生成的MX_GPIO_Init()函數(shù)會(huì)包含所有GPIO和復(fù)用功能的初始化代碼包括正確的Alternate設(shè)置。對(duì)于F1系列它也會(huì)正確生成AFIO的配置代碼。注意“Lock”機(jī)制在CubeMX的“System Core”-“GPIO”設(shè)置中你可以為某個(gè)引腳配置“Lock”鎖定。一旦在代碼中調(diào)用了HAL_GPIO_LockPin函數(shù)該引腳的配置包括模式和復(fù)用功能將被寫(xiě)保護(hù)直到下次復(fù)位。這可以防止程序意外修改關(guān)鍵引腳如調(diào)試口、復(fù)位引腳的配置。LL庫(kù)的精準(zhǔn)控制如果你對(duì)代碼體積和運(yùn)行效率有極致要求可以考慮使用LL庫(kù)。LL庫(kù)更接近寄存器操作你需要手動(dòng)查詢數(shù)據(jù)手冊(cè)來(lái)設(shè)置AFR寄存器。例如對(duì)于F4系列// 使用LL庫(kù)設(shè)置PA9為AF7 LL_GPIO_SetPinMode(GPIOA, LL_GPIO_PIN_9, LL_GPIO_MODE_ALTERNATE); LL_GPIO_SetAFPin_0_7(GPIOA, LL_GPIO_PIN_9, LL_GPIO_AF_7); // PA9屬于低8位使用0_7函數(shù) LL_GPIO_SetPinSpeed(GPIOA, LL_GPIO_PIN_9, LL_GPIO_SPEED_FREQ_HIGH); LL_GPIO_SetPinOutputType(GPIOA, LL_GPIO_PIN_9, LL_GPIO_OUTPUT_PUSHPULL);使用LL庫(kù)要求你對(duì)復(fù)用功能機(jī)制有更深刻的理解。6. 問(wèn)題排查當(dāng)UART不工作時(shí)的系統(tǒng)性檢查清單當(dāng)你按照教程配置了UART但收不到數(shù)據(jù)也發(fā)不出數(shù)據(jù)時(shí)不要慌張。按照以下清單從上到下系統(tǒng)性排查99%的問(wèn)題都能找到。電源與時(shí)鐘[ ] 芯片供電是否正常電壓是否在額定范圍[ ] 系統(tǒng)時(shí)鐘HSE/HSI是否成功起振并配置為正確的頻率UART波特率依賴系統(tǒng)時(shí)鐘[ ]是否開(kāi)啟了所用GPIO端口如GPIOA的時(shí)鐘(__HAL_RCC_GPIOA_CLK_ENABLE()或RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE))[ ]是否開(kāi)啟了所用UART外設(shè)如USART1的時(shí)鐘(__HAL_RCC_USART1_CLK_ENABLE()或RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE))[ ]對(duì)于STM32F1是否開(kāi)啟了AFIO時(shí)鐘(RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE))GPIO配置[ ] TX引腳是否配置為復(fù)用推挽輸出GPIO_MODE_AF_PP速度是否合適通常High即可[ ] RX引腳是否配置為浮空輸入F1常用或復(fù)用功能F4常用絕對(duì)不能配置為輸出[ ]對(duì)于STM32F1是否在AFIO中正確配置了重映射或不重映射(GPIO_PinRemapConfig)[ ]對(duì)于STM32F4/F7/H7Alternate Function編號(hào)AFx是否設(shè)置正確必須與數(shù)據(jù)手冊(cè)完全一致。[ ] 物理連線是否正確TX接對(duì)方的RXRX接對(duì)方的TX。地線是否共地UART外設(shè)配置[ ] 波特率、數(shù)據(jù)位、停止位、校驗(yàn)位是否與通信對(duì)方嚴(yán)格匹配哪怕有一個(gè)不匹配通信都會(huì)失敗。常用115200-8-N-1。[ ] 是否使能了發(fā)送和接收USART_Mode_Tx | USART_Mode_Rx[ ] 如果使用了硬件流控RTS/CTS相關(guān)引腳是否配置正確大多數(shù)情況下不需要。中斷與DMA如果使用[ ] 如果使用中斷NVIC嵌套向量中斷控制器是否配置并開(kāi)啟了對(duì)應(yīng)中斷通道如USART1_IRQn[ ] 中斷服務(wù)函數(shù)IRQHandler名稱是否正確是否清除了相應(yīng)的中斷標(biāo)志位[ ] 如果使用DMADMA通道、傳輸方向、內(nèi)存/外設(shè)地址、數(shù)據(jù)長(zhǎng)度是否配置正確DMA時(shí)鐘是否開(kāi)啟軟件與調(diào)試[ ] 發(fā)送函數(shù)是否被正確調(diào)用例如HAL_UART_Transmit是否返回HAL_OK發(fā)送的數(shù)據(jù)緩沖區(qū)地址和長(zhǎng)度是否正確[ ] 接收函數(shù)是否被正確調(diào)用輪詢、中斷、DMA方式是否匹配你的代碼邏輯[ ]使用示波器或邏輯分析儀這是最直接的硬件調(diào)試手段。測(cè)量TX引腳看是否有符合波特率的波形發(fā)出。如果沒(méi)有問(wèn)題出在MCU側(cè)配置錯(cuò)誤。如果有波形但對(duì)方收不到檢查電平標(biāo)準(zhǔn)STM32是3.3V TTL、線路連接、對(duì)方設(shè)備配置。[ ] 使用調(diào)試器單步執(zhí)行查看UART狀態(tài)寄存器如USART_SR的值。關(guān)注TXE發(fā)送寄存器空、TC發(fā)送完成、RXNE接收寄存器非空等標(biāo)志位的變化。沖突與干擾[ ] 該UART引腳是否被其他代碼如另一個(gè)外設(shè)初始化、一個(gè)錯(cuò)誤的GPIO操作重復(fù)配置[ ] 是否與JTAG/SWD調(diào)試引腳沖突特別是PA15 PB3 PB4。[ ] PCB布線是否過(guò)長(zhǎng)是否有強(qiáng)干擾源對(duì)于長(zhǎng)距離通信考慮使用RS-232或RS-485電平轉(zhuǎn)換芯片。把這個(gè)清單保存在你的筆記里下次UART再“罷工”就按這個(gè)流程一步步查基本都能快速定位問(wèn)題。我自己就靠這個(gè)清單在幾分鐘內(nèi)解決過(guò)不少初級(jí)工程師折騰半天的問(wèn)題。歸根結(jié)底UART復(fù)用問(wèn)題是一個(gè)對(duì)細(xì)節(jié)要求極高的環(huán)節(jié)任何一個(gè)微小的疏忽都可能導(dǎo)致通信失敗。但只要你理解了其背后的原理掌握了系統(tǒng)性的配置和排查方法它就不再是攔路虎而是你手中穩(wěn)定可靠的通信工具。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产亚洲精品AAAAAAA片| 久久99热这里只有精品| 影音先锋五月天婷婷丁香在线观看| 这里只有精品在线看| 婷婷伊人綜合| 粉嫩av懂色av蜜臀av熟妇| 天天干天天拍| 五月天桃色深爱网| 激情小说视频图片| 思思热精品在线观看| 碰碰碰91| 日韩青青| 婷婷综合五月| 99性视频| 亚洲激情综合| 欧美婷婷色五月| xx久久| 另类天堂| 99无码黄色视频| 第四色26uuu| 亚洲 欧洲 国产 伦综合| 国产 亚洲 在线| 天天擼久久擼在线| 色99综合视频| 中文不卡一二三区| 琪琪布丁香社区激情五月天| 五月天综合色| 久草大| 丁香婷婷色五月| 九九久久99| 啪啪色激情五月天| 婷婷不卡基地| 大香蕉久操| 久久er99| 久色婷婷200| 色网站99| 人人人操| 婷婷99狠狠躁天天躁中文| 色婷婷av在线观看| 少妇性按摩无码中文A片| 天天 日综合| 国产欧美第五十五页| 婷婷94s| 激情五月天丁香| av在线免费网站 | 五月色婷婷综合| 婷婷免费成人视频| 天天做天天双| 色婷綜合网| 91狠狠综合久久| 伊人色五月| 五月婷婷性爱视频| 99人人干人人| 婷婷99视频精品| 九九综合网色全集 | 婷婷五月成人| 五月丁香久久| AA片在线观看视频在线播放| 婷婷五月丁香青青草在线| 日韩人妻无码专区| 无码人妻丰满熟妇奶水区码| 激情五月丁香五月色| 天天操夜夜肏| 五月婷婷片| 激情纯色婷婷五月天在线不卡视频| 日韩婷婷五月| 久久只这里有精品| 亭亭五月色男人| 五月丁香六月婷婷免费视频| 六月丁香色婷婷| 五月色婷婷激情| 深爱激情四射| 夜夜干天天干| 啪啪啪大香蕉| 激情性爱五月天网页| 久久婷婷五月天| 99热超碰| 中文字幕丰满乱孑伦无码专区 | www.婷婷| 久热这里只有精品66| 人妻久久久久久久久妻久久久久| 偷偷操99| 丁香五月影院| 色香五月天| 五月丁香在线婷婷美女| 97碰久久| 亚洲 在线 另类| 狠狠爱深色婷婷综合| 免费日本aⅴ中文字幕| 91丨九色丨国产打屁股网站| 久久刺激网| 日韩成人网址| 婷婷丁香色情五月天| 婷婷五月六月丁香综合| 日本高清久| 九九99精品视频在线观看| 五月丁香六月婷婷啪啪| 九九中文色色| 思思久久99热| 岛国av网站| 五月综合婷婷开心网| 婷婷五月丁香高清无码| 96精品久久久久久久久| 97超碰婷婷五月天| 五月久久五月激情| 五月婷婷丁香五月婷婷丁香| 色婷婷亚洲婷婷| 国产黄色在线| 丁香五月天偷拍| 好好干av| 激情色播| 成人在线网址| 色五月综合在线| 婷婷五月天成人网| 五月丁香久久呀| 五月婷婷开心激情六月蜜桃| 午夜天堂啪啪| 色射7856五月天激情四射| 婷婷色五月丁香六月欧美啪| 久久色9| 无码婷婷五月天| 人人干人人看| 精品一二三区久久AAA片| 婷婷在线日韩综合| 亚洲色情免费网| www.天天日| 日本狠狠色| www.一起草av| 五月婷婷综合潮喷| 成人无码精品1区2区3区免费看| 丁香五月综合久久| 亚洲视频图片婷婷五月| 国产午夜精品一区二区三区四区| 色色色99韩| 色婷婷综合影院| 国产精品国产成人国产三级| 五月激情五月丁香| 天天爱天天做天天操| 99草在线免费观看视频| 五月丁香六月停停| 婷婷五月天激情诱惑| av狠狠操| 任你草| 五月色综合网| 国产高清视频91九九九久久久| 午夜婷婷丁香| 婷婷五月六月丁香| 人妻av在线| 久re热视频| 婷婷99视频全集高清| 丁香五月天激情网址| 色婷久| chaopeng在线人人| 久久99免费视频| BBWCUCKOLD精品熟妇| 久久草大香蕉| 五月丁香综合激情| 有码人妻久久| 性按摩玩人妻HD中文字幕| 99色视| 丁香六月啪啪啪| 99在线视频喷水| 激情WWW| 亚洲妇女熟BBW| 久久久人妻不卡| 伊人久久大香网| 五月婷天堂视频| 人妻操在线看| 精品香蕉99久久久久网站| 99热久久这里只有精品| 丁香五月花| 天天舔夜夜操www com| 色婷婷电影网| 四色女婷婷| 激情又色又爽又黄的A片| 丁香五月花婷婷开心| 九九99久久| 26uuu国自产精品| 五月天色婷婷综合| 新激情五月天色播| 国产亚洲99久久| 五月在线| 欧美日本VA| 五月天激情久久| 亚洲AV免费在线| 亚洲五月天激情| 婷婷五月欧美综合| 久久婷婷电影| 深爱激情五月天| 天天日夜夜夜操操操操| 中文字幕五月久久婷婷| av九九| 人妻久久做| 涩五月婷婷| 五月丁香六月婷婷综合免| 国产精品美女久久久久AV超清| 美女100%露全身无挡网站| 婷婷六月天国产综合| 996日日爱| 色婷婷四色| 99热这里只有精品1025| 五月丁香久久激情网| 影音先锋一区二区资源站| 亚洲久久激情| 丁香婷五月天| 超碰成人在线观看| 操97在线观看| 激情五月婷婷五月| 丁香五月婷老师| 久久久久久激情| 丁香五月天啪啪| 夜夜操天天爽| 婷婷综合五月激情| 五月综合激情| 大香人妻| 久在线88综合| 91久久久久久久久18| www.激情五月天com| 美欧成人视频| 超碰成人影视| 婷婷五月天小说| www天天爽| 日夜操B| 婷婷激情六月中文| 国外亚洲成AV人片在线观看| 丁香五月影视| 啪到高潮激情丁香五月| 五月社区婷婷激情| 丁香五月天AV在线| 久久九⑨| 青青草原亚洲久| 91热网址| 免费亚洲婷婷| 蜜乳国产网站| 激情精品久久| www.激情.com.| 操日本色| 六月婷婷操逼| 丁香五月色色婷| 婷婷五月天网| 九九久久网| 亚洲日日日| 五月丁香网站在线播放| 色五月之第四色| 日本天堂免费99| 日本美女97在线视频| 99这里有精品视频| 五月婷婷中文字幕| 超碰国产在线| 婷婷午夜天| 少妇人妻人伦A片| 久久五月婷婷开心网| 91精品久久久久久| 丁香婷婷色五月| 第四色五月婷婷| 99久久久精品| 高清av在线国产| 99婷婷狠狠成为人免费视频| 香蕉AV777XXX色综合一区| 六月丁香五月天| 99乱视频| 丁香花色色网| 色色色无码| 久草五月婷婷| 色综合久久久久| 成人网站免费在线播放| 狠狠久久婷五月| 99精彩视频| 这里只有精品免费视频| 四月婷婷五月丁香| 亚洲精品国产成人AV在线| 婷婷五月丁香六月| 久激情网| 欧洲色区| 怡春院天天干| 99啪99| 久9无码视频| 婷婷天堂视频| 天天综合情| 99热最新地址在线| 伊人五月久久| 婷婷色情六月| 婷婷激情视频| 久久97| 激情丁香五月婷婷| 日韩精品一曲二曲三曲四曲五曲| 午夜丁香六月婷| 激情熟女网| 色五月激情综合| 人妻激情综合| 婷婷五月天激情综合婷婷五月天激情综合 | 亚洲天天综合| 97精品欧美91久久久久久久| 丁香六月啪啪| 丁香社92视频| 最新热中文字幕| 久久五月激情网| 激情五月天婷婷视频| 五月婷婷激情综合视频| 草草视频91| 久/久精品99看9| 不卡在线视频| 91婷婷色 | 天天爽夜夜操| 日韩无码人妻一区二区| 五月婷婷在线视频免费观看| www.成人婷婷综合| www.minyis.com【JT】实力收量可预付QQ2101460746 | 1024AV视频| 99九九在线视频| 好好干Av| 五月婷婷视频在线观看| 色五月激情综合网| 久久九九九九| 激情亚洲色图片丁香综合| 思思热国产| 狠狠久久婷婷| 好好日激情五月天| 在线天堂9| 99热精品在线观看| 超碰在线9| 香蕉五月婷婷| 五月婷婷五月丁香综合| 日亚二欧美| 天天色播| 激情综合网五月丁香| 色久五月| 激情综合五月丁香| 99操久久| 开心激情婷婷| 久久婷婷五月综合色丁香花| 99久久精彩视频。| 丁香五月AV| 天天成人丁香美女AV| 影音先锋91男人资源在线播放| 九九综合久久| 99ri精品在线| 激情五月婷黄版| 婷婷五月天a| 日韩另类在线观看| 婷婷五月图片小说网| 日韩操人| 亚洲一区二区无遮挡A片| 99精品视频在线6| 亚洲色五月| 免费无码毛片一区二区A片| 偷拍91九色| 麻豆123区| 成人看片网站| 久久久五月五丁香| 99热亚洲精品| 亚洲热久| 这里只有精品无码| 人人操大| 色五婷婷开心缴| 激情色五月天| 国产热精品| 五月激情影院| 婷婷激情五月天7| 婷婷五月天视频| 99在线视频。| 色综合久久88色综合天天| 五月综合激情婷婷六月色窝| 全网最新网黄大秀直播高清,主播国产录屏在线| 六月丁香啪啪啪| 色六月 婷婷| 在线五月色播| 国产成人精品一区二三区熟女在线| 亚洲综合色婷婷| 久久五月天色婷婷| 婷婷97碰碰| 成人va在线播放| 色开心五月婷婷丁香HD| 欧美性爱五月天| 99视频日韩| 26uuu欧美激情另类| 色五月丁香91| 日本五月婷| 亚洲九九99精品视频在线播放| 五月人妻婷婷| 欧美A片在线视频免费观看| 久久婷五月综合色| 九色在线五月婷婷网址| 99这里有精品视频视频| www.精品久9| 婷婷六月天| 婷丁香五月天| www.操.com| 噜噜色五月| 久久人妻视频| 丁香美女主播视频在线观看| 东京热人妻一区二区三区在线| 玖玖资源站蜜臀| 97在线干| 97人人干| 婷婷五月天人妻| 91男人资源站| 久9久9热久热| 青草视频在线蜜臀| 欧美熟妇一区二区三区| 99热手机在线精品| 综合五月天婷婷色| 伊人久久大香线蕉av最新| 九九九九这里只有精品| site:901-07.com| 天天日天天色| 五月婷婷成人| 五月婷婷深深爱爱| 五月丁香综合网| 在线中文亚洲| 五月激情久久综合| 九九色院| 青青久在线视频免费观看| 五月激情综合深爱| 97在线碰| 一区二区乱视频码| 26uuu最新地址| 丁香五月激情六月综合| 婷婷五月综合久久中文字幕| 亚洲视频在线观看| 久久色天堂| 欧美激情五月天婷婷| 久久婷综| 超碰在线国产| 婷婷五月天视频免费在线观看| 无码地址| 99久re热| 色五月婷婷丁香凹凸| www.婷婷六月天| 中文字幕丁香五月| 91九色国产| 人妻第九页| 人妻久久婷婷| 婷婷六月五月| 亚洲色婷婷网站| 久色五月天| 国产超碰在线| 大香蕉综合| 大陆肏屄视频| 开心五月婷婷在线视频免费观看| 亚洲色五月| 狠狠色狠狠色综合日日91| 天天综合色| 色欲婷婷五月天丁香| 五月婷婷偷| 91se在线观看| 超爽内射| 涩丁香91| 97干在线视频精品店| 99精品免费视频| 婷婷五月色惰| 婷婷五月天激情免费在线观看| 狠狠五月激情在线| 成人丁香五月| 亚洲AV网址| 日本操B片| 无码激情AAAAA片-区区| 99久re热视频精品98| 久99在线视频| 中文AV在线观看| 狠狠干综合网| 九九99视频| 激情五月视频| 色婷婷先锋| 激情婷婷五六月天| 久久婷婷五月国产色综合激情| 色欲久久久久久综合网综合网| 99操网站| 亚洲国产网站| 性爱激情小说AV五月丁香花| 色噜久| 亚洲免费电影2| 久热A片| 伊人久久大香线蕉精品| 610018岁成人视频| 538在线精品| 久久总和99| 成人综合视频在线| caop在线视频| 91操熟女| 伊人久久婷婷| XX色综合| 久久久久久9热不雅视频| 九月丁香网婷婷| 玖玖爱伊人网| 婷婷五月色花丁香社区| 99久久久久久www| 伊人五月天97| 久久99网站| 亚洲综合字幕色色| 伊人成人宗合网| 这里只有精品视频看看| 这里只有精品在线视频在线观看| 久久精彩视频| 天天噜噜| 日本色色影片| 99久久久久久久| 成人丁香色| 99久久99九九99九九九| 婷婷舔| 婷婷五月丁香综合人妻| 色欲久久久久久综合网综合网| 91综合色| 精品一二三区久久AAA片| 九九热在线视频| 日韩操人| 日日操夜夜擼| 色蜜婷婷| 五月花成人网| 五月婷婷成人| 97精品综合久久| 国产午夜成人免费看片无遮挡| 九九色婷婷五月天| WWW,五月| 五月六月丁香婷婷在线观看| 婷婷丁香激情综合色情| 午夜一区| 丁香五月激情五月| 亚洲精品国产成人AV在线| 熟女五月天久久综合| 五月天,激情四射,婷婷频道| 久99久视频| 日本人妻伦在线中文字幕| 综合五月激情| 色情性爱视频网址| 青青久久大香蕉| 亚洲五月丁香综合网| 激情综合五月色丁香婷婷| 欧美 日韩 成人| 色99色| 五月叮香啪| 亚洲五月丁香综合网| 丁香五月婷婷骚视屏| 97久久精品| 久久久天堂国产精品女人| 9久久网| 玖月婷婷爱丁香| 天天爽天天草| 欧美搡BBBBB摔BBBBB| 婷婷之玖玖| 国产裸舞福利资源在线视频| 色婷另类| 久久丁香九| 最新日本A片| 五月天激情视频| 欧美精品中文字幕亚洲专区| 中文字幕成人| 99这里只有精品| 超碰在线免费观看日韩| 婷婷六月丁香在线| 综合大香蕉| 久久综合55| 亚洲性爱干干| 色五月婷婷影院| 久九九热| 色播播婷婷| 人人摸人人操人人爱| 婷婷综合激情| 久久久久亚洲AV成人无码电影| 欧美性猛交99久久久久99按摩| 99热在线精品观看| 99色精品| 大香蕉伊在| 99热最新网址| 色婷婷丁香花五月天| sS丁香五月婷婷| 综合久久影院| 五月丁香久| 激情内射p| 性爱网五月婷婷| 色另类五月天| 最新高清无码专区| 日韩一区二区三区无码| 狠狠色综合网| 成人婷婷桔色| 国产成人精品亚洲线观看| 激情五月天婷婷直播| 综合AV在线| 亚洲人妻Av| 国产精品国产| 伊人久久大香网| 综合99综合久久久久久久| 久久久27操| 久久婷婷亚洲| 九九热99视频| 六月婷婷五月丁香| 精品视频99看在线视频| 98国产精品综合一区二区三区 | 丁婷婷五月天在线播放| 婷婷色六月| 欧美成人精品A片免费一区99| 久久婷婷的综合色丁香五月| 九九大香视频| 99久久久免费| 久久五月天激情美女| 五月天伊人| 夜夜www| 91男人操女人视频| 另类五月激情| 秋霞AV淫| 亚洲婷婷五月天| 99爱这里只有精品| 九九九激情网| 噜噜狠狠色综合久| 亚洲婷婷在线播放十月| 97在线99| 婷婷免费视频| 婷婷亚洲色| 九月色婷婷| 艾小青av| www、丁香五月天| 久草大| 激情文学第四色婷婷丁香五月| 超碰九九热| 深爱五月婷婷开心中文字幕| 美女被操一区二区| 超碰9| VA国产在线综合网站| 五月天sesese| 97人人做| 丁香婷婷六月激情综合| 五月丁香婷婷成人版| 成年人丁香五月| 99网址在线观看| 丁香五月天社区| 亚洲激情网| 草草夜夜操| 狠狠色综合网| 亚洲激情丁香五月基地| 五月丁香亭亭AV女优| 狠狠艹狠狠艹| 九九爱激情| 婷婷五月天电影网| va中文资源在线观看| 91精品久| www.夜夜操| 女人天堂 AV| 久久久中文| 丁香影院五月综合| 久久久com| www.久热| 天天射综合网天天插| 丁香五月最新地址| 99碰碰| 五月婷婷色激情| 婷婷五月激情四月综合| 激情婷婷综合网| 天天日天天插| 丁香六月婷婷开心| 99热这里精品| 我爱va亚洲va52| 91日本在线观看| 另类图片五月天激情| 操人91| 婷婷99中文字幕| 啪啪夜久久| 亚洲亚洲人成综合网络| 婷婷色五月天在线观看| 久久免费精彩视频| 婷婷深爱网| 入口五月婷婷六月香| 2015WWW永久免费观看播放| 99久久国产宗和精品1上映| 情色五月天网站| 射久久丁香五月| 思思久ren热| 91干视频| 91日日日| 婷婷久久伊人| 日本久久极品| 婷婷D区| 久久人人看| 五月天婷婷操逼视频| 五月丁香香蕉| 五月丁香成人网| 99这里只有精彩视频| 五月色情婷婷| 色五月色综合| 中国丰满熟女A片免费观| 婷婷久久五月| 91超级碰| 色色99| 少妇大叫太大太粗太爽了A片| 色情婷婷五月天| 色色激情五月天| 成人 在线 日韩| www.99婷婷| 婷婷天堂综合| 婷婷五月色天| 激情综合五月| 色婷婷成人做爰A片免费看网站 | 五月天综合久久| 特黄三级片| 久久五月视频| 六月激情网| 五月天婷婷久久| 97人人草| 五月天婷婷狂暴白浆| 伊人五月婷| 五月婷婷欧洲| 在线观看亚洲AV| 亚洲国产网站| 日韩黄色电影| 婷婷九月丁香| 午夜丁香婷婷| 四五月婷婷| 亚洲色综合性| 免费看欧美成人A片无码| 手机旧版看人妻1025| 丁香五月天堂| 免费无码毛片一区二区A片| 婷婷丁香社区| 影院久久久| 91久久精品无码一区二区三区| 色五月超碰| 丁香五月天激情网址| 狠狠色丁香乆乆| YW无码| 97碰碰视频在线观看免费| www.婷婷五月天,com| 五月丁香婷婷激情| 五月婷婷婷丁香播| 天天插天天日| 午夜微拍福利| 中文字幕AV在线播放| 久久成人性爱| 五月婷婷亚洲| 99热免费| 影院久久久| 激情五月天色色网| 久久婷婷五月综合啪| 国产精品成人AV在线| 狠狠穞A片一區二區三區| 丁香婷婷久| 日韩啪啪视频| 久久性爱视频久久性爱视频| 97色片| 九九综合久久| 色色欧美色色色| 国产超碰人人| 五月丁香亚洲综合网| 人妻激情综合| 五月天啪啪网| 《诡秘之主》在线观看| 人人摸人人搞| 久久精品国产一区二区三区四区| 99伊人性爱在线影院| 天天肏天天插| 91热久久| 综合九九久久| 9999色色色色| 激情五月丁香五月| 丁香花操逼| 五月丁香在线国产| 久久综合丁香激情五月| 99久久五月婷婷| 五月丁香婷婷在线综合蜜桃| 亚洲情色一区| 日韩成人无码片| 亚洲 25P| 国产成人网| 国内久久亭亭| 国产精品热搜丁香五月婷婷| 久久久久9999| 色播六月| 天天搞天天色综合| 色综合色综合色综合| 激情网第四色| 欧美日韩成人| 这里只有精品视频视频在线观看| 婷婷色操| 18久久| 色色哒五月婷婷六月丁香| 五月婷婷之综合激情| 色婷婷女优有码五月亭| 婷婷五月天资源| 丰满人妻妇伦又伦精品国产 | 二色AV| 黄色91在线观看| 中文字幕婷婷五月天在线观看| 色噜噜狠狠色综无码久久合欧美| 激情九月婷婷| 色婷婷综合久久久久| 五月丁香五月丁香五月丁香五月丁香91| 色婷婷六月精品| 色五月婷婷五月天| 色色色色色级无码| 丁香六月啪| 9.1综合网| 久青草影院| 97精品综合| 九九热在线99| 黄色99视频| 综合激情视频| 色五月婷婷狠狠撸| 色婷婷五月网| 久久综合婷婷激情| 婷婷丁香五月天小说| 亚洲国产精品VA在线看黑人| 就爱干 在线| 色吧婷婷五月亚洲| 五月婷婷免费| 国产毛片操B| wwwC0maV五月花| 婷婷综合久久综合| 九九色综合九九色| 婷婷 伊人 久久| 久艹大香蕉| 99ri国产| 成人在线日韩| 丁香五月第四色88| 另类亚洲电影| 桃色五月天| 激情六月丁香| 六月丁香久久| 五月天欧美激情| 校园春色亚洲色| 丁香六月情| 庭庭久久内射| 五月婷色| 激情五月综合网最新 | 亚洲天堂aaaa| 激情小说五月天| 538在线精品| 一区二区三区四区无码| 色吧五月婷婷六月丁香| 五月婷婷激情日本| 亚洲九九夜夜| 99热在线观看| 激情五月天综合婷婷网| 人人干AV| 色婷婷文字幕| 99re思思热久久| 天天拍天天做视频| 五月丁香啪啪网| 久久婷婷五| 久久人妻精品| 曰曰久久| 亚洲日本韩国| 激情六月色| 天天五月丁香五月| 影音先锋秋秋五月婷婷| 色色热| 婷婷综合激情| 久久久精品婷婷五月天| 9久久久久久久久久久| 99这里只有精品视频在线| #NAME?| 婷婷五月天电影网| 久热网站| 久久婷婷成人视频| 97在线/日本| 婷婷五月天a| 九九综舍久久| 97亚洲视频在线| 伊人婷婷大香蕉| 欧美综合五月丁香六月婷| 五月丁香啪啪婷婷| 天天肏在线视频| 五月天色五月| 综合五月天| 成人婷婷五月| a网站免费观看| 99丝袜精品视频网站| 丁香五月性爱| 五月天激情小说| 六月丁香五月激情网| 五月丁香色色| 六月婷婷日| 欧美大片免费播放器| 五月久久婷婷天堂视频| 99热这里只有精品最新地址获取| 久久香蕉网| 色激情五月| 偷拍九九热| 97色在线| 丁香五月成人社区| 天天插天天插| 99er热精品视频| 男人综合网| 婷婷色五月噜噜| Av九九| 丁香五月先锋| 亚洲综合婷婷六月丁香五月| 亚洲成人色五月婷婷综合| www.色婷婷.com| 九九精品系列| 91热视频| 疯狂做受XXXX高潮A片| 五月天色丁香| 久久久激情视频| 成人丁香| 五月天婷婷在线观看| 国产精品蜜臀99| 人人爱天天摸摸天天爱| 激情网站五月| 丁香五月婷婷狠狠色| 成人一级片| 99人人操人人操人人精| 欧美黄色一级录像| 五月丁香激情综合| 91久久婷婷| 久久草大香蕉| 婷婷久热| 丁香五月天视频| 99热国产这里只有精品| 在线中文字幕视频| 五月丁香999| 成人av在线电影| 亚洲天堂爱爱| 狠狠综合网| 狠狠色狠狠操| 日韩无码成人电影| 婷婷色色五月天| 六月丁丁香| 亚洲视频一区| 久久人人做人人妻人人玩精品va| 99国产精品久久久久久久久久久 | 国外亚洲成AV人片在线观看| 老师的粉嫩小又紧水又多A片视频 粉嫩AV久久一区二区三区 | 好好干Av| 婷婷丁香第一页| 丁香激情合作五月| 国产精品成人av在线观看春天| 夜丁香五月婷婷| 五月婷婷成人| 九色91视频| 五月丁香日本在线视频观看| 亚洲婷婷丁香五月天激情小说 | 婷婷色无码| 我爱婷婷五月天综合88| 国产资源91在线| 99视频这里有精品| 人人97碰| 婷婷中文字幕| 天天射网站| 色色色五月天激情资源| 99热线观看9| 婷婷色中文字幕| 五月色婷婷影视在线电影| 丁香欧美| 天堂网啪啪| 另类激情综合| 日韩青青| 久久99大全| 九九热这里只有精品556| 婷婷五月丁香五月天| 99爱这里只有精品免费视频| 欧美日韩成人在线网| 狠狠色综合网| 丁香婷婷影院| 亚洲在线资源| 另类国产综合| 国产免费一区二区三州老师F1F1| 婷婷爱五月| 1级欧美日韩| 91人人操.COM| 欧美综合在线五月天色婷婷| 99精品在线| 天天日天天插| 婷婷丁香综合| 婷婷大美在线| WWW.17C亚洲精品| 欧美肉大捧一进一出免费视频| 婷婷丁香六月天| 久草A片| 这里只有精彩亚洲视频推荐| 自拍偷窥99热| 亚洲操B| 人人草人人爱| 午夜福利8055| 婷婷另类开心| 九九热re99re6在线精品| 99精品视频在线观看| 欧美人人女女精品综合五月天| 久思思热视频在线观看| 欧美丁香婷婷五月天| 色5月婷婷| 精品九九网| se99在线| 中文字幕在线观看视频www| 97碰 在线视频观看| 久久久人妻久久久| 五月丁香六月婷婷网| 乱岳熟女50岁| 久久婷婷五月综合| 激情综合网五月激情网| 国产精品第一国产精品| 99操逼视频| 五月婷激情| 亚洲无码 图片区| 99婷婷国产最新视频| 综合图区激情| 色色操| 狠狠穞A片一區二區三區| 久久亚洲天堂| 99热这里只有精品无码| 99热官网| 噜噜狠狠| 婷婷久久亚洲| 久人操| 91人人爽久久涩噜噜噜| 久久色六月| 噜噜色五月| 99这里热| 九九超日本| 激情婷婷啪啪| 综合久久五| 色视五月天婷婷| 五月丁香色综合| 日本69日人视频| 91久久精品无码一区二区三区| 国产色色色色色| 亚洲第一色区| 久久婷婷五月天大香蕉| 五月色欧洲| 亚洲成人网站在线观看| 国产片天天爽夜夜爽| 五月婷色| 婷婷色婷婷亚洲成人| 人妻AV在线| 五月丁香婷婷中文| 亚洲色图五月丁香| 婷婷久久图片| 99爱视频| 色五月婷婷操逼| 九九大香视频| 色五月超碰| 大香蕉九操| 色欲色天天香综合| 婷婷伊人网| 大香蕉久久| 日本久久天堂| 天天草天天爱| JAPANRCEP老熟妇乱子伦视频| 婷婷丁香射射| 日日夜夜干| 丁香五月大片| 97成人丁香| 五月婷婷六月丁香在线| 丁香久月婷| 欧洲综合视频| 亚洲婷婷在线播放十月| 亚洲综合婷婷| 婷婷六月天精品| 九九精品大香蕉| 精a品a| 91婷婷伊人牛牛| 色色丁香婷婷综合| 九九色综合网| 色婷婷五月综合| 久久杏爱视频| 91精选国| 天天综合五月| 人妻性爱av网站| 国精产品一区一区三区免费视频| 九九精品碰| 婷婷色片| 天天色天天爽| 婷婷在线日韩综合| 桃色五月天| 色综合网上班开心婷婷久久| 国精产品一区一区三区免费视频| 久久婷婷一级片| 懂色av蜜臀av粉嫩av永陈冠希| 五月婷婷久久久| 五月丁香拍拍激情综合| 色婷婷影视99| 激情五月综合网| 激情都市五月天| 91久久久久久久久久| 五月婷婷在线视频| 日本成人小说婷婷六月| enecarbon-materials.comWu染请涟系Bao护@wip1688 | 五月婷免费视频久久久| 久热爱大香蕉在线蜜臀悦色| 九九人人精品| 五月色婷婷综合丁香精品无遮挡| 狠狠色狠狠色综合日日91| 高清不卡一区| 国产熟女日日骚五月丁香爱| 五月天婷婷色情| 99热久| 六月丁香五月天| 日韩色色小视频| 婷婷丁香色女人| 亚洲情欲| 亭亭五月色男人| 日韩欧美一区二区三区四区| 成人 AV播放| 五月色丁香| 噜噜网免费视频| 五月天婷婷一起草| 人妻中文字幕网| 婷婷色导航| 美国十月色婷婷在线观看| 亚洲天天免费| 色综合丁香婷婷| 狠狠爱成人综合网| 丁香六月婷婷综合| 五月天天爽| 色五月婷婷少妇人妻| 影音先锋 一区| 97福利视频| 婷婷五月色色| 色综色五月天婷婷| 99色在线视频观看| 五月丁香六月婷婷久久肏| 五月丁香啪| 婷婷综合另类小说| 激情碰碰碰| 国产精品激情AV久久久青桔| 久久婷婷热| 色五月激情五月| 婷婷五月天成人影片| 色婷婷婷av| 婷婷射图五月天| 婷婷黄色网| 中文中文在线| 五月丁香偷拍| 五月婷婷综合久久| 免费观看的婷婷五月视频在线| 超碰AAAAAAV| 最新热中文字幕| 丁香婷婷六月天| 九月久久婷婷| 婷婷五月激情欧美大胆视频| 婷婷色播婷婷| 97干综合网| 天天摸天天舔| 久久婷婷综合五月趴| 狠狠狠狠狠操| 视频这里只有精品16| 超黄亚洲瑟瑟网站| 久久久思思热| 五月色综合| 五月婷婷开心深| 开心激情色婷婷五月天| 色婷婷深爱五月| 26uuu欧美亚洲日韩| 五月欧美色色五月| 天天爽夜夜爽夜爽精品| 色欲AV导航| 亲子乱AV一区二区三区下载| 玖玖在线| 影音先锋按摩| 日韩狠狠色婷婷| 五月婷婷色情| 黄色激情五月天| 26uuu欧美日本| 夜夜干夜夜操| 色婷婷综合网| 欧美激情综合色综合啪啪五月| 色色色色热| 久久综合五月天| 丁香五月婷婷AV在线| 亚洲VA口| 五月婷婷色播| 婷婷五月天激情小说| 黄网免费看| 成人网址在线观看| 色色五月天丁香| 人妻综合网| 婷婷五月色天| 国产精品国产成人国产三级| 一点色成人网| 国产欧洲欧洲精品久久| 99无码精品| 七月丁香五月婷婷在线| 色综合女人99| Caop在线| 五月婷精品| 性色播| 人人操超踫| 亚洲色优| 五月婷婷久久综合| 久久九九网| 天天揷综合网| 五月婷中文娱乐综合| 激情五月婷婷啪啪| 成人 在线 日韩| 先锋影音av色五月天资源站| 99久久婷婷国产综合精品| 六月色 亚洲| 色婷久九| 色婷婷成人丁香| 婷婷十月丁香| 操人久久| 日韩人妻无码专区| 五月天婷婷色播综合在线| WWW.HENHENL.| 国产免费一区二区三州老师F1F1| 色热久资源| wwwwww.色| 久久性操| 久久精品A片777777| 91趴趴| 五月天婷婷久久日| 欧美啄木乌丝袜人妻系列| 五月婷婷影视| 久久精彩免费视频| Www.se.久久| 婷婷在线综合| 五月丁香色五月| 日本色色色| 午夜激情综合| 久久久天堂国产精品女人| 99久久久久久久| 婷婷丁香九色| WWW久| 激情丁香五月婷| 在线可以看的av网址| 五月婷婷偷拍| 婷婷涩涩网| 99精在线| 狠狠久久婷婷| 99色啊| 国产亚洲99久久精品| 精品九九网| 99热这里只有的精品视| 99热精品在线| 久99视频在线观看| 婷婷五月天电影网| 日B日潘金莲BB| 婷婷六月丁香久| 五月天综合在线| 久久新地此| 女高怪谈在线观看| 另类五月激情| 五月天播播综合| 中文字幕 中文字幕明步| 五月婷婷深深爱| 久久激情五月婷婷| 91呦呦呦| 偷拍视频五月天| 全部老头和老太XXXXX| 99热国品免费| 97人人干| 久9视频| 香蕉国产2013| 色天堂A| 久9久成人精品视频| 色久一| 丁香六月久| 极品五月天| 天天爽天天摸| 91九色偷拍| 五月天深爱激情网| 激情五月天久久| 啪啪激情网站| 狠狠色综合五月人人| 噜噜噜色噜噜| 色色五月婷婷狠狠| 色色亚卅| aaaa久久| 激情五月丁香六月综合AVXXXX| 日韩日比视频在线| 五月停停激情网| 久久久久视剧HD| 丁香五月综合在线观看| 在线成人国产| 色五婷婷开心缴| 色婷婷久久视屏| 丁香六月激情| 五月婷婷色| 97人人干|