娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

STM32 GPIO的原理、特性、選型和配置

發布者:RadiantSoul最新更新時間:2025-01-02 來源: jianshu關鍵字:STM32  GPIO  選型  配置 手機看文章 掃描二維碼
隨時隨地手機看文章

1、基本結構

STM32 GPIO是通用輸入/輸出端口的英文簡稱,其可實現輸入、輸出、驅動、通信等功能,STM32的I/O 端口有8種模式(4種輸入模式和4種輸出模式),每個 I/O 端口位支持3種最大翻轉速度(2MHz、10MHz、50MHz),均可自由編程,但I/O 端口寄存器必須按 32 位字、半字(16位)或字節(8位)進行訪問,具體模式如下所示:

浮空輸入

上拉輸入

下拉輸入

模擬輸入

開漏輸出

推挽輸出

復用功能推挽輸出

復用功能開漏輸出

以STM32L011為例(其他STM32處理器大同小異),GPIO基本結構如下所示:

關鍵器件解析:

1、保護二極管:防止I/O引腳外部過高、過低的電壓輸入,當引腳電壓高于VDDIOx時,上方的二極管導通;當引腳電壓低于VSS時,下方的二極管導通,防止不正常電壓引入芯片導致芯片燒毀。

2、開關:開關為TTL肖特基觸發器,將模擬信號轉化為0和1的數字信號,但當GPIO作為ADC采集電壓通道時,此時信號不再經過觸發器進行TTL電平轉換。

3、P-MOS、N-MOS:單元電路使得GPIO具有“推挽輸出”和“開漏輸出”的功能。

2、4種輸入模式

STM32具有浮空輸入、上拉輸入、下拉輸入和模擬輸入4種輸入模式。

浮空輸入模式,I/O端口的電平信號由外部輸入決定,電平狀態不確定,最終直接進入輸入數據寄存器。浮空輸入通常用于配置USART的RX引腳,如下圖所示:

上拉輸入模式,I/O端口懸空(在無信號輸入)的情況下,電平狀態保持在高電平,當輸入低電平時,電平狀態是低電平,最終直接進入輸入數據寄存器,如下圖所示:

下拉輸入模式,I/O端口懸空(在無信號輸入)的情況下,電平狀態保持在低電平,當輸入高電平時,電平狀態是高電平,最終直接進入輸入數據寄存器,如下圖所示:

模擬輸入模式,I/O端口的模擬信號(電壓信號,而非電平信號)直接模擬輸入到片上外設模塊,比如ADC模塊等。模擬輸入通常應用于ADC模擬輸入,或者低功耗下省電等情景,如下圖所示:

3、4種輸出模式

STM32有開漏輸出、推挽輸出、復用功能開漏輸出和復用功能推挽輸出4種輸出模式(本文STM32L011的上、下拉電阻為公共區域,所以輸出模式具有上拉或下拉功能)。

開漏輸出模式,通過配置置位/復位寄存器或者輸出數據寄存器的值,途經N-MOS管,最終輸出到I/O端口。開漏輸出只可以輸出強低電平,高電平得靠外部電阻拉高,輸出端相當于三極管的集電極,適合于做電流型的驅動,其吸收電流的能力相對強(一般20ma以內),如下圖所示:

需要注意N-MOS管的特性,當設置輸出的電平狀態為高電平時,N-MOS管處于關閉狀態,此時I/O端口的電平就不會由輸出的高低電平決定,而是由I/O端口內部或者外部的上拉或者下拉決定;當設置輸出的電平狀態為低電平時,N-MOS管處于開啟狀態,此時I/O端口的電平就是低電平。

推挽輸出模式,通過配置置位/復位寄存器或者輸出數據寄存器的值,P-MOS管和N-MOS管,最終輸出到I/O端口。推挽輸出可以輸出強高、低電平,連接數字器件,如下圖所示:

需要注意P-MOS管和N-MOS管的特性,當設置輸出的電平狀態為高電平時,P-MOS管處于開啟狀態,N-MOS管處于關閉狀態,此時I/O端口的電平就由P-MOS管決定:高電平;當設置輸出的電平狀態為低電平時,P-MOS管處于關閉狀態,N-MOS管處于開啟狀態,此時I/O端口的電平就由N-MOS管決定:低電平。

復用功能開漏輸出模式、復用功能推挽輸出模式的原理和開漏輸出模式、推挽輸出模式原理基本一致,只不過輸出的高低電平,不是由MCU配置置位/復位寄存器或者輸出數據寄存器的值,而是利用片上外設模塊的復用功能輸出來決定的(通信接口(SPI,UART,I 2 C,USB,CAN,LCD等)、定時器、調試接口等復用)。復用功能開漏輸出通常用于TX1、MOSI、MISO等引腳的配置,復用功能推挽輸出通常用于I2C的SCL、SDA。以復用功能推挽輸出模式為例,實現原理如下圖所示:

4、GPIO選型和配置

如何選擇適合其應用開發的GPIO模式和配置呢?請參考下圖所示。

?著作權歸作者所有,


關鍵字:STM32  GPIO  選型  配置 引用地址:STM32 GPIO的原理、特性、選型和配置

上一篇:STM32的CAN過濾器-bxCAN的過濾器的4種工作模式以及使用方法總結
下一篇:入門單片機stm32定時器詳解

推薦閱讀最新更新時間:2025-04-23 17:21

stm32GPIO配置及庫函數學習筆記——以流水燈為例
1.GPIO全稱:gpio general-purpose input/output 通用輸入/輸出端口 2.GPIO寄存器中文名稱與英文縮寫對照表 3.GPIO_InitTypeDef結構體定義 typedef struct { uint16_t GPIO_Pin;//選擇待設置的GPIO引腳 GPIOSpeed_TypeDef GPIO_Speed;//設置選中管腳的速率 GPIOMode_TypeDef GPIO_Mode;//設置選中管腳的工作狀態(模式) }GPIO_InitTypeDef; 4.GPIO_Mode:端口的每個位可以分別配置成多種模式,中文名稱與英文縮寫對照表如下:
[單片機]
<font color='red'>stm32</font>之<font color='red'>GPIO</font><font color='red'>配置</font>及庫函數學習筆記——以流水燈為例
STM32F103 GPIO寄存器配置
每個GPI/O端口有 兩個32位配置寄存器(GPIOx_CRL,GPIOx_CRH) 兩個32位數據寄存器(GPIOx_IDR和GPIOx_ODR) 一個32位置位/復位寄存器(GPIOx_BSRR) 一個16位復位寄存器(GPIOx_BRR) 一個32位鎖定寄存器(GPIOx_LCKR) 函數介紹 void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) 功能: 根據 GPIO_InitStruct 中指定的參數初始化外設GPIOx寄存器 參數: GPIOx:x可以是A,B,C,D或者E,來選擇GPIO外設 GPIO_InitStru
[單片機]
STM32F103 <font color='red'>GPIO</font>寄存器<font color='red'>配置</font>
STM32自學手冊之GPIO
GPIO是STM32最常用的設備之一。STM32可以提供最多達80個雙向IO口(視型號而定),他們分別分布在A-E五個端口中。每個端口有16個IO,每個IO口都可以承受最大為5V壓降。通過GPIO的配置寄存器,我們可以把GPIO口配置成我們想要的工作模式,一共有如下8種模式: ● 浮空輸入 ● 帶上拉電阻的輸入 ● 帶下拉電阻的輸入 ● 模擬輸入 ● 開漏輸出 ● 推挽輸出 ● 復用推挽輸出 ● 復用開漏輸出 STM32的GPIO除了上述8種工作模式之外,還可以進行兩種映射:外部中斷映射和第二功能映射(也叫重映射)。當某個IO口映射為外部中斷通道后,該IO口就成為一個外部中斷源,我們可以在這個I
[單片機]
<font color='red'>STM32</font>自學手冊之<font color='red'>GPIO</font>
stm32內部時鐘有哪些時鐘源 stm32使用內部時鐘配置教程
stm32內部時鐘有哪些時鐘源 在STM32中,可以用內部時鐘,也可以用外部時鐘,在要求進度高的應用場合最好用外部晶體震蕩器,內部時鐘存在一定的精度誤差。 內部時鐘有2個時鐘源可以選分別是HSI、LSI、(內部高速,內部低速,),高速時鐘主要用于系統內核和總線上的外設時鐘。低速時鐘主要用于獨立看門狗IWDG、實時時鐘RTC。 1、HSI是高速內部時鐘,RC振蕩器,頻率為8MHz,上電后默認的系統時時鐘 SYSCLK = 8MHz,Flash編程時鐘。 2、LSI是低速內部時鐘,RC振蕩器,頻率為40kHz,可用于獨立看門狗IWDG、實時時鐘RTC。 使用時需要注意 注釋掉這個SystemInit(); 時鐘配置函數 //配
[單片機]
STM32時鐘配置方法詳解
一、在STM32中,有五個時鐘源,為HSI、HSE、LSI、LSE、PLL。 ①HSI是高速內部時鐘,RC振蕩器,頻率為8MHz。 ②HSE是高速外部時鐘,可接石英/陶瓷諧振器,或者接外部時鐘源,頻率范圍為4MHz~16MHz。 ③LSI是低速內部時鐘,RC振蕩器,頻率為40kHz。 ④LSE是低速外部時鐘,接頻率為32.768kHz的石英晶體。 ⑤PLL為鎖相環倍頻輸出,其時鐘輸入源可選擇為HSI/2、HSE或者HSE/2。倍頻可選擇為2~16倍,但是其輸出頻率最大不得超過72MHz。 二、在STM32上如果不使用外部晶振,OSC_IN和OSC_OUT的接法:如果使用內部RC振蕩器而不使用外部晶振,請按照下面方法處理: ①對于
[單片機]
關于stm32硬件spi的miso口配置
在我們剛使用spi時,對于spi的io口配置可能會有一些疑惑吧,miso明明是一個輸入口卻配置成了復用推挽輸出,是不是會有一點疑惑呢? GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; // 復用的推挽輸出 MISO不是應該設置成為輸入端口(GPIO_Mode_IN_FLOATING)才行的嗎?是不是很抑或呢? 哈哈哈
[單片機]
STM32之RCC配置
采用8MHz 外部HSE 時鐘,程序的時鐘設置參數流程如下: 1.將 RCC 寄存器重新設置為默認值:RCC_DeInit(); 2.打開外部高速時鐘晶振 HSE :RCC_HSEConfig(RCC_HSE_ON); 3.等待外部高速時鐘晶振工作: HSEStartUpStatus = RCC_WaitForHSEStartUp(); 4.設置 AHB 時鐘 (HCLK) :RCC_HCLKConfig(RCC_SYSCLK_Div1); 5.設置APB 2時鐘 (APB2) :RCC_PCLK2Config(RCC_HCLK_Div1);
[單片機]
STM32啟用Bootloader支持配置
1. 程序設置 在進入main()函數后的第一行增加FLASH偏移地址設置,如圖: 2. 工程設置 Bootloader的占用空間為0x4000, 則將Start的值設置為0x8004000,將Size的值設置為:原來大小-0x4000,以STM32F103C8為例,其內存大小為0x10000,設置后為0x10000-0x4000=0xC000。 設置前: 設置后:
[單片機]
<font color='red'>STM32</font>啟用Bootloader支持<font color='red'>配置</font>
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 二手房| 喀喇| 合江县| 西安市| 德格县| 朝阳区| 囊谦县| 房产| 合阳县| 马边| 夏津县| 沿河| 专栏| 阿拉善左旗| 六安市| 景宁| 大厂| 光泽县| 周宁县| 文登市| 泸水县| 晋中市| 龙泉市| 平远县| 哈密市| 繁峙县| 平和县| 双峰县| 广安市| 吴堡县| 什邡市| 天门市| 高州市| 盐源县| 嘉祥县| 丹棱县| 南华县| 盈江县| 鄢陵县| 开封县| 抚宁县|