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

ARTICLE DETAIL

資訊詳情

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

STM32外設(shè)驅(qū)動封裝實戰(zhàn):GPIO、輸入捕獲與編碼器接口

STM32外設(shè)驅(qū)動封裝實戰(zhàn):GPIO、輸入捕獲與編碼器接口 1. 引言在STM32嵌入式開發(fā)中直接操作寄存器或反復(fù)調(diào)用標(biāo)準(zhǔn)庫函數(shù)雖然靈活但代碼復(fù)用性差、可讀性不高對新手尤其不友好——稍不留神漏掉一條時鐘使能或初始化指令功能就無法實現(xiàn)排查起來也很費勁。本文分享一套面向新手的 STM32 外設(shè)簡易封裝庫把 GPIO、輸入捕獲測頻/測占空比、編碼器接口、ADC 采集、DMA 傳輸?shù)瘸S猛庠O(shè)的初始化與讀取封裝成一個個函數(shù)。你只需要照著注釋填參數(shù)、按順序調(diào)用即可不用關(guān)心底層寄存器細(xì)節(jié)也不用擔(dān)心漏寫配置指令。后續(xù)還會持續(xù)補充 SPI、I2C、看門狗等更多外設(shè)的簡易配置逐步形成一套屬于自己的「STM32 快速開發(fā)工具箱」。配套資源下載本文配套的完整工程代碼已打包上傳可通過夸克網(wǎng)盤獲取鏈接https://pan.quark.cn/s/95809e5ce13b?pwdGjmb提取碼Gjmb打開「夸克網(wǎng)盤APP」即可下載stm32_1.zip內(nèi)含本文所有封裝函數(shù)的可直接運行的工程模板。2. GPIO 驅(qū)動封裝GPIO通用輸入輸出是最基礎(chǔ)的外設(shè)。這里以初始化函數(shù)為例其余函數(shù)功能簡述如下。2.1 GPIO 初始化函數(shù)/** * 函 數(shù)GPIO初始化配置 * 參 數(shù)a - GPIO端口指針如GPIOA * 參 數(shù)b - GPIO引腳號如GPIO_Pin_0 * 參 數(shù)GPIO_Mode - GPIO工作模式如GPIO_Mode_AF_PP * 返 回 值無 */voidgpiostart(GPIO_TypeDef*a,uint16_tb,GPIOMode_TypeDef GPIO_Mode){GPIO_InitTypeDef gpio_a;gpio_a.GPIO_ModeGPIO_Mode;gpio_a.GPIO_Pinb;gpio_a.GPIO_SpeedGPIO_Speed_50MHz;GPIO_Init(a,gpio_a);GPIO_ResetBits(a,b);}說明該函數(shù)將端口、引腳、模式作為參數(shù)傳入內(nèi)部統(tǒng)一配置50MHz速度并在初始化后默認(rèn)輸出低電平。調(diào)用示例gpiostart(GPIOA,GPIO_Pin_0,GPIO_Mode_Out_PP);// PA0推挽輸出2.2 其他 GPIO 封裝函數(shù)gpioblink(a, b, c, GPIO_Mode)完成一次“高-低-高”的閃爍動作適合LED指示或簡單脈沖輸出。gpiochange(GPIO_Remap1, GPIO_Remap2, GPIO_Remap3)引腳重映射配置。注意會占用AFIO并可能關(guān)閉JTAG/SWD調(diào)試口非必要不要使用。keytim(a, b, c)按鍵定時掃描返回按鍵狀態(tài)。keyzhuan(a, b, c, d)按鍵狀態(tài)轉(zhuǎn)換/消抖處理。調(diào)用示例示例代碼后續(xù)將隨資源包更新補充// LED閃爍PA0推挽輸出每200ms翻轉(zhuǎn)一次gpioblink(GPIOA,GPIO_Pin_0,200,GPIO_Mode_Out_PP);// 按鍵掃描PA1上拉輸入每10ms掃描一次intkey_statekeytim(GPIOA,GPIO_Pin_1,10);if(key_state1){// 按鍵按下執(zhí)行對應(yīng)操作}3. 串口USART驅(qū)動封裝串口是嵌入式開發(fā)中最常用的調(diào)試與通信手段。這里以 USART1PA9TXPA10RX為例封裝了初始化、發(fā)送、以及兩種實用的幀解析功能。3.1 串口初始化/** * 函 數(shù)USART1 PA9(TX)/PA10(RX) GPIO初始化 * 參 數(shù)無 * 返 回 值無 * 說 明PA9復(fù)用推挽輸出PA10上拉輸入 */voidserial_init_u1_pa910(void){RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_ModeGPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_PinGPIO_Pin_9;GPIO_InitStructure.GPIO_SpeedGPIO_Speed_50MHz;GPIO_Init(GPIOA,GPIO_InitStructure);GPIO_InitStructure.GPIO_ModeGPIO_Mode_IPU;GPIO_InitStructure.GPIO_PinGPIO_Pin_10;GPIO_InitStructure.GPIO_SpeedGPIO_Speed_50MHz;GPIO_Init(GPIOA,GPIO_InitStructure);}/** * 函 數(shù)USART參數(shù)初始化配置 * 參 數(shù)USART_BaudRate - 波特率 * 參 數(shù)USART_HardwareFlowControl - 硬件流控制 * 參 數(shù)USART_Mode - 工作模式發(fā)送/接收 * 參 數(shù)USART_Parity - 校驗位 * 參 數(shù)USART_StopBits - 停止位 * 參 數(shù)USART_WordLength - 數(shù)據(jù)位長度 * 返 回 值無 */voidusart_init_txd(uint16_tUSART_BaudRate,uint16_tUSART_HardwareFlowControl,uint16_tUSART_Mode,uint16_tUSART_Parity,uint16_tUSART_StopBits,uint16_tUSART_WordLength){USART_InitTypeDef a;a.USART_BaudRateUSART_BaudRate;a.USART_HardwareFlowControlUSART_HardwareFlowControl;a.USART_ModeUSART_Mode;a.USART_ParityUSART_Parity;a.USART_StopBitsUSART_StopBits;a.USART_WordLengthUSART_WordLength;USART_Init(USART1,a);USART_Cmd(USART1,ENABLE);}說明serial_init_u1_pa910()完成引腳復(fù)用配置usart_init_txd()完成串口參數(shù)配置。調(diào)用示例serial_init_u1_pa910();usart_init_txd(115200,USART_HardwareFlowControl_None,USART_Mode_Rx|USART_Mode_Tx,USART_Parity_No,USART_StopBits_1,USART_WordLength_8b);3.2 串口發(fā)送函數(shù)/** * 函 數(shù)串口發(fā)送單個字節(jié)底層函數(shù) * 參 數(shù)USARTx - USART指針 * 參 數(shù)Data - 待發(fā)送數(shù)據(jù) * 返 回 值無 */voidchuankou(USART_TypeDef*USARTx,uint16_tData){USART_SendData(USARTx,Data);while(USART_GetFlagStatus(USARTx,USART_FLAG_TXE)RESET);}/** * 函 數(shù)串口發(fā)送字節(jié)數(shù)組 * 參 數(shù)USARTx - USART指針 * 參 數(shù)Array - 數(shù)組首地址 * 參 數(shù)Length - 數(shù)組長度 * 返 回 值無 */voidchuankou_SendArray(USART_TypeDef*USARTx,uint8_t*Array,uint16_tLength){uint16_ti;for(i0;iLength;i){chuankou(USARTx,Array[i]);}}/** * 函 數(shù)串口發(fā)送字符串 * 參 數(shù)USARTx - USART指針 * 參 數(shù)String - 字符串指針 * 返 回 值無 */voidchuankou_SendString(USART_TypeDef*USARTx,char*String){uint8_ti;for(i0;String[i]!\0;i){chuankou(USARTx,String[i]);}}說明三個發(fā)送函數(shù)由底層到高層依次封裝分別支持發(fā)送單字節(jié)、字節(jié)數(shù)組和字符串滿足不同場景需求。3.3 字符幀解析幀格式 字符串 \rstaticuint8_tchar_restat0;staticuint8_tchar_index0;chartack_char[100];/** * 函 數(shù)字符幀啟動并解析 * 參 數(shù)first_byte - 已讀取的幀頭字節(jié) * 返 回 值無 * 說 明幀格式 字符串 \r */staticvoidchar_frame_start(uint8_tfirst_byte){char_restat1;char_index0;}staticvoiduart_parse_char(uint8_tbyte){if(char_restat1){if(byte\r){tack_char[char_index]\0;// 字符串結(jié)束符char_restat0;S1;// 通知主循環(huán)}else{if(char_index99){tack_char[char_index]byte;char_index;}// 超長截斷防止溢出}}}說明以作為幀頭遇到\r表示一幀結(jié)束解析結(jié)果存入tack_char并置位標(biāo)志S主循環(huán)檢測到后即可處理。3.4 數(shù)值幀解析幀格式0xFF 4字節(jié)數(shù)據(jù) 0xFEstaticuint8_tnum_restat0;staticuint8_tnum_buf[4];staticuint8_tnum_index0;uint8_ttack_data[4];/** * 函 數(shù)數(shù)值幀啟動并解析 * 參 數(shù)first_byte - 已讀取的幀頭字節(jié)0xFF * 返 回 值無 * 說 明幀格式 0xFF 4字節(jié)數(shù)據(jù) 0xFE */staticvoidnum_frame_start(uint8_tfirst_byte){num_restat1;num_index0;}staticvoiduart_parse_num(uint8_tbyte){if(num_restat1){num_buf[num_index]byte;num_index;if(num_index4){num_restat2;num_index0;}}elseif(num_restat2){if(byte0xFE){// 接收完成拷貝到全局?jǐn)?shù)據(jù)區(qū)for(inti0;i4;i){tack_data[i]num_buf[i];}num_restat0;S1;// 通知主循環(huán)}else{// 幀尾不對重置num_restat0;}}}說明以0xFF作為幀頭接收 4 字節(jié)數(shù)據(jù)后等待0xFE幀尾校驗通過后存入tack_data并置位標(biāo)志S。這種定長幀格式非常適合傳輸傳感器數(shù)據(jù)或控制指令。3.5 其他串口封裝函數(shù)Serial_GetRxFlag()獲取串口接收標(biāo)志位并自動清零返回 1 表示收到新數(shù)據(jù)。Serial_SendByte(Byte)發(fā)送單個字節(jié)并等待發(fā)送完成。ustar_rxd()接收數(shù)據(jù)回傳測試將收到的數(shù)據(jù)原樣發(fā)回。us_send_U1()/us_send2_U1()串口發(fā)送封裝配合中斷處理函數(shù)使用。USART1_IRQHandler_char()/USART1_IRQHandler_num()中斷接收處理分別調(diào)用字符幀或數(shù)值幀解析。注意幀解析函數(shù)需要在USART1_IRQHandler中斷服務(wù)函數(shù)中調(diào)用將接收到的每個字節(jié)喂給對應(yīng)的解析函數(shù)。4. 定時器與 PWM 驅(qū)動封裝定時器是 STM32 中最常用的外設(shè)之一既能做定時中斷也能輸出 PWM 波形驅(qū)動電機(jī)、舵機(jī)等。這里封裝了定時器初始化、PWM 輸出與動態(tài)調(diào)節(jié)等函數(shù)。4.1 定時器內(nèi)部時鐘初始化/** * 函 數(shù)TIM定時器內(nèi)部時鐘初始化APB1 * 參 數(shù)RCC_APB1Periph_ - APB1外設(shè)時鐘使能宏如RCC_APB1Periph_TIM2 * 參 數(shù)TIMX - 定時器指針如TIM2 * 參 數(shù)TIM_ClockDivision - 時鐘分頻因子如TIM_CKD_DIV1 * 參 數(shù)TIM_CounterMode - 計數(shù)模式如TIM_CounterMode_Up * 參 數(shù)ARR - 自動重裝載值 * 參 數(shù)PSC - 預(yù)分頻器值 * 參 數(shù)TIM_RepetitionCounter - 重復(fù)計數(shù)器值高級定時器用通用填0 * 返 回 值無 * 說 明溢出頻率 主頻 / (PSC1) / (ARR1) */voidtimer_init_APB1_in(uint32_tRCC_APB1Periph_,TIM_TypeDef*TIMX,uint16_tTIM_ClockDivision,uint16_tTIM_CounterMode,intARR,intPSC,intTIM_RepetitionCounter){RCC_APB1PeriphClockCmd(RCC_APB1Periph_,ENABLE);TIM_InternalClockConfig(TIMX);TIM_TimeBaseInitTypeDef TIM_TimeBaseinitstructure;TIM_TimeBaseinitstructure.TIM_ClockDivisionTIM_ClockDivision;TIM_TimeBaseinitstructure.TIM_CounterModeTIM_CounterMode;TIM_TimeBaseinitstructure.TIM_PeriodARR;TIM_TimeBaseinitstructure.TIM_PrescalerPSC;TIM_TimeBaseinitstructure.TIM_RepetitionCounterTIM_RepetitionCounter;TIM_TimeBaseInit(TIMX,TIM_TimeBaseinitstructure);}說明該函數(shù)把時鐘使能、內(nèi)部時鐘配置、時基初始化全部封裝好只需傳入 ARR 和 PSC 即可確定定時周期。配合timer_init_CLeaR(TIMX, TIM_IT_Update)清除標(biāo)志并開啟更新中斷即可實現(xiàn)定時中斷功能。4.2 PWM 輸出與動態(tài)調(diào)節(jié)/** * 函 數(shù)PWM輸出開啟配置 * 參 數(shù)TIM_OCMode - 輸出比較模式如TIM_OCMode_PWM1 * 參 數(shù)TIM_OCPolarity - 輸出極性如TIM_OCPolarity_High * 參 數(shù)CCR - 捕獲/比較寄存器初始值占空比 * 參 數(shù)TIMX - 定時器指針 * 返 回 值無 */voidPWEL_OPEN(uint16_tTIM_OCMode,uint16_tTIM_OCPolarity,intCCR,TIM_TypeDef*TIMX){TIM_OCInitTypeDef a;TIM_OCStructInit(a);a.TIM_OCModeTIM_OCMode;a.TIM_OCPolarityTIM_OCPolarity;a.TIM_OutputStateTIM_OutputState_Enable;a.TIM_PulseCCR;TIM_OC1Init(TIMX,a);TIM_Cmd(TIMX,ENABLE);}/** * 函 數(shù)PWM占空比動態(tài)設(shè)置修改CCR * 參 數(shù)TIMX - 定時器指針 * 參 數(shù)Compare - 比較值占空比 Compare / (ARR1) * 返 回 值無 */voidPWM_CCR(TIM_TypeDef*TIMX,uint16_tCompare){TIM_SetCompare1(TIMX,Compare);}說明PWEL_OPEN完成 PWM 通道1的開啟PWM_CCR可在運行中動態(tài)修改占空比非常適合電機(jī)調(diào)速、舵機(jī)角度控制等場景。另有PWM_PSC(TIMx, Prescaler, TIM_PSCReloadMode)用于動態(tài)修改預(yù)分頻值timer_outAPB1支持外部時鐘ETR模式timer_init_APB1_ENCODER用于編碼器計數(shù)場景。調(diào)用示例示例代碼后續(xù)將隨資源包更新補充// 初始化TIM272MHz / (72-1) / (1000-1) ≈ 1kHz 溢出頻率timer_init_APB1_in(RCC_APB1Periph_TIM2,TIM2,TIM_CKD_DIV1,TIM_CounterMode_Up,1000-1,72-1,0);// 開啟PWM1模式初始占空比50%PWEL_OPEN(TIM_OCMode_PWM1,TIM_OCPolarity_High,500,TIM2);// 運行中動態(tài)調(diào)整占空比到25%PWM_CCR(TIM2,250);5. 輸入捕獲驅(qū)動封裝輸入捕獲常用于測量外部信號的頻率和占空比。這里以 TIM3 為例封裝了初始化、從模式觸發(fā)和讀取函數(shù)。5.1 輸入捕獲初始化/** * 函 數(shù)輸入捕獲初始化配置 * 參 數(shù)TIMx - 定時器指針如TIM3 * 參 數(shù)TIM_Channel - 捕獲通道如TIM_Channel_1 * 參 數(shù)TIM_ICFilter - 輸入捕獲濾波器值 * 參 數(shù)TIM_ICPolarity - 捕獲極性如TIM_ICPolarity_Rising * 參 數(shù)TIM_ICPrescaler - 捕獲預(yù)分頻 * 參 數(shù)TIM_ICSelection - 輸入通道映射選擇 * 參 數(shù)j - 模式選擇0普通輸入捕獲1PWM輸入模式 * 返 回 值無 */voidic_init(TIM_TypeDef*TIMx,uint16_tTIM_Channel,intTIM_ICFilter,uint16_tTIM_ICPolarity,uint16_tTIM_ICPrescaler,uint16_tTIM_ICSelection,intj){TIM_ICInitTypeDef a;a.TIM_ChannelTIM_Channel;a.TIM_ICFilterTIM_ICFilter;a.TIM_ICPolarityTIM_ICPolarity;a.TIM_ICPrescalerTIM_ICPrescaler;a.TIM_ICSelectionTIM_ICSelection;TIM_ICInit(TIMx,a);if(j1){TIM_PWMIConfig(TIMx,a);// PWM輸入模式自動配置雙通道}}說明j1時使用PWM輸入模式可同時測量周期和脈寬。5.2 其他輸入捕獲封裝函數(shù)IC_RES(TIMx, TIM_InputTriggerSource, TIM_SlaveMode)配置從模式觸發(fā)源并啟動定時器。IC_GetFreq()返回頻率值Hz公式1MHz / (CCR1)。IC_Getduty()返回占空比0~100%基于 CCR2 脈寬與 CCR1 周期計算。調(diào)用示例示例代碼后續(xù)將隨資源包更新補充// 初始化TIM3_CH1輸入捕獲上升沿觸發(fā)普通模式ic_init(TIM3,TIM_Channel_1,0xF,TIM_ICPolarity_Rising,TIM_ICPSC_DIV1,TIM_ICSelection_DirectTI,0);// 配置從模式觸發(fā)并啟動定時器IC_RES(TIM3,TIM_TS_TI1FP1,TIM_SlaveMode_Reset);// 主循環(huán)中讀取頻率和占空比uint32_tfreqIC_GetFreq();// 頻率單位Hzuint32_tdutyIC_Getduty();// 占空比0~100%注意以上讀取函數(shù)硬編碼了 TIM3若需移植到其他定時器請將TIM3替換為對應(yīng)的定時器指針。6. ADC 驅(qū)動封裝ADC模數(shù)轉(zhuǎn)換器用于將模擬電壓轉(zhuǎn)換為數(shù)字量是傳感器采集的核心外設(shè)。這里以 ADC1 為例封裝了規(guī)則組初始化、校準(zhǔn)、單次轉(zhuǎn)換和多次采樣取平均等函數(shù)。6.1 ADC 規(guī)則組初始化/** * 函 數(shù)ADC規(guī)則組通道初始化配置 * 參 數(shù)RCC_APB2Periph_ADCX - ADC外設(shè)時鐘如RCC_APB2Periph_ADC1 * 參 數(shù)RCC_PCLK2 - ADC時鐘分頻配置如RCC_PCLK2_Div6 * 參 數(shù)ADCx - ADC指針如ADC1 * 參 數(shù)ADC_Channel - ADC通道號 * 參 數(shù)Rank - 規(guī)則組排序位置 * 參 數(shù)ADC_SampleTime - 采樣時間 * 參 數(shù)ADC_Mode - ADC工作模式 * 參 數(shù)ADC_DataAlign - 數(shù)據(jù)對齊方式 * 參 數(shù)ADC_ExternalTrigConv - 外部觸發(fā)轉(zhuǎn)換源 * 參 數(shù)ADC_NbrOfChannel - 規(guī)則組通道總數(shù) * 參 數(shù)ADC_ContinuousConvMode - 連續(xù)轉(zhuǎn)換模式 * 參 數(shù)ADC_ScanConvMode - 掃描模式 * 返 回 值無 */voidAD_init_Regular(uint32_tRCC_APB2Periph_ADCX,uint32_tRCC_PCLK2,ADC_TypeDef*ADCx,uint8_tADC_Channel,uint8_tRank,uint8_tADC_SampleTime,uint32_tADC_Mode,uint32_tADC_DataAlign,uint32_tADC_ExternalTrigConv,intADC_NbrOfChannel,uint32_tADC_ContinuousConvMode,uint32_tADC_ScanConvMode){RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADCX,ENABLE);RCC_ADCCLKConfig(RCC_PCLK2);ADC_RegularChannelConfig(ADCx,ADC_Channel,Rank,ADC_SampleTime);ADC_InitTypeDef A;A.ADC_ContinuousConvModeADC_ContinuousConvMode;A.ADC_DataAlignADC_DataAlign;A.ADC_ExternalTrigConvADC_ExternalTrigConv;A.ADC_ModeADC_Mode;A.ADC_NbrOfChannelADC_NbrOfChannel;A.ADC_ScanConvModeADC_ScanConvMode;ADC_Init(ADCx,A);ADC_Cmd(ADCx,ENABLE);}說明該函數(shù)將時鐘、通道、采樣時間、工作模式等全部參數(shù)化。若需采集多個通道需在ADC_RegularChannelConfig中依次配置各通道的排序位置。6.2 其他 ADC 封裝函數(shù)adc_Calibrate(ADCx)上電后建議先執(zhí)行校準(zhǔn)可有效消除ADC內(nèi)部的偏移誤差提升轉(zhuǎn)換精度。AD_num(ADCx, ADC_FLAG)軟件觸發(fā)單次轉(zhuǎn)換返回12位原始值0~4095。V_num(ADCx, ADC_FLAG)將原始值換算為放大100倍的電壓值如330表示3.30V便于顯示或串口打印。AD_avenum(ADCx, ADC_FLAG, a)對同一通道連續(xù)采樣a次并取平均可有效抑制隨機(jī)噪聲適合對精度要求較高的傳感器采集場景。調(diào)用示例示例代碼后續(xù)將隨資源包更新補充// 初始化ADC1通道0PA0采樣時間55.5周期AD_init_Regular(RCC_APB2Periph_ADC1,RCC_PCLK2_Div6,ADC1,ADC_Channel_0,1,ADC_SampleTime_55Cycles5,ADC_Mode_Independent,ADC_DataAlign_Right,ADC_ExternalTrigConv_None,1,DISABLE,DISABLE);// 上電校準(zhǔn)adc_Calibrate(ADC1);// 單次讀取原始值和電壓值uint16_trawAD_num(ADC1,ADC_FLAG_EOC);// 原始值 0~4095uint16_tvoltV_num(ADC1,ADC_FLAG_EOC);// 電壓值如330表示3.30V// 多次采樣取平均采樣10次uint16_tavgAD_avenum(ADC1,ADC_FLAG_EOC,10);7. DMA 驅(qū)動封裝DMA直接存儲器訪問可在不占用CPU的情況下完成外設(shè)與存儲器之間的數(shù)據(jù)搬運常用于ADC連續(xù)采集、串口收發(fā)等場景。這里封裝了DMA通道初始化和單次傳輸?shù)却瓿蓛蓚€函數(shù)。7.1 DMA 通道初始化/** * 函 數(shù)DMA通道初始化配置 * 參 數(shù)RCC_AHBPeriph - AHB外設(shè)時鐘如RCC_AHBPeriph_DMA1 * 參 數(shù)DMA_PeripheralBaseAddr - 外設(shè)基地址 * 參 數(shù)DMA_PeripheralDataSize - 外設(shè)數(shù)據(jù)寬度如DMA_PeripheralDataSize_Byte * 參 數(shù)DMA_PeripheralInc - 外設(shè)地址是否自增如DMA_PeripheralInc_Enable * 參 數(shù)DMA_BufferSize - 傳輸數(shù)據(jù)量緩沖區(qū)大小 * 參 數(shù)DMA_MemoryBaseAddr - 存儲器基地址 * 參 數(shù)DMA_MemoryDataSize - 存儲器數(shù)據(jù)寬度 * 參 數(shù)DMA_MemoryInc - 存儲器地址是否自增 * 參 數(shù)DMA_DIR - 傳輸方向如DMA_DIR_PeripheralDST / DMA_DIR_PeripheralSRC * 參 數(shù)DMA_M2M - 存儲器到存儲器模式使能 * 參 數(shù)DMA_Mode - 工作模式如DMA_Mode_Normal / DMA_Mode_Circular * 參 數(shù)DMA_Priority - 通道優(yōu)先級 * 參 數(shù)DMAy_Channelx - DMA通道指針如DMA1_Channel1 * 返 回 值無 */voidDMA_inT(uint32_tRCC_AHBPeriph,uint32_tDMA_PeripheralBaseAddr,uint32_tDMA_PeripheralDataSize,uint32_tDMA_PeripheralInc,uint32_tDMA_BufferSize,uint32_tDMA_MemoryBaseAddr,uint32_tDMA_MemoryDataSize,uint32_tDMA_MemoryInc,uint32_tDMA_DIR,uint32_tDMA_M2M,uint32_tDMA_Mode,uint32_tDMA_Priority,DMA_Channel_TypeDef*DMAy_Channelx){RCC_AHBPeriphClockCmd(RCC_AHBPeriph,ENABLE);DMA_InitTypeDef a;a.DMA_PeripheralBaseAddrDMA_PeripheralBaseAddr;a.DMA_PeripheralDataSizeDMA_PeripheralDataSize;a.DMA_PeripheralIncDMA_PeripheralInc;a.DMA_BufferSizeDMA_BufferSize;a.DMA_MemoryBaseAddrDMA_MemoryBaseAddr;a.DMA_MemoryDataSizeDMA_MemoryDataSize;a.DMA_MemoryIncDMA_MemoryInc;a.DMA_DIRDMA_DIR;a.DMA_M2MDMA_M2M;a.DMA_ModeDMA_Mode;a.DMA_PriorityDMA_Priority;DMA_Init(DMAy_Channelx,a);DMA_Cmd(DMAy_Channelx,ENABLE);}說明該函數(shù)將DMA的時鐘、地址、數(shù)據(jù)寬度、方向、模式、優(yōu)先級等全部參數(shù)化一次調(diào)用即可完成通道配置并啟動。7.2 DMA 單次傳輸并等待完成DMA_TRANFER(DMAy_Channelx, DataNumber, DMAy_FLAG)完成一次完整的單次傳輸流程先關(guān)閉DMA、設(shè)置本次傳輸?shù)臄?shù)據(jù)量、重新開啟、等待傳輸完成標(biāo)志置位最后清除標(biāo)志。適合需要精確控制每次傳輸數(shù)據(jù)量的場景。調(diào)用示例示例代碼后續(xù)將隨資源包更新補充// 初始化DMA1通道1外設(shè)到內(nèi)存字節(jié)寬度普通模式DMA_inT(RCC_AHBPeriph_DMA1,(uint32_t)ADC1-DR,// 外設(shè)基地址ADC1數(shù)據(jù)寄存器DMA_PeripheralDataSize_Byte,DMA_PeripheralInc_Disable,4,// 緩沖區(qū)大小4字節(jié)(uint32_t)adc_buffer,// 存儲器基地址DMA_MemoryDataSize_Byte,DMA_MemoryInc_Enable,DMA_DIR_PeripheralSRC,// 外設(shè)→內(nèi)存DMA_M2M_Disable,DMA_Mode_Normal,DMA_Priority_High,DMA1_Channel1);// 啟動一次傳輸并等待完成DMA_TRANFER(DMA1_Channel1,4,DMA1_FLAG_TC1);8. 編碼器接口驅(qū)動封裝編碼器接口用于讀取正交編碼器的轉(zhuǎn)速和方向常用于電機(jī)測速。新手只需調(diào)用初始化函數(shù)并讀取計數(shù)值即可無需理解正交解碼的底層原理。encoder(TIMx, TIM_EncoderMode, TIM_IC1Polarity, TIM_IC2Polarity)初始化編碼器接口并啟動定時器。encoder_get(TIMx)返回有符號16位計數(shù)值正轉(zhuǎn)遞增反轉(zhuǎn)遞減。調(diào)用示例示例代碼后續(xù)將隨資源包更新補充// 初始化TIM2編碼器接口TI1TI2雙邊沿計數(shù)encoder(TIM2,TIM_EncoderMode_TI12,TIM_ICPolarity_Rising,TIM_ICPolarity_Rising);// 主循環(huán)中讀取當(dāng)前計數(shù)值int16_tcountencoder_get(TIM2);if(count0){// 正轉(zhuǎn)}elseif(count0){// 反轉(zhuǎn)}8. 總結(jié)本文通過封裝 GPIO、輸入捕獲、編碼器接口、ADC 和 DMA展示了如何用函數(shù)化思維簡化 STM32 外設(shè)操作。這套封裝特別適合新手具有以下優(yōu)點參數(shù)化端口、引腳、模式、通道、地址等均作為參數(shù)傳入靈活適配不同硬件。防漏配置時鐘使能、初始化、模式設(shè)置等關(guān)鍵步驟全部封裝在函數(shù)內(nèi)部新手按注釋填參即可不會漏寫指令??蓮?fù)用一次封裝多處調(diào)用減少重復(fù)代碼。易維護(hù)修改外設(shè)配置只需調(diào)整調(diào)用參數(shù)無需改動驅(qū)動內(nèi)部邏輯。后續(xù)將持續(xù)補充 SPI、I2C、看門狗等更多外設(shè)的簡易配置。讀者可根據(jù)實際項目需求在此基礎(chǔ)上逐步構(gòu)建屬于自己的 STM32 快速開發(fā)庫。資源獲取本文配套工程代碼已打包為stm32_1.zip可通過夸克網(wǎng)盤下載鏈接https://pan.quark.cn/s/95809e5ce13b?pwdGjmb提取碼Gjmb打開「夸克網(wǎng)盤APP」復(fù)制鏈接或輸入提取碼即可獲取。下載后可直接導(dǎo)入 Keil 工程對照本文各章節(jié)函數(shù)進(jìn)行調(diào)用練習(xí)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
岛国A V在线免费看| 大乔未久88一区| 亚洲在饯| 97就爱干| 91N综合在线| 丁香六月婷婷久久综合| 99这里有精品视频| 亚洲导航深夜福利| 91伊人久| 久久狠狠色噜噜狠狠狠狠97| 大鸡巴久久| 天天日美女的B| 五月丁香综合啪啪| 91三级理论片播放器| 草草草视频在线免费看| 国产区在线| 欧洲大香蕉| 欧美日韩国第一区| 中文字幕在线免费观看视频| 日本色色色视频| 26uuu最新| 91痴汉| 亚洲天堂人人妻| 四虎AV无码| 真实高潮91| 9久综合网| 久久伊人大香蕉| 国产粉嫩出水在线播放| 亚洲天堂美臀在线| 2017超碰| 色噜噜人妻av中文字幕| 97伊人超碰| 午夜无码精品免费看性色| 强奸乱伦中文字幕AV| 美日韩男女操屄视频| 97亚洲精品| 天天澡天天爽日日AV| 日本不卡在线二区三区| 亚洲欧美首页| 精品国模无码| 白嫩国模丰满一二三区| 日韩av在线播放不卡| 欧美另类精品xxxx| 免费看欧美美女黄色大片| 欧美一级久久久丰满| 亚洲成人精品在线一区| 色欲蜜臀AV| 人妻日日干| www成人啪啪18秘 免费| 大香蕉九九| 国产精品色色| 后入人妻一区| 九九热午夜欧亚国产视频| 制服诱惑亚洲一区二区三区在线观看| 亚洲日韩久久精品一区| 欧美日韩狠狠爱| 一区二区三区一亚洲中文字幕、综合区灬 | 五月丁香六月综合缴清无码| 国产又黄又粗的视频| 曰韩操B| 夜嗨影院| 久久久久久亚洲精品不卡人乳 | 熟妇色99| 国产人妖的免费的视频| 国产激情在线| 国产欧美美女免费观看视频| 超碰97最新人妻| 欧美日韩亚洲高清不卡一区二区三区| 日韩欧亚中文在线| 五十路熟女人妻一区二区在线观看| 97碰久久| 91天堂色男人的天堂| 丁香五月天堂| 日韩av三四区| 美女十八禁| 9Ⅰ老熟女| 中文字幕日韩人妻视频一区二区三区| 99精品在线播放| 高清不卡一二三区视频......| 夜夜高潮夜夜爽| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 国产黄色影片在线观看| 乱伦系列一区二区| 一区麻豆 高清中文字幕| 日韩av色图综合| 天天日天天干天天摸天天操| 被操高清无码视频| 大香蕉十区| 亚洲国产福利视频| 岛国黄| 91 国产丝袜在线放观看| 熟妇激情| 夜夜操美女| 五月丁香啪啪网| 亚洲和欧美裸体美女双飞视频| 国产美女自拍视频| 亚洲人妻中文高清| 人妻人人澡人人爽人人| 亚洲av噜噜噜噜噜噜| 殴美大黄片| 97色论| 综合色区偷拍| 国产一区二区视频在线播放| 熟女网站最新| 午夜福利av电影在线| 日韩成人色图| 亚洲一区中文精品| 熟妇高潮精品一区二区三区下载| 欧美日韩在线视频网站| 中文字日本乱码| 久9无限国产| 婷婷丁香五月激情啪啪| 久久风骚城市| 亚洲婷婷五月天| 超碰 国产熟女精品一区| 伊人网青青| www.欧精品| 国产精品农村妇女| 99热这里| 中文 人妻 制服| 超碰99在线观看| 蜜桃臀一区二区aV| 口爆综合网| 欧美熟妇色| 亚洲一区二区三区欧美日韩| 亚洲色棕合| 18禁免费视频| 屁股久久久久久久久| 一级成人性爱| 91性| 成人免费在线网站| 亚洲影视高清第一页| 神马午夜久久久| 成人小说另类在线| 嗯嗯,好大,好爽,好骚 | 日本2020一区二区| 1区2区3区中文字幕日韩| 岛国1区2区3区在线观看| 爱干爱射网啊啊啊| 亚洲激情网一二三四区| 中文字幕第9页萱萱影音先锋| 偷窥自拍亚洲色图| 欧美亚洲色图另类国产| 玖玖爱一区在线| 亚洲乱色熟女一区| 99草精| 一区二区日韩欧美久久| 岛国福利在线精品播放| 欧美激情 亚洲色图| 国产理论视频在线播放| 欧美后入式| 五月激情天| 91无遮挡| 97伦乱| 伊人色综合网| 性久久| 久久久久久九| 麻豆激情综合| 久久九九99| 中文操逼字幕| 偷窥自拍亚洲| 内射黑人| 精品少妇999| 亚洲天堂自拍| 国产后入精品| 日韩探花精品在线视频| 久久久久亚洲| 人妻少妇无码| surenchaopeng| 色色色色电影网| 在线日韩精品一区二区三区| 日本天天干天天日一区| 精品久久久久黄少妇| 福利伊人玖玖国产| 久久久新亚洲AV| 九热超碰| 啊啊啊97视频| 台湾佬中文娱乐自偷自拍| 成人八戒网站| 大香蕉一区二区在线观看.| 日本媚薬中文字幕在线| 丝袜高跟澳门91视频| 日本免费一区二| 日韩欧美经典在线观看| 国内毛片婷婷六月色| 精人妻一区二区三区| 上床不卡网站| 九九热精品免费视频| 97摸视频| 色婷婷丁香五月| 久久九九视频九九视频| 国产精品久久久久久亚洲色欲| 一区二区三区精品视频| 97色伦97色伦国产欧美| 亚洲天堂久久久久久粉红视频| 精品妇操一区二区三区| 无码人妻丰满熟妇区毛片| 国产精品 午夜福利| 久久精品国产精品亚洲艾通辽熟妇 | 精品一区99999| 欧美狠狠鲁| 精品人人| 九九热九九热| 玖玖视频在线资源一区二区三区| 五月婷婷激情网| www黄片免费看com| 无码乱人伦中文视频| 熟女乱伦A| www熟女乱伦com| 欧亚日韩中文在线| 久久精品国产亚洲妲己影视| 人人爱人人操人人性| 亚洲精品一区二区精品| 国产中文字幕在线点播| 亚洲97久久精品亚洲| 亚洲天堂AV在线播放| 欧美在线永久天堂| 国产成人精品必看 | 美女刺激久久国产欧美| 日本狠狠干| 国产99热| 男人天堂站| 在现视频女上位好爽| 91N五十路| 久久熟妇五十路一区| 91殴美大片| 亚洲天堂人人妻| 天天色怡春院| 性高潮久久久久久久久久久| 久久线上视频免费看| 国内一级精品| 国产无马在线| 日韩不卡a级视频专区| 国模吧 一区二区三区| 亚洲午夜AV| 青青草九九九九九| 日韩av电影网站| 久久久久女教师免费一区 | 黄色毛片A片| 99久在线精品99re8| 久久乐| 亚洲精品骚逼| 欧美精品庄| 亚洲一区二区在线观看91| 26uuu最新| 国产女生在线| 中文字幕亚洲欧美在线不卡| 精品少妇人妻| 久久超碰国产一区二区三区| 国产精品成人蜜臀AV在线| 操91| AV男人天堂网| 欧美黄色手机在线观看| 99精品无码| 国模不卡一本二本三电影| 黄久在线| 熟妇的味道HD中文字幕| 99热9| 99蜜桃臀久久久欧美精品网站| 久久久久幕乱码| 超碰2017| 亚洲av无线观看| 国产视频三区四区| 啊啊啊啊免费视频| 久久夜黄色无码A级大片| 亚洲天堂区| 国产情色第一第二页在线观看| 東南亚性呦成人伦理资源在线视频| 久久欲| 亚洲色偷偷色噜噜狠狠99网| 欧美天天综合在线| 青娱乐日韩无码| 一区麻豆 高清中文字幕| 大粗鳼巴久久久久| 婷婷91| 欧美在线中M| A级片日韩欧美国产欧美视频精选观看| 中文字幕精品区先锋资源| 天堂资源欧美| 2024黄色视频| 日韩精品99999| 日韩色女精品| 萌白酱自拍视频| 欧美日本久久精品一区 | 激情久久久| 久久超碰98| 熟妇xxxxx性春色| 99re9这里只有精品| 中文字幕精品码亚洲| 911粉嫩人妻| 成人天天爽| 国产绿奴视频在线观看| 天天综合网1| 亚洲AV秘无码一区..| 天天流夜夜操| 亚洲第一精品在线视频| 午夜精品久久久久| 欧美日韩日产免费网站看| 无码一区二区三区四区五区六区七区八区九区十区视频 | 在线人成亚洲视频免费观看| 成人无码专区精品视频| 久久久99免费| 伊人久久久日韩一区| 18禁在线视频| 大香蕉男人的天堂| 国产 无码 一区二区| 久久一区二区加油站| HEYZO高无码国产精品227| 欧美日日人人天天| 色丁香久久| 欧美 色 亚洲| 一区二区三区日韩欧美| 男人高清无码一区二区| 18禁久久| 欧美日韩99精品麻豆传媒| 日日夜夜精品视频| 屌妞视频久久久久久久久久久久| 美國A片| 中文字幕精品三级久久久| 日本国产成人亚洲精品无码| 久久精品一区二区一8| 亚洲AV乱码专区国产噜噜亚洲| 91精品人妻偷情| 欧美日韩亚洲五月天婷婷| 国产97视频免费观看| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 无码聚合| 欧美中文综合| 日日骚精品视频| 99热99色| 色黄污美女啪啪啪免费网站| 99re这里只有精品2| 韩国女主播青草福利视频| 亚洲第一免费视频| 精品对白久久不卡| 老司机午夜福利视频一区二区| 日本日皮视频逼| 最新日本中文字幕| 一本色道久久综合亚洲二区三区| 99自拍B亚洲| 亚洲最大AV网| 天天干人人看综合| 91中文字幕在线观看| 亚洲人精品久久久喷水| 婷婷影院入口| 岛国毛片在线观看免费| 日韩欧美传媒一区国产| 97丝袜亚洲在线播放| 久久午夜伦| 国产精品久久久久中文字幕| 精品无码久久久久久久杏吧| 久久三区四区| 亚洲91综合| 精品久久久九九九孕妇| 久久这里只精品99re66图| 久久久精品中文字幕爱豆| 综合五月天| 无码人妻系列少妇| 超碰午夜| 超碰97在线色男人??| 亚洲中文字幕妇伦久久| 大香樵伊人网| 欧美日韩999| 午夜福利免费福利视频| 狠狠操官网| 91亚州| 蜜臀99久久国产| 99在线啪| 精品妇操一区二区三区| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 精品少妇一区二区| 欧美中字不卡| 97热视频在线观看| 男人网站婷婷| 日韩操呦呦影院在线观看| 亚洲色图 欧美热图 清纯唯美 另类自拍| 丁香五月婷婷五月| 超碰在线成人| 色情成人五月天| 特色a在线上| AⅤ片水多多| 999在线电影香蕉| 亚洲国产精品成人久久蜜臀| 日本黄色精品| 爆操无码| 亚洲无码国产探花在线观看| 一级性爱视频免费观看 | 夜夜操夜夜高潮夜夜爽国产精品区| 久久久艹艹艹| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 日本操色导航| 99国产精品视频尤物| 国产精品熟女九色九色蜜臀| 国产精品熟女九色九色蜜臀| 十八禁的黄污污免费网站| 久久国产熟女影院| 无遮挡一级毛片视频免费的| 中文字幕成人理论在线| 自慰白浆在线观看| 99热超碰| 一区二区三区 丝袜高跟| 欧美熟妇操操视频| 丝袜美腿射精91| 97视频免费在线| 99999久久精| 日本操逼视频免费| 玖玖爱免费观看视频| 九九久久精品| 亚洲天堂另类小说男人| 久久女同性恋一二区| 亚洲精品国产熟女久久久| 欧美淫乱视频| 2024黄色视频| 欧美性爱十八禁| 六月婷婷综合| 亚洲精品白丝| 欧美高清第一页| AV一起草在线| 国产亚洲深夜激情| 一区操逼| 久久久com| 久久只有精品一区二区三区| 91色综合色| 超碰欧美97| 精品成人无码| 日韩一级二级| 在线电影亚洲色图| 操屄日韩| 久久性视频| 九九热超碰97亚洲最新香蕉| 亚洲色欧| 国产av波波国产精品| 另类图片五月天| 又黄又粗又硬又长又大| 亚洲国产97在线精品一区| 欧美性爱第1 页| 91快色色色色色| 黄色乱论网站| 色天天野狼综合社区| 88xx成人精品视频| 青青草日韩无码| 亚洲日韩乱码中文无码蜜桃臀网站| 亚洲丨在线| 手机在线播放国产福利| 久久精品一区| 亚洲美女av无码| 免费看一级a性色生活片久久无| 黑人中出21连凳花野真衣| 亚洲 日本 不卡| 欧日a| 日本999精品视频| 91亚洲图片| 久草福利在线资源站| 91性生活久久久| 97综合网| 午夜呻吟欧美| 男人的天堂网页| 啪啪啪综合网| aV中文麻| 一块操欧美| 日韩精品影视| 强奸乱伦大香蕉网| 97热视频在线观看| 国产AV激情无码久久无码 | 大逼色网站| 国产女人91精品嗷嗷嗷嗷| 国产妇女精品视频青青草| 国产毛片毛片4p懂色| 五月天激情小说网| 精品999一区二区| 狠狠干,狠狠操| 综合亚洲网| 免费AV播放| 97亚洲自在精品在线观看| 国产精品自拍欧美在线| 99热在线只有精品| 亚洲宅男天堂| 日韩无码人妻| 国产AV人人 夜夜人人澡| 一级@啪啪视频| 夜夜骑夜夜操| 久久99黄色卞西瓜| 欧美组图日韩亚洲中文字幕| 欧美久久婷| 亚洲AV成人精品网站在AV| 欧美一级欧美三级在线观看| 老熟女搡BBBB搡BBBB视频| 嗯嗯啊啊视频一区二区三区| 97在线精品观看视频| 欧美伦乱爱| 黄片色区软件| 国产精品97视频| 一级性爱视频免费在线| 久久久久9999妇女| AV和黑人在线播放| 亚洲少妇喷视频看| 嗯嗯不要 视频| 久久人妻视频网| 精品一区二区三区国产 | 色哟哟av| 国产青一二三| 在线综合色| 欧美日韩小说| 欧美日韩亚洲高清不卡一区二区三区| 亚川综合视频| 亚洲视频精选| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 六月激情婷婷| 91P0RNY大屁股人妻| 亚洲欧美日韩电影网站一区| 狠狠狠狠狠| 少妇一级婬片免费放一级a性色.| 一区超碰一区| 二区熟妇韩日| 丁香五月婷婷啪啪| 涩涩涩综合| 亚洲小说视频| 9 9无尺码天堂网| 午夜福利合集| 超碰av在线| 日本熟女不卡视频| 日本久久久久久久久久| 91电影色诱| 成人免费福利在线观看| 超碰97护士| 国产在线精品电影观看| 嗯嗯嗯嗯啊啊啊好紧好大| 人人摸人人添人人操| 精品国产Av无码久久久伦古装| 天天操人人操骚逼网站| 思思热在线视频免费| 极品美女福利在线观看| 久久久无码精品人妻二区| 丝袜狠狠草尤物人妻av91| 亚洲女毛多水多21P| 日韩在线国产字幕| 97 国产精品| 成人天天看站长推荐| 97人人草| 97人人模人人爽人人| AV在线性爱| 国产一区二区二区按摩精品啪视频| 人人爽夜夜玩视频| 中文字幕97色| 亚洲欧美天堂在线| 9/A片| JULIA一区二区三区在线播放| 欧美精品日韩久久久九| 91人精品妻入口| 超碰97人妻在线| 天久久久噜噜噜久久国产精品爽爽| 美女网站黄页| 亚洲在线观看| 日韩无码服务区| 本道在线| 亚洲精品九九九九九九| 中文字幕av片| 色综合大香蕉| 九久精品| 欧美色女人| 亚洲欧美人妻| 精品国产一区探花在线观看| 1000部熟女视频在线观看| 欧美乱伦专区| 久久精品国内Av熟女高清| 成人性爱免费播放| 婷婷干黄色| 波多野结衣被操50分钟免费视频| 国产成人精品必看| 操高情无码| 天天日B夜夜干B时时操B| 人人妻人人狠人人| 久久激情五月| 丝袜AV一二三区| 99999精品视频| 亚洲男人天堂网久久| 日本一区99| 夜夜爽爽夜夜精品视频| 欧美色图小说综合| 日韩15p| 亚洲无线观看久久| 狠狠操夜夜| 日韩中文字幕在线视频观看| 亚洲男人天堂2019| 日韩三级在线观看mp4| 91成人社区| 亚洲素人综合| JIZZJIZZ亚洲女人被躁| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 嗯啊不要啊在线| 国产性感骚丝袜在线| 天美精品一区二区三区四区在线观看| 91少妇通奸网站| 搡老女人老91二区| 亚洲伊人a线观看视频| 熟女六十路| 色噜噜国产在线| 超碰久在线天天做| 91人妻少妇| 日本成人电影资源网| 九九碰九九爱97超碰| 高树玛利亚无码流出| 任我爽在线视频免费观看 | 97亚洲国产影视| 亚洲日本天堂| 亚洲国产美女久久久久 | 欧美最大综合网| 97操| 2020国产精品| 97超碰久久色| 人妻天天爽天天爽三区| 少妇滛荡视频| 九九九九免费高| 超碰成人人人爽人人爽| 中文字幕狠狠玩| 久久一二三级一一一| 欧美综合综合| 日韩精品黄片免费观看| 欧美色图片91| 97综合国产| 色婷久久| 综合色久欲| 日本人妻中文字幕精品| 综合色图亚洲欧美| 欧美同性恋 的搜索结果 - 91n| 久久受www免费人成| 欧美日不卡| 一本大道久| 中文字幕123| 国产乱码精品久久久久久| 午夜性刺激视频免费观看| 操碰91| 欧美日韩系列| 国产综合操逼高清| 蜜臀久久99'精品久久久| 欧美激情性爱视频网站| 男人的天堂.com| 中文一区二区三区影院| 丝袜美腿诱惑亚洲欧美视频在线观看| 精品人妻15区| 色婷视频| 九九九九九精品视频| 六十路日本| 97久久超碰亚洲| 天堂种子在线www网资源| 私人尤物在线精品不卡| 青青草久久在线| 久操com| 黑丝日韩av丝袜av| 亚洲一区操| 天天综合欧美综合| 日韩性爱视频在线免费观看| 91熟女综合| 一区二区三区高清天码| 综合97亚洲| 岛国视频免费在线观看| 9997se| 国产一区二区av综合| 欧美亚洲色的图| 手机看片1024你懂的国产| 99国产精品自在自在| 日本www操操操| 国内偷拍精品一区二区| 综合色一区三区二区| 九月色婷婷| 色欲av国内精品久久久久久| 99青草| 日韩熟女操逼| 在线免费试看60秒| 欧美日韩99| 秋霞色色影院| 国产精品密臀网在线观看| 日韩精品1区2区中文字幕| 亚洲人精品久久久| 玖色AV| 中文精品一区二去| 亚洲综合色图欧美| 极品丝袜无码| 免费伦费视频在线观看| 欧美另类丝袜熟女| 久久伊人网视频一区二区三区| 国产中文大片资源中文字幕| 97操b| 亚洲第一页欧美| 亚州AV无码国产精品| 男人的天堂va在线| julia中文字幕在线观看| 婷婷天堂站| 国产精品分类在线观看| 91久久精品美女高潮喷水| 麻豆蜜桃视频在线观看| 国产高清在线观看欧美| 熟女人妻精品一区二区视频 | 偷拍色图| 啊啊啊啊啊啊啊国| 婷婷五月天激情网| 91福利网在线观看| 亚洲一区二区中文字幕| 好屌色综合| 97在线国产精品| 被体育老师抱着c到高潮| 26uuu久久| 国产精品农村妇女| Aa东京男人的天堂| 欧美天堂日韩三级国产传媒| 影音先锋国产精品| 国产日韩区| 天天色图| 九九九九九九九九九国产精品 | 国语对白在线播放视频| 亚洲成人精品在线一区| 97久久国产精品女不卡| 国产精品电| 91在线丝袜视频| 偷窥自拍亚洲色图| 九九黄色网| 亚洲欧美在线观看2021| 草草影院最新网址| 久久精品国产亚洲AV清纯| 传媒在线观看一区二区三区| 亚洲自拍青操视频| 欧洲亚洲天堂精品| 粉嫩AV一区夜夜嗨| 久久亚洲天天做| 国产精品久久发布| 精品少妇一区二区三区免费观看| 动漫爆乳3D奶水一区在线观看| 欧美日韩日产免费网站看| a亚洲欧美色欲| 97在线观看| 羞涩视频| 国产精品免费久久久久久久久久| 天天亚洲| 人妻久久一区二区三区 | 人妻天天爽夜夜爽爽| 天天舔天天 | 欧美乱色| 91狠婷| 亚洲人妻一区二区三区| 五月丁香网站| 亚洲男人天堂Av| AV 少妇 人妻 偷拍| 伊人久久婷婷| 99免费在线视频| 天天日夜夜| 校园春色制服丝袜中文字亚洲| 日日狠狠久久偷偷色综合免费| 久久九九99| 日本91白丝| 精品久久久久瑟瑟| 欧美在线啊啊啊| 亚熟hd视频在线| 精品无码一区二区人妻久久蜜桃| 亚洲啪啪啪啪视香蕉| 天天干1区2区在线| 极品少妇久久久久| 日韩小电影| 久久国产AⅤ| 日本成人A片网站| 韩国午夜理伦三级好看| 婷婷五月天色色| 中文啪啪视频| 玖玖爱一区在线| 中文日韩欧美熟| 精品人妻15区| 精品欧美不卡在线播放| 久久精品欧美一区二区三区不卡| 五月天丁香婷婷综合网站| 丁香五月婷婷基地| 狠狠中文字幕| 60秒免费小视频| 综合网少妇| 在线午夜成人无码视频| 在线无码视频| 亚洲色啪| 在线亚洲精品久久久| 激情文学亚洲| 日韩欧洲操屄视频| 中文字幕狠狠玩| 99热综合在线| 九九九精品色乱九九九| 色汉综合| 333kkkk·亚洲com久久| 亚洲日本加勒比在线| 久久久久久久久久久999| 亚州,欧美在线| 精品日韩人妻视频| 婷婷丁香熟妇综合网| 九九英色视频| 精品1区2区3区| 777AV电影| 天天操av懂色| 夫妻AV网站| 嫩草美女久久| 欧美天天插| 91热色| 精品国产91内射久久| 大香交伊人网| 中文字幕精品三级久久久| 亚洲视频中文一区| 99精品在线| 日日干夜夜欢| 亚洲AV秘无码一区..| 另类图片五月天| 97精品网站| 亚洲一区二区三区不卡国产欧美| 日本熟妇一区二区三区| 天天天做天天天爱天天天爽| 欧美激情性久久久久久| 蜜桃成人1区2区3区| 日韩二区三四区五区六区在线看| 中国操逼无码| 青青网三级视频| 精品无人区麻豆乱码1区2区图片 | 91在线限制级| 欧美色图亚洲激情| 天天爽夜夜操| 熟女少妇视频| 大屁股xxxxx| 综合大香蕉美。| 成人性爱av.com| 欧美日韩一干二干| 日韩免费av片高清无码| 亚洲国产一区二区入口| 五月天婷婷成人网| 精品国产乱码久久久久久久久久毛片| 日本狂喷奶水在线播放212| 色老汉色| 国产精品直播在线观看直播| 爽爽歪在线视频| 欲香欲色综合天天伊人| 少妇九九九九| 乱性AV| 91 刺激在线| 91亚洲综合在线| 天天干天天干天天干| 东京热,男人的天堂| 色婷亚洲五月在线观看| 亚洲97网站| 国产高清精品福利| 大香蕉日韩欧美| 九热视频| 久久夜夜| 小泽玛利亚一二三| 蜜桃传媒视频第一区入口在线看| 乱伦1色页| 人妻社区男人天堂| 国产一进一出视频网站| 97视频在线免费播放| 国产网站在线播放| 神马久久久久久久久| 色婷婷五月综合| 青青草中文字幕| 久久超碰、| 国产精品久久久久亚洲av| 久久九精品| 在线无码操| 992大香蕉| 一二三啪啪专区| 日韩精品在线观看观看| 男人成人黄色视频在线观看免费下载| 激情五月天社区| 亚洲欧洲自拍| 久久久久亚洲精品| 国产呦精品一区二区三区下载| 色网亚洲人| 欧洲综合视频| 在线播放一级无码视频| 91天天美女| 日本在线不卡123| 日韩免费看在线黄色片| 成人开心网在线视频| 中文字幕一区av| 7777奇米影视久久| 十八岁啪啪视频免费看| 97综合久第一页| 天美麻豆精品视频99| 大香蕉一区二区在线观看.| 久久久草草精品| 长长久久曰曰夜夜成人网| 免费视频在线一区二区不卡| 国产乱码久久久久久| 五月婷婷六月色| 男人女人18禁片免费看网站| 97超级色碰碰| 国产久久久9999| 国精精品无码一二三区水多多| 色噜噜狠狠色综无码久久| 国产无码一二三区| 我爱操| 校园春色亚洲欧洲| 国产超碰| 免费看黄视频亚洲网站| 久久这里只有精品9| 丝袜狂射91| 97色爱| 色色色网站| 日韩人妻中文视频| 18禁止看精品中文字幕| 人人妻人人爽一区二区三区| 性交一区二区在线播放| 男人天堂站| 五月激情天| 日本色色的视频| 收看日本人日bb| av黄图片在线观看| 精品人妻久久久| 夜夜免费视频| 欧美日韩精品国产91| 情侣开房子拍 日韩无码 女的很漂亮| 国产精品青草综合久久| 北京美女一区二区| 啊啊啊轻点在线观看| 国产AV毛片| 色香综合| 劲爆欧美人妖三区91| 天堂蜜桃无码视频一区二区| www.av在线视频| 91久久免费视频互動交流| 久久区| 91制服丝袜| 久久久久久人| 日本精品一区二区三| 九九九九九九九九九五码| 久久久久密| 偷拍欧美激情| 91xingse| 97网址www| 99热99re超碰精品| 啊啊啊用力在线观看| 久久极品一区二区| 国产亚洲人妻综合日韩 久久| 日韩啪啪网| 免费看一级a性色生活片久久无| 亚洲系列第一页| 在线观看岛国有码| 中文字幕123| 欧美熟女操屄| 日韩一级片在线看| 亚洲中文字幕精品久久久久久直播| 特级丰满少妇一级AAAA爱毛片| 人干人人人操人人摸| 国产成人手机视频激情| 性久久| 亚洲成熟国产精品美女| 黄片免费看黄片免费看| 国产又粗又长又爽又色| 久久美女福利是上海美女| 乱色视频中文字幕| 99热| 天天弄欧美| 色娱乐色呦呦夜夜夜夜av| 久久人妻无码毛片A片麻豆| 欧美在线干| 中文字幕一区二区三区人妻不卡| 中文字幕成人乱码熟女精品国50 | 国产精品另类| 91狠狠综| 欧美黄色大片在线观看| 在线看片国产精品每日更新| 国产AV久久久蜜爱影集| 亚洲色吧网| 欧美色图私拍91| 大香蕉青青9| 欧美激情在线观看视频| 欧美影院一区二区三区| 2017人人操,人人摸| 午夜福利视频在线一区| 夜夜爽77777| a人欧美综合天堂麻豆| 97超碰中文| 啊v在线观看视频| 人人妻人人爽 97人人看碰人免费公开视频| 成人av影院在线观看| 日本 欧美 国产一区| 亚洲熟女国产综合另类| 天美一区在线| 99999精品| 欧美日本国产日韩激情视频| 五月香婷婷| 国产青青美女玩逼视频| 中文乱码字幕观看视频| 国产黄片精品在线| 五月丁香六月| 夜精品久无码| 91 欧美| AV无码久久久精品| 亚洲城人男人的天堂| 久久久91福利姬| 欧美人与动性人交a| 九九黄色视频在线观看| 一区,二区,三区网站| 国产2.3.4区| 一级片在线观看高清无码| 五月天精品| 国产久久久久影院老熟女| 亚洲天堂久久久久久粉红视频| aaaa少妇高潮大片| 欧美亚洲丝袜美女电影| 成人一二三区| 黄色区免费观看中文字幕| 在线啊啊啊啊| 国产激情在线| 国产亚洲精品美女久久久m| 一二三啪啪专区| 91爱剪切久久| 操逼网站视频漫画国产| 欧美中文狠| AVE乱伦| 在线 制服丝袜中出 人妻| 超碰吊日色| 国产男人又猛又粗又爽| 大香蕉天天看妹子| 丁香婷婷激情五月天无毒不卡| 国产传媒操逼视频| 黄色大片一区二区密桃丝袜| 97色欧洲| 狠狠激情综合狠狠操中文字幕| 日日夜夜草草草| 人妻天天爽天天爽三区| 深爱激情五月天| 天操天操夜操夜月操月年年操操| 高清无码在线播放网站| 好爽,再快点啊哈嗯嗯嗯嗯| 久久精品无码专区| 丁香五月久久| 国产精选视频| 亚洲激情av| 超碰4A| 亚洲成人久久美女| 亚洲人精品久久久| 蜜桃无码AV一区二区| 亚洲熟女少妇免费视频| 家庭乱伦网站国产| 少妇99| 中国一区二区亚洲人妻| 久久久精品一区二区| 中日韩欧美精品无码AⅤ一区二区| 久噜噜| 国产一区二区精品久久99| 欧美性爱网97| 91精品国产日韩欧美综合| 加勒比av中文| 亚洲国产麻豆一区二区三区| 男人的天堂久久狠| 伊欧美综合视频| 精品女同一区二区三区| 91狠狠综合久久| 99999国产| 97爱爱爱综合| 九九精品无码专区免费| 殴洲老熟女| 久久性爱网站| 亚洲色性| 翘臀vidoes| 国产精品久久久久无码Av网曝门| 国产精品网站www| 欧美日韩 强奸乱伦| 一本一道久久综合久久| 人妻久久久| 一区二区三区免费视频入口| 伊人国产视频| 亚欧高清在线| 性色A∨91| 伊人网在线观看| 操逼视频免费日韩无码| 国产蜜臀精品一区二区尤物| 夜夜中出国产| 中国少妇XXXX做受| yazhououmeizongya| 内射白嫩美女| 亚洲无吗在线视频| 九九热av| 四虎视频在线观看| 在线观看黄色电话| 九九九九九精品| 色色综合97| 免费黄色片子| 无码人妻精品一区二区三区99不卡| 亚洲 综合 第一页| A久久| 欧美日产国产在线成人第一区| 91天堂丝袜美腿| 久久伊人网视频一区二区三区| 操高情无码| 97精品久久| 亚洲综合色在线| 在现视频女上位好爽| 逼逼逼逼操操操操操操操操操午夜剧场| 久久久月天| 欧美亚洲美少妇一区二区| 亚洲综合婷婷| 国产精品日韩在线一区| 亚州欧美在线| 人妻酒店出差被中出免费在线播放| 乱伦熟女区| 国产一区二区在线播放量| 高精欧美色| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 思思热在线| 激情国产乱伦Av| 亚洲人成网站7777| 精品久久97| 久久久内射良家| 九九夜精品九九在线| 女优免费一区二区永久| 亚洲 国产 精品一区| 色欲久久久久综合网| 亚洲女优有码无码高清| 激情五月天综合网| 69精品人人人人| 99精品在线观看| 操操逼操操逼操操逼逼| 久久久久久网址| 久久9久久| 在线观看高清AV| 91久久久老司机| 99re这里只有精品中心播放| 乱色视频中文字幕| 人妻 中文 日韩| 欧美日韩另类在线播放| 亚洲无992tv| 亚洲成人贴图| 欧美色图欧美| 天美传媒精品久久视频| 97网址97| 麻豆精品三区视频| 天天舔九色婷婷| 亚洲av总站| 久久综合日韩亚洲欧美| 久悠悠av| 国产天美欧美| 人妻AV 中文字幕的| 人人操av| 人妻熟女字幕一区二区| 五月天婷婷小说| 人妻久久久久久| 色综合久| 婷婷久草一区二区三区| 69人妻精品一区二区绯色| 午夜婷婷| AV中文在线可看| 玖色AV| 激情四射婷婷四五月天| 欧美综合骚| 蜜桃久久久久久久| 97香蕉人人乳| 蜜臀色乳| 天天操天天7| 国产中文字幕在线观看| 天天影视综合色| 麻豆av一区二区| 亚洲图片欧美色| 一级做受视频免费是看美女| 免费国产电影一区二区| 欧 美 自 拍 偷 拍| 黄页视频网站野外| 青青草丝袜在线视频| 伊人久久艹| 国产精品老熟女一区二区|