日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

stm32f767中文手册_ALIENTEK 阿波罗 STM32F767 开发板资料连载第五章 SYSTEM 文件夹

發布時間:2023/12/13 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stm32f767中文手册_ALIENTEK 阿波罗 STM32F767 开发板资料连载第五章 SYSTEM 文件夹 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1)實驗平臺:alientek 阿波羅 STM32F767 開發板2)摘自《STM32F7 開發指南(HAL 庫版)》關注官方微信號公眾號,獲取更多資料:正點原子

第五章 SYSTEM 文件夾介紹

第三章,我們介紹了如何在 MDK5 下建立 STM32F7 工程。在這個新建的工程之中,我們

用到了一個 SYSTEM 文件夾里面的代碼,此文件夾里面的代碼由 ALIENTEK 提供,是

STM32F7xx 系列的底層核心驅動函數,可以用在 STM32F7xx 系列的各個型號上面,方便大家

快速構建自己的工程。

SYSTEM 文件夾下包含了 delay、sys、usart 等三個文件夾。分別包含了 delay.c、sys.c、usart.c

及其頭文件。通過這 3 個 c 文件,可以快速的給任何一款 STM32F7 構建最基本的框架。使用

起來是很方便的。

本章,我們將向大家介紹這些代碼,通過這章的學習,大家將了解到這些代碼的由來,也

希望大家可以靈活使用 SYSTEM 文件夾提供的函數,來快速構建工程,并實際應用到自己的項

目中去。

本章包括如下 3 個小結:

5.1,delay 文件夾代碼介紹;

5.2,sys 文件夾代碼介紹;

5.3,usart 文件夾代碼介紹;

5.1 delay 文件夾代碼介紹

delay 文件夾內包含了 delay.c 和 delay.h 兩個文件,這兩個文件用來實現系統的延時功能,

其中包含 7 個函數:

void delay_osschedlock(void);

void delay_osschedunlock(void);

void delay_ostimedly(u32 ticks);

void SysTick_Handler(void);

void delay_init(u8 SYSCLK);

void delay_ms(u16 nms);

void delay_us(u32 nus);

前面 4 個函數,僅在支持操作系統(OS)的時候,需要用到,而后面 3 個函數,則不論是

否支持 OS 都需要用到。

在介紹這些函數之前,我們先了解一下編程思想:CM4 內核的處理和 CM3 一樣,內部都

包含了一個 SysTick 定時器,SysTick 是一個 24 位的倒計數定時器,當計到 0 時,將從 RELOAD

寄存器中自動重裝載定時初值。只要不把它在 SysTick 控制及狀態寄存器中的使能位清除,就

永不停息。SysTick 在《STM32F7 中文參考手冊》里面基本沒有介紹,其詳細介紹,請參閱

《STM32F7 編程手冊》第 211 頁,4.4 節。我們就是利用 STM32 的內部 SysTick 來實現延時的,

這樣既不占用中斷,也不占用系統定時器。

這里我們將介紹的是 ALIENTEK 提供的最新版本的延時函數,該版本的延時函數支持在任

意操作系統(OS)下面使用,它可以和操作系統共用 SysTick 定時器。

這里,我們以 UCOSII 為例,介紹如何實現操作系統和我們的 delay 函數共用 SysTick 定時

器。首先,我們簡單介紹下 UCOSII 的時鐘:ucos 運行需要一個系統時鐘節拍(類似 “心跳”),

而這個節拍是固定的(由 OS_TICKS_PER_SEC 宏定義設置),比如要求 5ms 一次(即可設置:

OS_TICKS_PER_SEC=200),在 STM32 上面,一般是由 SysTick 來提供這個節拍,也就是 SysTick

要設置為 5ms 中斷一次,為 ucos 提供時鐘節拍,而且這個時鐘一般是不能被打斷的(否則就不

準了)

因為在 ucos 下 systick 不能再被隨意更改,如果我們還想利用 systick 來做 delay_us 或者

delay_ms 的延時,就必須想點辦法了,這里我們利用的是時鐘摘取法。以 delay_us 為例,比如

delay_us(50),在剛進入 delay_us 的時候先計算好這段延時需要等待的 systick 計數次數,這里

為 50*216(假設系統時鐘為 216Mhz,因為我們設置 systick 的頻率為系統時鐘頻率,那么 systick

每增加 1,就是 1/216us),然后我們就一直統計 systick 的計數變化,直到這個值變化了 50*216,

一旦檢測到變化達到或者超過這個值,就說明延時 50us 時間到了。這樣,我們只是抓取 SysTick

計數器的變化,并不需要修改 SysTick 的任何狀態,完全不影響 SysTick 作為 UCOS 時鐘節拍

的功能,這就是實現 delay 和操作系統共用 SysTick 定時器的原理。

下面我們開始介紹這幾個函數。

5.1.1 操作系統支持宏定義及相關函數

當需要 delay_ms 和 delay_us 支持操作系統(OS)的時候,我們需要用到 3 個宏定義和 4

個函數,宏定義及函數代碼如下:

//本例程僅作 UCOSII 和 UCOSIII 的支持,其他 OS,請自行參考著移植

//支持 UCOSII

#ifdef OS_CRITICAL_METHOD

//OS_CRITICAL_METHOD 定義了,說明要支持 UCOSII

#define delay_osrunning

OSRunning

//OS 是否運行標記,0,不運行;1,在運行

#define delay_ostickspersec OS_TICKS_PER_SEC //OS 時鐘節拍,即每秒調度次數

#define delay_osintnesting OSIntNesting

//中斷嵌套級別,即中斷嵌套次數

#endif

//支持 UCOSIII

#ifdef CPU_CFG_CRITICAL_METHOD

//CPU_CFG_CRITICAL_METHOD 定義了,說明要支持 UCOSIII

#define delay_osrunning

OSRunning

//OS 是否運行標記,0,不運行;1,在運行

#define delay_ostickspersec OSCfg_TickRate_Hz

//OS 時鐘節拍,即每秒調度次數

#define delay_osintnesting OSIntNestingCtr

//中斷嵌套級別,即中斷嵌套次數

#endif

//us 級延時時,關閉任務調度(防止打斷 us 級延遲)

void delay_osschedlock(void)

{

#ifdef CPU_CFG_CRITICAL_METHOD //使用 UCOSIII

OS_ERR err;

OSSchedLock(&err);

//UCOSIII 的方式,禁止調度,防止打斷 us 延時

#else

//否則 UCOSII

OSSchedLock();

//UCOSII 的方式,禁止調度,防止打斷 us 延時

#endif

}

//us 級延時時,恢復任務調度

void delay_osschedunlock(void)

{

#ifdef CPU_CFG_CRITICAL_METHOD //使用 UCOSIII

OS_ERR err;

OSSchedUnlock(&err);

//UCOSIII 的方式,恢復調度

#else

//否則 UCOSII

OSSchedUnlock();

//UCOSII 的方式,恢復調度

#endif

}

//調用 OS 自帶的延時函數延時

//ticks:延時的節拍數

void delay_ostimedly(u32 ticks)

{

#ifdef CPU_CFG_CRITICAL_METHOD //使用 UCOSIII 時

OS_ERR err;

OSTimeDly(ticks,OS_OPT_TIME_PERIODIC,&err);//UCOSIII 延時采用周期模式

#else

OSTimeDly(ticks);

//UCOSII 延時

#endif

}

//systick 中斷服務函數,使用 ucos 時用到

void SysTick_Handler(void)

{

if(delay_osrunning==1)

//OS 開始跑了,才執行正常的調度處理

{

OSIntEnter();

//進入中斷

OSTimeTick();

//調用 ucos 的時鐘服務程序

OSIntExit();

//觸發任務切換軟中斷

}

}

以上代碼,僅支持 UCOSII 和 UCOSIII,不過,對于其他 OS 的支持,也只需要對以上代

碼進行簡單修改即可實現。

支持 OS 需要用到的三個宏定義(以 UCOSII 為例)即

#define delay_osrunning

OSRunning

//OS 是否運行標記,0,不運行;1,在運行

#define delay_ostickspersec OS_TICKS_PER_SEC //OS 時鐘節拍,即每秒調度次數

#define delay_osintnesting OSIntNesting

//中斷嵌套級別,即中斷嵌套次數

宏定義:delay_osrunning,用于標記 OS 是否正在運行,當 OS 已經開始運行時,該宏定義

值為 1,當 OS 還未運行時,該宏定義值為 0。

宏定義:delay_ ostickspersec,用于表示 OS 的時鐘節拍,即 OS 每秒鐘任務調度次數。

宏定義:delay_ osintnesting,用于表示 OS 中斷嵌套級別,即中斷嵌套次數,每進入一個

中斷,該值加 1,每退出一個中斷,該值減 1。

支持 OS 需要用到的 4 個函數,即

函數:delay_osschedlock,用于 delay_us 延時,作用是禁止 OS 進行調度,以防打斷 us 級

延時,導致延時時間不準。

函數:delay_osschedunlock,同樣用于 delay_us 延時,作用是在延時結束后恢復 OS 的調度,

繼續正常的 OS 任務調度。

函數:delay_ostimedly,則是調用 OS 自帶的延時函數,實現延時。該函數的參數為時鐘節

拍數。

函數:SysTick_Handler,則是 systick 的中斷服務函數,該函數為 OS 提供時鐘節拍,同時

可以引起任務調度。

以上就是 delay_ms 和 delay_us 支持操作系統時,需要實現的 3 個宏定義和 4 個函數。

5.1.2 delay_init 函數

該函數用來初始化 2 個重要參數:fac_us 以及 fac_ms;同時把 SysTick 的時鐘源選擇為外

部時鐘,如果需要支持操作系統(OS),只需要在 sys.h 里面,設置 SYSTEM_SUPPORT_OS 宏

的值為 1 即可,然后,該函數會根據 delay_ostickspersec 宏的設置,來配置 SysTick 的中斷時間,

并開啟 SysTick 中斷。具體代碼如下:

//初始化延遲函數

//當使用 OS 的時候,此函數會初始化 OS 的時鐘節拍

//SYSTICK 的時鐘固定為 HCLK

void delay_init(u8 SYSCLK)

{

#if SYSTEM_SUPPORT_OS

//如果需要支持 OS.

u32 reload;

#endif

HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);

//SysTick 頻率為 HCLK

fac_us=SYSCLK;

//不論是否使用 OS,fac_us 都需要使用

#if SYSTEM_SUPPORT_OS

//如果需要支持 OS.

reload=SYSCLK;

//每秒鐘的計數次數 單位為 K

reload*=1000000/delay_ostickspersec; //根據 delay_ostickspersec 設定溢出時間

//reload 為 24 位寄存器,最大值:16777216,在 180M 下,約合 0.745s 左右

fac_ms=1000/delay_ostickspersec;

//代表 OS 可以延時的最少單位

SysTick->CTRL|=SysTick_CTRL_TICKINT_Msk;//開啟 SYSTICK 中斷

SysTick->LOAD=reload;

//每 1/OS_TICKS_PER_SEC 秒中斷一次

SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk; //開啟 SYSTICK

#else

#endif

}

可以看到,delay_init 函數使用了條件編譯,來選擇不同的初始化過程,如果不使用 OS 的

時候,只是設置一下 SysTick 的時鐘源以及確定 fac_us 值。而如果使用 OS 的時候,則會進行

一些不同的配置,這里的條件編譯是根據SYSTEM_SUPPORT_OS這個宏來確定的,該宏在sys.h

里面定義。

SysTick 是 MDK 定義了的一個結構體(在 core_m4.h 里面),里面包含 CTRL、LOAD、VAL、

CALIB 等 4 個寄存器,

SysTick->CTRL 的各位定義如圖 5.1.2.1 所示:

圖 5.1.2.1 SysTick->CTRL 寄存器各位定義

SysTick-> LOAD 的定義如圖 5.1.2.2 所示:

圖 5.1.2.2 SysTick->LOAD 寄存器各位定義

SysTick-> VAL 的定義如圖 5.1.2.3 所示:

圖 5.1.2.3 SysTick->VAL 寄存器各位定義

SysTick-> CALIB 不常用,在這里我們也用不到,故不介紹了。

SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);這句代碼把 SysTick 的時鐘選擇為

內核時鐘,這里需要注意的是:SysTick 的時鐘源自 HCLK,假設我們外部晶振為 25M,然后

倍頻到 216MHZ,那么 SysTick 的時鐘即為 216Mhz,也就是 SysTick 的計數器 VAL 每減 1,就

代表時間過了 1/216us。所以 fac_us=SYSCLK;這句話就是計算在 SYSCLK 時鐘頻率下延時 1us

需要多少個 SysTick 時鐘周期。

在不使用 OS 的時候:fac_us,為 us 延時的基數,也就是延時 1us,Systick 定時器需要走

過的時鐘周期數。 當使用 OS 的時候,fac_us,還是 us 延時的基數,不過這個值不會被寫到

SysTick->LOAD 寄存器來實現延時,而是通過時鐘摘取的辦法實現的(前面已經介紹了)。而

fac_ms 則代表 ucos 自帶的延時函數所能實現的最小延時時間(如 delay_ostickspersec=200,那

么 fac_ms 就是 5ms)。

5.1.3 delay_us 函數

該函數用來延時指定的 us,其參數 nus 為要延時的微秒數。該函數有使用 OS 和不使用 OS

兩個版本,這里我們首先介紹不使用 OS 的時候,實現函數如下:

//延時 nus

//nus 為要延時的 us 數.

//nus:0~204522252(最大值即 2^32/fac_us@fac_us=21)

void delay_us(u32 nus)

{

u32 ticks;

u32 told,tnow,tcnt=0;

u32 reload=SysTick->LOAD;

//LOAD 的值

ticks=nus*fac_us;

//需要的節拍數

told=SysTick->VAL;

//剛進入時的計數器值

while(1)

{

tnow=SysTick->VAL;

if(tnow!=told)

{

if(tnow

else tcnt+=reload-tnow+told;

told=tnow;

if(tcnt>=ticks)break;

//時間超過/等于要延遲的時間,則退出.

}

};

}

這里就正是利用了我們前面提到的時鐘摘取法,ticks 是延時 nus 需要等待的 SysTick 計數

次數(也就是延時時間),told 用于記錄最近一次的 SysTick->VAL 值,然后 tnow 則是當前的

SysTick->VAL 值,通過他們的對比累加,實現 SysTick 計數次數的統計,統計值存放在 tcnt 里

面,然后通過對比 tcnt 和 ticks,來判斷延時是否到達,從而達到不修改 SysTick 實現 nus 的延

時。對于使用 OS 的時候,delay_us 的實現函數和不使用 OS 的時候方法類似,都是使用的時鐘

摘取法,只不過使用 delay_osschedlock 和 delay_osschedunlock 兩個函數,用于調度上鎖和解鎖,

這是為了防止 OS 在 delay_us 的時候打斷延時,可能導致的延時不準,所以我們利用這兩個函

數來實現免打斷,從而保證延時精度。

5.1.4 delay_ms 函數

該函數是用來延時指定的 ms 的,其參數 nms 為要延時的毫秒數。該函數有使用 OS 和不

使用 OS 兩個版本,這里我們分別介紹,首先是不使用 OS 的時候,實現函數如下:

//延時 nms

//nms:要延時的 ms 數

void delay_ms(u16 nms)

{

u32 i;

for(i=0;i< nms;i++) delay_us(1000);

}

該函數其實就是多次調用前面所講的 delay_us 函數,來實現毫秒級延時的。

再來看看使用 OS 的時候,delay_ms 的實現函數如下:

//延時 nms

//nms:要延時的 ms 數

//nms:0~65535

void delay_ms(u16 nms)

{

if(delay_osrunning&&delay_osintnesting==0)//如果 OS 已經在跑了,且不是在中斷里面

{

if(nms>=fac_ms)

//延時的時間大于 OS 的最少時間周期

{

delay_ostimedly(nms/fac_ms);

//OS 延時

}

nms%=fac_ms;

//OS 已經無法提供這么小的延時了,采用普通方式延時

}

delay_us((u32)(nms*1000)); //普通方式延時

}

該函數中,delay_osrunning 是 OS 正在運行的標志,delay_osintnesting 則是 OS 中斷嵌套次

數,必須 delay_osrunning 為真,且 delay_osintnesting 為 0 的時候,才可以調用 OS 自帶的延時

函數進行延時(可以進行任務調度),delay_ostimedly 函數就是利用 OS 自帶的延時函數,實現

任 務級 延時 的, 其參數 代表 延時 的時 鐘節拍 數( 假設 delay_ostickspersec=200 ,那 么

delay_ostimedly (1),就代表延時 5ms)。

當 OS 還未運行的時候,我們的 delay_ms 就是直接由 delay_us 實現的,OS 下的 delay_us

可以實現很長的延時(達到 204 秒)而不溢出!,所以放心的使用 delay_us 來實現 delay_ms,

不過由于 delay_us 的時候,任務調度被上鎖了,所以還是建議不要用 delay_us 來延時很長的時

間,否則影響整個系統的性能。

當 OS 運行的時候,我們的 delay_ms 函數將先判斷延時時長是否大于等于 1 個 OS 時鐘節

拍(fac_ms),當大于這個值的時候,我們就通過調用 OS 的延時函數來實現(此時任務可以調

度),不足 1 個時鐘節拍的時候,直接調用 delay_us 函數實現(此時任務無法調度)。

5.1.5 HAL 庫延時函數 HAL_Delay 解析

前面我們講解了 ALIENTEK 提供的使用 Systick 實現延時相關函數。實際上,HAL 庫有提

供延時函數,只不過它只能實現簡單的毫秒級別延時,沒有實現 us 級別延時。下面我們列出

HAL 庫實現延時相關的函數。首先是功能配置函數:

//調用 HAL_SYSTICK_Config 函數配置每隔 1ms 中斷一次:文件 stm32f7xx_hal.c 中定義

__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)

{

/*配置 1ms 中斷一次*/

HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);

HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority ,0);

return HAL_OK;

}

//HAL 庫的 SYSTICK 配置函數:文件 stm32f7xx_hal_context.c 中定義

uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb)

{

return SysTick_Config(TicksNumb);

}

//內核的 Systick 配置函數,配置每隔 ticks 個 systick 周期中斷一次

//文件 core_cm4.h 中

__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)

{

...//此處省略函數定義

}

上面三個函數,實際上開放給 HAL 調用的主要是 HAL_InitTick 函數,該函數在 HAL 庫初

始化函數 HAL_Init 中會被調用。該函數通過間接調用 SysTick_Config 函數配置 Systick 定時器

每隔 1ms 中斷一次,永不停歇。

接下來我們來看看延時的邏輯控制代碼:

//Systick 中斷服務函數:文件 stm32f7xx_it.c 中

void SysTick_Handler(void)

{

HAL_IncTick();

}

//下面代碼均在文件 stm32f7xx_hal.c 中

static __IO uint32_t uwTick; //定義計數全局變量

__weak void HAL_IncTick(void) //全局變量 uwTick 遞增

{

uwTick++;

}

__weak uint32_t HAL_GetTick(void) //獲取全局變量 uwTick 的值

{

return uwTick;

}

//開放的 HAL 延時函數,延時 Delay 毫秒

__weak void HAL_Delay(__IO uint32_t Delay)

{

uint32_t tickstart = 0;

tickstart = HAL_GetTick();

while((HAL_GetTick() - tickstart) < Delay)

{

}

}

HAL 庫實現延時功能非常簡單,首先定義了一個 32 位全局變量 uwTick,在 Systick 中斷

服務函數 SysTick_Handler 中通過調用 HAL_IncTick 實現 uwTick 值不斷增加,也就是每隔 1ms

增加 1。而 HAL_Delay 函數在進入函數之后先記錄當前 uwTick 的值,然后不斷在循環中讀取

uwTick 當前值,進行減運算,得出的就是延時的毫秒數,整個邏輯非常簡單也非常清晰。

但是,HAL庫的延時函數有一個局限性,在中斷服務函數中使用 HAL_Delay會引起混亂,

因為它是通過中斷方式實現,而 Systick 的中斷優先級是最低的,所以在中斷中運行 HAL_Delay

會導致延時出現嚴重誤差。所以一般情況下,推薦大家使用 ALIENTEK 提供的延時函數庫。

5.2 sys 文件夾代碼介紹

sys 文件夾內包含了 sys.c 和 sys.h 兩個文件。在 sys.h 里面除了函數申明外主要是定義了一

些常用數據類型短關鍵字。sys.c 里面除了定義時鐘系統配置函數 Stm32_Clock_Init 外主要是一

些匯編函數以及 Cache 相關操作函數,對于函數 Stm32_Clock_Init 的講解請參考本手冊 4.3 小

節 STM32F7 時鐘系統章節內容。接下來我們看看 STM32F7 的 Cache 使能函數。

5.2.1 Cache 使能函數

STM32F7 自帶了指令 Cache(I Cache)和數據 Cache(D Cache),使用 I/D Cache 可以緩存

指令/數據,提高 CPU 訪問指令/數據的速度,從而大大提高 MCU 的性能。不過,MCU 在復位

后,I/D Cache 默認都是關閉的,為了提高性能,我們需要開啟 I/D Cache,在 sys.c 里面,我們

提供了如下函數:

//使能 STM32F7 的 L1-Cache,同時開啟 D cache 的強制透寫

void Cache_Enable(void)

{

SCB_EnableICache(); //使能 I-Cache,函數在 core_cm7.h 里面定義

SCB_EnableDCache(); //使能 D-Cache,函數在 core_cm7.h 里面定義

SCB->CACR|=1<<2; //強制 D-Cache 透寫,如不開啟,實際使用中可能遇到各種問題

}

該函數,通過調用 SCB_EnableICache 和 SCB_EnableDCache 這兩個函數來使能 I Cache 和

D Cache。不過,在使能 D Cache 之后,SRAM 里面的數據有可能會被緩存在 Cache 里面,此

時如果有 DMA 之類的外設訪問這個 SRAM 里面的數據,就有可能和 Cache 里面數據不同步,

導致數據出錯,為了防止這種問題,保證數據的一致性,我們設置了 D Cache 的強制透寫功能

(Write Through),這樣 CPU 每次操作 Cache 里面的數據,同時也會更新到 SRAM 里面,保證

D Cache 和 SRAM 里面數據一致。關于 Cache 的詳細介紹,請參考《STM32F7 Cache Oveview》

和《Level 1 cache on STM32F7 Series》(見光盤:8,STM32 參考資料 文件夾)。

這里 SCB_EnableICache 和 SCB_EnableDCache 這兩個函數,是在 core_cm7.h 里面定義的,

我們直接調用即可,另外,core_cm7.h 里面還提供了以下五個常用函數:

1,SCB_DisableICache 函數,用于關閉 I Cache。

2,SCB_DisableDCache 函數,用于關閉 D Cache。

3,SCB_InvalidateDCache 函數,用于丟棄 D Cache 當前數據,重新從 SRAM 獲取數據。

4,SCB_CleanDCache 函數,用于將 D Cache 數據回寫到 SRAM 里面,同步數據。

5,SCB_CleanInvalidateDCache 函數,用于回寫數據到 SRAM,并重新獲取 D Cache 數據。

在 Cache_Enable 函數里面,我們直接開啟了 D Cache 的透寫模式,這樣帶來的好處就是可

以保證D Cache 和SRAM里面數據的一致性,壞處就是會損失一定的性能(每次都要回寫數據),

如果大家想自己控制 D Cache 數據的回寫,以獲得最佳性能,則可以關閉 D Cache 透寫模式,

并在適當的時候,調用 SCB_CleanDCache、SCB_InvalidateDCache 和 SCB_CleanInvalidateDCache

等函數,這對程序員的要求非常高,程序員必須清楚什么時候該回寫,什么時候該更新 D Cache!

如果能力不夠,還是建議開啟 D Cache 的透寫,以免引起各種莫名其妙的問題。

5.3 usart 文件夾介紹

該文件夾下面有 usart.c 和 usarts.h 兩個文件。串口相關知識,我們將在第九章講解串

口實驗的時候給大家詳細講解。本節我們只給大家講解比較獨立的 printf 函數支持相關的

知識。

5.3.1 printf 函數支持

printf 函數支持的代碼在 usart.c 文件的最上方,在我們初始化和使能串口 1 之后,然

后把這段代碼加入到工程,便可以通過 printf 函數向串口 1 發送我們需要的內容,方便開

發過程中查看代碼執行情況以及一些變量值。這段代碼如果要修改一般也只是用來改變

printf 函數針對的串口號,大多情況我們都不需要修改。

代碼內容如下:

//加入以下代碼,支持 printf 函數,而不需要選擇 use MicroLIB

#if 1

#pragma import(__use_no_semihosting)

//標準庫需要的支持函數

struct __FILE

{

int handle;

};

FILE __stdout;

//定義_sys_exit()以避免使用半主機模式

_sys_exit(int x)

{

x = x;

}

//重定義 fputc 函數

int fputc(int ch, FILE *f)

{

while((USART1->SR&0X40)==0);//循環發送,直到發送完畢

USART1->DR = (u8) ch;

return ch;

}

#endif

總結

以上是生活随笔為你收集整理的stm32f767中文手册_ALIENTEK 阿波罗 STM32F767 开发板资料连载第五章 SYSTEM 文件夹的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

岛国大片免费视频 | 久久久久久久久久久国产精品 | 波多野结衣在线观看一区二区三区 | 国产精品毛片一区二区 | 亚洲国产成人精品在线 | 久久国产免 | 久久午夜网 | 亚洲国产中文字幕在线 | 日韩av一区二区三区四区 | 日韩免费在线观看视频 | 国产精品久久中文字幕 | 亚洲污视频 | 天天天色综合a | 日本韩国精品一区二区在线观看 | 国模精品一区二区三区 | 欧美日韩国产一区二 | 日韩综合一区二区三区 | 麻豆国产精品视频 | 99视屏 | 91人人爱 | 三上悠亚一区二区在线观看 | 亚洲欧洲精品一区二区精品久久久 | 亚洲成人黄色网址 | 91女神的呻吟细腰翘臀美女 | 精品久久久久_ | 丁香婷婷社区 | 色婷婷综合五月 | 91福利社在线观看 | av超碰在线 | 亚洲色五月| 91精品国 | 国产91九色蝌蚪 | 亚洲www天堂com | 天天激情综合 | 日本少妇高清做爰视频 | 国产精品一区二区免费 | 午夜视频在线观看一区二区三区 | 亚洲精品啊啊啊 | 69国产成人综合久久精品欧美 | 久久爱992xxoo | 久视频在线 | 日韩视频一区二区在线观看 | 国产在线观看99 | 日日夜夜天天综合 | 奇米777777| a亚洲视频 | 中文字幕一区二区三区四区久久 | 国产精品久久久久9999 | 国产在线不卡精品 | 欧美一级片在线免费观看 | 久久精品美女视频网站 | 精品欧美在线视频 | 欧美精品在线观看一区 | 国产色在线视频 | 在线99视频 | 在线99视频 | 手机在线黄色网址 | 免费观看黄色12片一级视频 | 欧美久久久久久久 | 日本一区二区三区视频在线播放 | 可以免费观看的av片 | 奇米影视在线99精品 | 国产精品久久久久久久久毛片 | 六月丁香色婷婷 | 国产精品免费视频一区二区 | 久久免费资源 | 毛片美女网站 | 在线视频一二三 | 日韩在线网址 | 正在播放五月婷婷狠狠干 | 午夜国产一区 | 肉色欧美久久久久久久免费看 | 激情av一区二区 | 国产精品久久嫩一区二区免费 | 中文字幕中文字幕在线中文字幕三区 | av免费片 | 国产色网| 国产精品精品国产婷婷这里av | 五月天电影免费在线观看一区 | 麻豆久久久久久久 | 久久美女高清视频 | 国产精品一区二 | 黄色免费电影网站 | 亚洲免费公开视频 | 中文字幕高清在线 | 亚洲精品乱码久久久久久蜜桃动漫 | 久久影视一区二区 | 成年人三级网站 | 91成人免费观看视频 | 97色综合 | 久久精品欧美日韩精品 | 欧美性极品xxxx做受 | 超薄丝袜一二三区 | 成人在线播放免费观看 | 欧洲一区精品 | 色吊丝av中文字幕 | 2019中文字幕第一页 | 狠狠色综合网站久久久久久久 | 国产精品资源在线 | 91精品视频导航 | 国产亚洲午夜高清国产拍精品 | 亚洲国产一二三 | 日韩区视频 | 干干操操 | 日本bbbb摸bbbb | 伊人宗合| 天天色天天搞 | 久久视 | 久久国产精品精品国产色婷婷 | 91大神电影| 经典三级一区 | 国产中文字幕国产 | 又黄又刺激的视频 | 91精品视频观看 | 免费在线激情电影 | 一区二区视频欧美 | 欧洲一区精品 | 91在线一区二区 | 国产欧美最新羞羞视频在线观看 | 国产精品视频永久免费播放 | 96精品高清视频在线观看软件特色 | 久久精品视频在线免费观看 | 欧美一区日韩精品 | 伊人网av| 欧美国产91 | 波多野结衣一区二区 | 麻豆视频在线免费看 | 精品国内 | 美女视频网站久久 | 成人av在线网址 | 欧美亚洲久久 | 亚洲男模gay裸体gay | v片在线播放 | 99精品热 | 久久久久久久久毛片精品 | 久久久国际精品 | 在线视频欧美日韩 | 久久久久一区二区三区 | 91亚洲精品在线观看 | 日韩a级黄色片 | 国产原创在线 | 91欧美视频网站 | 免费在线观看a v | 成人国产精品免费观看 | 91免费在线看片 | 久保带人| 午夜在线免费观看视频 | 天天色天天操天天爽 | 亚洲视频在线看 | 亚洲视频在线观看网站 | 在线视频免费观看 | 国内精品久久久久久久久久久 | 99精品黄色片免费大全 | 在线免费观看黄色 | 久久精品视频在线免费观看 | 丁香五月缴情综合网 | 国产小视频免费观看 | 五月婷婷激情五月 | 久草在线精品观看 | 亚洲精品在线播放视频 | 色福利网 | 国产精品99在线观看 | 亚洲精品在线视频播放 | 国产精品一区二区无线 | 九九久久婷婷 | 国产在线视频在线观看 | 中文字幕久久精品 | 91免费的视频在线播放 | 国产一区在线视频观看 | 青草草在线视频 | 国产精品视频线看 | 欧美日韩视频在线一区 | 亚洲精品高清一区二区三区四区 | 久久69精品久久久久久久电影好 | 狠狠夜夜 | 亚洲精品日韩av | 九九九免费视频 | 成年人在线观看网站 | 99这里只有精品视频 | 狠狠躁日日躁狂躁夜夜躁 | 亚洲成人xxx | 日本高清中文字幕有码在线 | 久色小说 | 在线观看免费色 | 天天爱天天射 | 久久久一本精品99久久精品 | 96精品高清视频在线观看软件特色 | 三级a毛片| 免费视频一区 | 亚洲少妇xxxx | 蜜桃av综合网 | 国产亚洲在线观看 | 日韩福利在线观看 | 在线观看国产日韩 | 午夜视频在线观看欧美 | 国语精品免费视频 | 欧美ⅹxxxxxx| 欧美福利网址 | 伊人天堂av | 国产成人在线免费观看 | 91插插插网站 | 人人干97 | av在线免费观看黄 | 久久久久久欧美二区电影网 | 亚洲欧美激情精品一区二区 | 亚洲精品男人天堂 | 欧美激情奇米色 | 免费观看完整版无人区 | 日韩在线三级 | 99人久久精品视频最新地址 | 精品一区二区电影 | 玖草在线观看 | 在线观看自拍 | 中文欧美字幕免费 | 成人午夜在线电影 | 精品国产视频在线 | 97视频在线观看成人 | 色婷婷综合五月 | 韩日成人av| 午夜精品久久一牛影视 | 国产午夜一级毛片 | 69国产盗摄一区二区三区五区 | 337p日本大胆噜噜噜噜 | 伊人资源视频在线 | 91麻豆精品国产91久久久使用方法 | 成人在线观看资源 | 超碰在线免费97 | 久草视频在线看 | 日日综合| 超碰个人在线 | 亚洲h视频在线 | 成人黄色小说在线观看 | 深爱婷婷久久综合 | 91热视频| 精品福利在线视频 | 右手影院亚洲欧美 | 在线中文字幕网站 | 亚洲电影第一页av | 亚洲精品成人 | 国产资源在线免费观看 | 国产成人精品三级 | 中国一 片免费观看 | 国产在线精品区 | 国产高清精 | 超碰97免费观看 | 玖玖视频精品 | 国产精品18久久久久久首页狼 | 人人插人人| 亚洲视频久久久 | 成人福利在线播放 | 国产精品久久网 | 亚洲精品视频二区 | 国产自在线 | 欧美大香线蕉线伊人久久 | 波多野结衣在线中文字幕 | 伊人天天狠天天添日日拍 | 免费看毛片网站 | 奇米网在线观看 | 久久99久久99精品免费看小说 | 2018好看的中文在线观看 | av日韩精品 | 超碰在线公开免费 | 久艹在线观看视频 | 久久色视频 | 黄色a一级片 | 日韩av电影一区 | 欧美日韩网站 | 五月婷婷在线播放 | 激情婷婷丁香 | 久久精品久久久久 | 日韩欧美精品一区二区三区经典 | 91麻豆视频| 人人模人人爽 | 国产福利免费在线观看 | 99久国产| 黄色大全在线观看 | 一区二区三区视频网站 | 日韩一区二区免费播放 | 亚洲狠狠婷婷 | av三级在线看| 成人av中文字幕在线观看 | 欧美视频网址 | 久久国产网站 | 悠悠av资源片 | 欧美日韩中文在线 | 亚洲精品高清在线观看 | 成人在线视频一区 | 色a资源在线 | 中日韩三级视频 | 欧美亚洲免费在线一区 | 一本一道久久a久久综合蜜桃 | 欧美日韩成人 | 黄色精品视频 | 狠狠色丁香婷婷综合欧美 | 久久1电影院 | 91精品综合在线观看 | 97夜夜澡人人双人人人喊 | 亚洲精品动漫久久久久 | 亚洲 欧美 精品 | 成人黄色av网站 | 天天爽综合网 | 美女视频是黄的免费观看 | 亚洲综合色视频在线观看 | 天天夜夜操 | 狠狠操.com | 91九色网址| 免费黄色av.| 欧美亚洲国产一卡 | 日本黄色免费在线观看 | 黄色av一区二区三区 | 韩日视频在线 | 国产99免费| 十八岁以下禁止观看的1000个网站 | 91亚·色| 五月天激情综合 | 高清不卡免费视频 | 国产一区二区中文字幕 | 999超碰 | 国产精品99久久久久久武松影视 | 色爱区综合激月婷婷 | 免费在线播放视频 | 亚洲成人一区 | 亚洲成人影音 | 综合色亚洲 | 久久午夜色播影院免费高清 | 深夜免费小视频 | 国产精品美女毛片真酒店 | 91精品国产91久久久久久三级 | 九九久久免费视频 | 在线观影网站 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | av资源免费在线观看 | 久久精品欧美日韩精品 | 91精选| 日韩午夜网站 | 视频一区在线免费观看 | 午夜精品三区 | 国内精品久久久久影院优 | 亚洲不卡av一区二区三区 | 五月婷婷六月丁香 | 国产男女爽爽爽免费视频 | 97电影在线| 国产精品亚洲成人 | 国产中文自拍 | 久久大片| 亚洲 欧美 精品 | 日韩在线三级 | 国产成人精品午夜在线播放 | av在线看片 | 久草热久草视频 | 在线观看你懂的网站 | 日韩一区二区在线免费观看 | 国产精品久久久久久久久久久久午夜 | 在线99热| 免费色黄 | 色欲综合视频天天天 | 日日夜夜添 | 免费欧美| www.国产毛片 | 在线观看视频黄色 | 中文字幕一区二区三区四区久久 | 欧美午夜寂寞影院 | 久久在线免费观看 | 久久免费av电影 | 国产精品99久久久久人中文网介绍 | 亚洲免费成人 | 精品99在线观看 | 久草视频在线资源 | 亚洲视频999 | 国产成人精品久久二区二区 | 成年人免费在线观看网站 | 日韩精品在线看 | a在线观看视频 | 日韩欧美视频在线观看免费 | www.操.com| 免费在线播放av电影 | 天天综合日日夜夜 | 欧美日韩国产一区二区三区在线观看 | 黄网站免费看 | 欧美日韩免费一区二区三区 | 国产精品99久久久久人中文网介绍 | 99精品观看 | 欧美伦理电影一区二区 | 伊人热 | 麻豆久久久 | 国产高清av | 日韩视频在线一区 | 国产精品一区二区久久精品爱涩 | 久久无码精品一区二区三区 | 成人黄视频 | 中文字幕中文中文字幕 | 欧美做受xxx | 国产午夜精品一区二区三区 | 中文字幕电影高清在线观看 | 99在线免费视频观看 | 亚洲最新视频在线 | 日韩草比| 亚洲午夜激情网 | 久久久免费少妇 | 国产精品免费观看久久 | 婷婷草 | 99 色| 日本精品中文字幕 | 免费av在线播放 | 在线a人v观看视频 | 亚洲国产精品久久久久久 | 国产一区二区播放 | 国产91九色视频 | 免费观看av网站 | 久久久久免费电影 | 91av手机在线 | 国产精品美女久久久网av | 亚洲成人av在线 | 久久伊人爱 | 射九九 | 久久99欧美 | 最新国产视频 | 国产高清免费av | 免费性网站 | 日韩av视屏 | 最新国产精品拍自在线播放 | 一区三区视频在线观看 | av资源免费在线观看 | 九九久久久久久久久激情 | 国产精品初高中精品久久 | 热精品| 国产精品久久久久久久久久99 | 日韩av成人在线观看 | 久久免费看av | 亚洲丝袜一区二区 | a在线观看国产 | 六月久久婷婷 | 在线视频电影 | 成人97视频| 成人精品国产 | 成人午夜电影久久影院 | 六月激情久久 | 国产色拍拍拍拍在线精品 | 在线成人免费av | 五月婷网站| 综合网在线视频 | 成全在线视频免费观看 | 久草精品免费 | 国产韩国日本高清视频 | 三级黄色三级 | 国产精品免费视频一区二区 | 在线免费黄网站 | 久久精品视频在线免费观看 | 国产一区二区三精品久久久无广告 | 久草精品视频在线观看 | 毛片网站在线观看 | 天天射天天干 | 中文字幕在线视频一区二区 | 久草在线视频首页 | 永久免费av在线播放 | 久久精品激情 | 五月激情丁香婷婷 | 美女网站视频免费都是黄 | 国产黄a三级 | 一区二区三区高清不卡 | 欧美日韩高清不卡 | 毛片无卡免费无播放器 | 激情小说 五月 | 日韩成人高清在线 | 免费网站在线观看成人 | 国产日韩欧美视频 | 亚洲精品欧洲精品 | 国产精品欧美在线 | 99性视频 | 国精产品永久999 | 欧美黄污视频 | 成人久久18免费网站图片 | 成年人网站免费在线观看 | 日韩综合视频在线观看 | 免费av网站观看 | 丝袜美腿在线播放 | 亚洲三级网 | 中国一级特黄毛片大片久久 | 91精品久久香蕉国产线看观看 | 色综合综合 | www夜夜 | 精品亚洲网 | 国内免费的中文字幕 | 日批网站在线观看 | 国产一区二区在线观看视频 | 国产v在线观看 | 五月天激情开心 | 91精品国产99久久久久久久 | 美女在线黄 | 人人讲| 国产成人一区二区三区在线观看 | 婷婷在线观看视频 | 国产在线精品福利 | 九九热只有精品 | 日本精品在线视频 | 天天操·夜夜操 | 欧美日韩另类在线观看 | 欧美精品一区二区在线播放 | 成年人免费电影 | 激情综合网在线观看 | 色综合天天色 | 特级片免费看 | 亚洲 综合 国产 精品 | 免费久久99精品国产婷婷六月 | 国产精品日韩精品 | avlulu久久精品 | 国产成人精品久久二区二区 | 安徽妇搡bbbb搡bbbb | 精品毛片在线 | 日日摸日日添夜夜爽97 | 久久久久久久99 | 激情五月婷婷丁香 | 96av在线视频| 黄色的网站免费看 | 国产一级大片在线观看 | 热99在线视频 | 日本精品一区二区三区在线观看 | 中文字幕在线播放av | 二区视频在线 | 天天天天天天干 | 亚洲天堂网在线视频观看 | 国产精品大片在线观看 | 国产精品色婷婷 | 成人小视频在线 | 免费视频一级片 | 国产综合精品久久 | 免费看毛片网站 | 国产精品美女久久久久久久网站 | 日韩在线视频看看 | 成人av一区二区在线观看 | 亚洲欧美怡红院 | 日韩精品免费一区二区三区 | 国产美女被啪进深处喷白浆视频 | 久久色亚洲 | 天天插综合网 | 午夜性色 | 97国产大学生情侣酒店的特点 | 91九色国产在线 | 五月婷婷六月丁香在线观看 | 欧美日韩不卡一区二区 | 国产精品99久久久久 | 欧美亚洲精品在线观看 | 国产999精品久久久久久 | 久久精品www人人爽人人 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 国产精品色婷婷视频 | 久保带人| 国产理论免费 | 亚洲国产色一区 | 久久久久久久久久久国产精品 | www.色婷婷.com | 在线三级中文 | 中文字幕av一区二区三区四区 | 美女性爽视频国产免费app | 久久精品99国产精品日本 | 99亚洲国产精品 | 91视频最新网址 | 国产精品网红直播 | 久久成人高清 | 色资源在线 | bbbb操bbbb| 日韩中文字幕视频在线观看 | 日本精品一区二区 | 国产五十路毛片 | 国产手机av在线 | 成片免费| 精品一区中文字幕 | 成人久久18免费网站图片 | 国内精品久久久久久久影视麻豆 | 中文字幕在线观看免费 | 丝袜美女在线观看 | 91av影视| 国产在线精品一区 | 五月天久久久久 | 国产专区一| 最近日本韩国中文字幕 | 国产小视频在线观看免费 | 西西4444www大胆无视频 | 久久精品成人欧美大片古装 | 精品日韩在线 | 国产一区二区三区久久久 | 欧美a在线看 | 国产精品网红直播 | 69久久夜色精品国产69 | 九九激情视频 | 在线播放日韩av | 精品亚洲男同gayvideo网站 | 久久久综合香蕉尹人综合网 | 色婷婷久久久 | 成年人视频在线观看免费 | 成人性生交大片免费看中文网站 | 亚洲国产激情 | 免费三级网| 色视频在线观看 | 韩国精品视频在线观看 | 久久婷婷丁香 | 久久99偷拍视频 | 日韩精品一区二区三区电影 | 日韩精品久久一区二区三区 | 波多野结衣视频一区二区三区 | 色播五月激情综合网 | 亚洲区二区 | 成人小视频在线免费观看 | 国产一区二区在线播放 | 精品欧美一区二区在线观看 | 麻豆一精品传二传媒短视频 | 久久综合五月天婷婷伊人 | 精品视频一区在线观看 | 美女视频久久久 | 99视频在线精品国自产拍免费观看 | 69视频在线 | 亚洲国产精品一区二区尤物区 | 国产黄色av| 综合久久久久久久 | 久久亚洲综合国产精品99麻豆的功能介绍 | 黄色软件大全网站 | 日韩三级视频在线观看 | 天天操天天摸天天干 | 欧美国产大片 | 成人午夜剧场在线观看 | 精品国产视频一区 | 字幕网av| 4438全国亚洲精品在线观看视频 | 天天干天天在线 | 日日骑| 精品一区二区久久久久久久网站 | 91在线porny国产在线看 | av久久久| 免费看三级网站 | 狠狠插狠狠操 | 欧美一级艳片视频免费观看 | 久久av免费电影 | 天天爱天天色 | 天天操天天色天天射 | 美女啪啪图片 | 国产精品一区在线观看你懂的 | 久久精品免视看 | 国产日韩精品一区二区 | 干狠狠 | 一区二区高清在线 | 久久久精品成人 | 精品久久久久久久久久久久久久久久 | 久久的色| 亚洲综合激情 | 国产精品福利在线观看 | 国产精品手机在线观看 | 国产拍揄自揄精品视频麻豆 | www.伊人色.com | 国内外成人在线视频 | 日本精品久久久久 | 日本精品中文字幕在线观看 | 亚洲国产午夜视频 | 人人网av | a级国产乱理论片在线观看 伊人宗合网 | 国产一区二区高清视频 | 最近中文字幕免费 | 日韩乱色精品一区二区 | 久久69精品 | 一级一片免费看 | 国产黄色精品网站 | 久久久久久久国产精品 | 色综合天天综合在线视频 | 一级一片免费观看 | 2024国产精品视频 | 狠狠色综合欧美激情 | 99免费在线视频观看 | 亚洲最新毛片 | www.亚洲激情.com | 99久久久久久久久久 | 日韩在线观看视频免费 | 久久国产99| 日本中文在线 | 91人人在线 | 毛片网站观看 | av在线播放亚洲 | 日韩欧美在线观看 | 国产精品久久久久久久久久了 | 国产91大片| 激情五月开心 | 亚洲日本va午夜在线电影 | 中文在线字幕免 | 国产在线播放一区二区三区 | 久久精品a | 免费h漫在线观看 | 国产亚洲精品久久久网站好莱 | 亚洲精品在线视频观看 | 成人中心免费视频 | 日韩久久久久久久久 | 国产精品 日韩 | 一区二区三区在线观看 | 午夜精品99久久免费 | 天天干天天怕 | 99热在| 色五月激情五月 | 不卡精品 | 久免费视频| 91超级碰| 久久精品8 | www久久com| 福利片免费看 | 欧美乱淫视频 | 亚洲成人精品在线 | 69精品视频| 欧美精品久久久久久久免费 | 国产成人久久77777精品 | 天天激情综合网 | 一区二区三区高清 | 91精品成人 | 六月久久婷婷 | 天天操天天色天天射 | 日韩 在线观看 | 91av在线电影 | 一区二区三区四区不卡 | 二区三区av | 欧美精品天堂 | 色天天综合网 | 成人在线观看日韩 | 国产精品欧美精品 | 亚洲亚洲精品在线观看 | 激情综合电影网 | 四虎影视精品永久在线观看 | 成人免费xxx在线观看 | 国产一二三精品 | 黄色小说视频在线 | 97超碰福利久久精品 | 久久er99热精品一区二区 | 日韩欧美在线综合网 | 在线看国产视频 | 日本在线观看中文字幕 | 国产精品麻豆果冻传媒在线播放 | 日韩免费在线网站 | 天堂av最新网址 | 91系列在线观看 | 在线免费观看一区二区三区 | 国产精品理论在线观看 | 午夜99| 国产精品一区二区无线 | 91亚洲精品久久久中文字幕 | 中文字幕亚洲精品在线观看 | 国内精品久久久久影院优 | av爱干| 精品在线免费观看 | 亚洲精品视频免费在线观看 | 精品视频亚洲 | 国产精品欧美精品 | 亚洲成人黄色在线观看 | 国产成人福利 | 国产视频不卡一区 | 国产午夜在线观看视频 | 精品国产自在精品国产精野外直播 | 国产一在线精品一区在线观看 | 精品日韩在线一区 | 午夜视频在线观看一区二区三区 | 成年人在线播放视频 | 国产又粗又硬又长又爽的视频 | 在线亚洲小视频 | 青青草国产精品视频 | 麻豆免费视频观看 | 99精品久久精品一区二区 | 9草在线 | 亚洲精品乱码久久久久久高潮 | 91九色精品女同系列 | 毛片网免费| 日本婷婷色 | 免费精品在线视频 | 成人xxxx| 美女在线观看av | 色丁香综合 | 国内精品久久久久久久影视麻豆 | 亚洲专区在线 | 天海翼一区二区三区免费 | 成人免费在线观看av | 婷婷六月综合网 | 亚洲视频 视频在线 | 视频成人永久免费视频 | 日韩一级理论片 | 国产精品一区电影 | 中文字幕在线视频一区二区三区 | 激情综合网天天干 | 在线观看视频h | 久久精品牌麻豆国产大山 | 免费看片在线观看 | 国产人成看黄久久久久久久久 | 欧美日韩视频免费看 | 深爱开心激情 | 欧美一性一交一乱 | 成人免费在线观看电影 | 亚洲欧洲精品一区二区精品久久久 | 国产在线色视频 | 午夜视频在线观看一区二区三区 | 久久久久一区二区三区四区 | 在线 国产 亚洲 欧美 | 91av电影在线观看 | 久久精品国产精品亚洲精品 | 91久久久久久久 | 在线观看视频中文字幕 | 日韩欧美一二三 | 欧美日韩免费一区二区 | 精品国产精品国产偷麻豆 | 欧美国产视频在线 | 久久久久久久综合色一本 | 国产不卡网站 | 国内精品久久久久久久影视简单 | 一级欧美日韩 | 美腿丝袜一区二区三区 | 9色在线视频| 久久久久久久18 | 成人国产一区二区 | 国产精品999久久久 久产久精国产品 | 麻豆va一区二区三区久久浪 | 狠狠的干 | 在线国产精品一区 | 成人午夜片av在线看 | 亚洲午夜av| 久草在线高清 | 曰韩在线 | 在线免费观看黄网站 | 伊人www22综合色 | 亚洲婷婷网 | 97精品国产97久久久久久春色 | 中文字幕在线观看2018 | 久久97久久97精品免视看 | 国产精品18毛片一区二区 | 狠狠操狠狠干天天操 | 福利视频导航网址 | 免费h在线观看 | 久久女同性恋中文字幕 | 久草视频在线免费 | 欧美二区视频 | 98涩涩国产露脸精品国产网 | 91亚洲精品国产 | 欧美一级xxxx | 国产精品久久久久永久免费看 | 国产又粗又猛又爽又黄的视频先 | 五月天网站在线 | 在线免费视频 你懂得 | 日本中文字幕系列 | 亚洲激情一区二区三区 | 国产精品婷婷午夜在线观看 | 亚洲精品在线视频播放 | 99re亚洲国产精品 | 精品电影一区二区 | 欧美国产日韩激情 | 午夜视频色 | 亚洲欧美日韩在线看 | 国产成人精品一二三区 | 麻豆视频网址 | 久久精品电影网 | 99久久精品国产一区二区成人 | 黄污在线观看 | 国产午夜精品福利视频 | 天天插视频 | 中文字幕一区二区三区视频 | 又黄又刺激 | 午夜影视av| 99精品影视 | 精品国产自在精品国产精野外直播 | 久久久久久久久久久精 | 激情综合五月天 | 在线观看av大片 | 日韩理论电影在线 | 激情综合五月网 | 久久久99精品免费观看乱色 | 2018好看的中文在线观看 | 在线 欧美 日韩 | 精品国产人成亚洲区 | 欧美天天综合 | 四虎在线视频 | 91污在线 | 国产麻豆电影在线观看 | 黄影院| 香蕉影院在线播放 | 国产免费观看av | 西西444www高清大胆 | 国产高清成人av | a电影免费看 | 91亚洲国产成人 | 美女一区网站 | 夜夜爽88888免费视频4848 | 又黄又刺激视频 | 色婷婷狠狠操 | 狠狠的干狠狠的操 | 久久第四色 | www五月婷婷 | 久久综合久久八八 | 在线视频观看91 | 亚洲韩国一区二区三区 | 五月婷婷激情 | 久久精品视频在线观看 | 免费在线观看日韩视频 | 黄在线| 天天艹天天干天天 | 精品中文字幕在线观看 | 亚洲免费av片 | 日本精油按摩3 | 九九热视频在线播放 | 久久久久久久久久久网 | 色综合天天综合 | 欧美日韩不卡在线视频 | 97超碰成人在线 | 日韩理论在线观看 | 日本一区二区不卡高清 | 97香蕉久久超级碰碰高清版 | 日本一区二区三区免费观看 | 日本公妇色中文字幕 | 天天干天天射天天爽 | 少妇性色午夜淫片aaaze | 三级黄色网址 | 韩国av免费在线观看 | 日日爱视频 | 91看毛片 | 天天干天天草天天爽 | 欧美精品一区二区在线播放 | 波多野结衣久久精品 | 久久狠狠亚洲综合 | 亚洲激情国产精品 | 精品国产一区二区三区久久 | 久久亚洲成人网 | 精品1区2区3区 | 免费在线观看不卡av | av网站播放 | av在线免费播放网站 | av电影久久 | 国产日产精品一区二区三区四区的观看方式 | 亚洲视频网站在线观看 | 99视频在线精品免费观看2 | 国产亚洲视频在线 | 人人看人人做人人澡 | 精品国产伦一区二区三区观看方式 | 视频国产在线观看18 | 色综合久久88色综合天天人守婷 | 人人爽人人搞 | 免费三级黄| 日韩av免费一区 | 欧美精品乱码久久久久久按摩 | 在线精品亚洲一区二区 | 偷拍区另类综合在线 | 欧美午夜精品久久久久久孕妇 | 免费男女羞羞的视频网站中文字幕 | 久久久久国产一区二区三区四区 | 久久免费视频观看 | 日日日操操 | 国产精品2019 | 看v片| 男女啪啪免费网站 | 欧美在线观看小视频 | 精品久久91 | 国产高清av免费在线观看 | 日韩高清免费无专码区 | 成人午夜免费剧场 | 超碰国产在线播放 | 91在线看视频免费 | 免费在线播放视频 | 国内毛片毛片 | 精品成人国产 | 国产精品高清一区二区三区 | 探花视频在线观看免费 | 欧美一级片免费观看 | 日色在线视频 | 在线黄色免费av | 欧美一区二区三区不卡 | 亚洲天堂自拍视频 | 精品久久电影 | 日精品在线观看 | 在线成人一区二区 | 91亚色视频在线观看 | 人人插人人费 | 9999免费视频| 国产一级二级三级在线观看 | av网站免费线看精品 | 香蕉视频在线观看免费 | 国产在线观看99 | 激情视频免费观看 | 欧美高清视频不卡网 | 色偷偷88888欧美精品久久久 | av中文字幕在线看 | 国产午夜精品av一区二区 | www激情网 | 亚洲欧美综合精品久久成人 | 国产999精品 | 中文字幕一区二区三区乱码在线 | 天天色天天色 | 亚洲丝袜一区二区 | 国产对白av | 午夜精品福利一区二区 | 五月婷婷开心中文字幕 | 国产流白浆高潮在线观看 | 日韩三级视频在线观看 | 尤物97国产精品久久精品国产 | 国产高清视频在线 | 欧美日韩二区三区 | 午夜在线看 | 首页中文字幕 | 亚洲高清精品在线 | 在线观看的av网站 | 一区二区视频免费在线观看 | 国产视频一区精品 | 一区二区三区国产精品 |