stm32IO輸入模式筆記

2021-09-17 22:21:49 字數 1747 閱讀 1703

1.模擬輸入

我認為模擬輸入最重要的一點就是。他不經過輸入資料暫存器,所以我們無法通過讀取輸入資料暫存器來獲取模擬輸入的值,我認為這一點也是非常好理解的,由於輸入資料暫存器中存放的不是0就是1。而模擬輸入訊號不符合這一要求,所以自然不能放進輸入資料暫存器。該輸入模式,使我們能夠獲得外部的模擬訊號。

2.浮空輸入

該輸入狀態。我的理解是。它的輸入全然由外部決定,我認為在資料通訊中應該能夠使用該模式。應為在資料通訊中。我們直觀的理解就是線路兩端連線著傳送端和接收斷。他們都須要準確獲取對方的訊號電平,不須要外界的干預。

所以我認為這樣的情況適合浮空輸入。比方我們熟悉的i2c通訊。

3上拉輸入

上拉輸入就是在輸入電路上使用了上拉電阻。這樣的模式的優點在於我們什麼都不輸入時,由於內部上拉電阻的原因,我們的處理器會認為我們輸入了高電平。這就避免了不確定的輸入。

這在要求輸入電平僅僅要高低兩種電平的情況下是非常實用的。

4下拉輸入

和上拉輸入相似,只是下拉輸入時,在外部沒有輸入時,我們的處理器會認為我們輸入了低電平。

5開漏輸出

開漏輸出,輸出端相當於三極體的集電極。所以適合與做電流驅動的應用。要得到高電平。須要上拉電阻才幹夠。

6推挽輸出

推挽輸出使用了推挽電路,結合推挽電路的特性。它是由兩個mosfet組成,乙個導通的同一時候,另外乙個截至,兩個mosfet分別連線高低電平,所以哪乙個導通就會輸出相應的電平。推挽電路速度快,輸出能力強,直接輸出高電平或者低電平。

能夠輸出高,低電平,連線數字器件; 推挽結構通常是指兩個三極體分別受兩互補訊號的控制,總是在乙個三極體導通的時候還有乙個截止。

7復用開漏和復用推挽

在操作ds18b20時,需要用到io口的方向設定。經過自己研究現總結如下,供大家分享。如有問題,請指正交流。

1 例子

/io方向設定/

#define ds18b20_io_in()

#define ds18b20_io_out()

/io操作函式/

#define ds18b20_dq_out peout(8)

#define ds18b20_dq_in pein(8)

2 分析

gpioe->crh&=0xfffffff0;gpioc->crh|=8<<0

先拋開設定完是什麼意思,說一下這樣設定,是做了什麼

gpioe->crh&=0xfffffff0;將gpioe->crh暫存器的低四位置為0,其他位上的數值不變

gpioc->crh|=8<<0;將1000右移0位

3 說明

每個io口都有兩個暫存器crh和crl來設定io方向,其中crh用來設定高8-15引腳,crl用來設定0-7引腳

每個引腳的設定需要四位,拿最0引腳的設定來說明。

1:0位用來配置埠模式:

00:輸入模式(復位後的狀態)

01:輸出模式,最大速度10mhz

10:輸出模式,最大速度20mhz

11:輸出模式,最大速度50mhz

3:2為用來進一步設定埠

輸入模式:

00:模擬輸入

01:浮空輸入(復位後的狀態)

10:上拉/下拉輸入模式

11:保留

輸出模式:

00:通用推挽輸出

01:通用開漏輸出

10:復用功能推挽輸出

11:復用功能開漏輸出

STM32 IO口工作模式

一 推挽輸出 可以輸出高 低電平,連線數字器件 推挽結構一般是指兩個三極體分別受兩個互補訊號的控制,總是在乙個三極體導通的時候另乙個截止。高低電平由ic的電源決定。推挽電路是兩個引數相同的三極體或mosfet,以推挽方式存在於電路中,各負責正負半周的波形放大任務,電路工作時,兩隻對稱的功率開關管每次...

STM32 IO口模式介紹

gpio mode ain 模擬輸入模式 gpio mode in floating 浮空輸入模式 gpio mode ipd 下拉輸入模式 gpio mode ipu 上拉輸入模式 gpio mode out od 通用開漏輸出模式 gpio mode out pp 通用推挽輸出模式 gpio m...

stm32 IO復用配置

gpio pinafconfig gpioa,gpio pinsource9,gpio af usart1 gpioa9usart1解析 gpio為埠a的基址 gpio pinsource9 為埠9 gpio af usart1 復用對映,巨集定義為 define gpio af usart1 ui...