日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

GPIO几种配置的作用

發布時間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GPIO几种配置的作用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
STM32 IO 配置詳解及代碼例子 IO 口模式: GPIO_Mode_AIN = 0x0, 模擬輸入 GPIO_Mode_IN_FLOATING = 0x04, 浮空輸入 GPIO_Mode_IPD = 0x28, 帶下拉輸入 GPIO_Mode_IPU = 0x48, 帶上拉輸入 GPIO_Mode_Out_OD = 0x14, 表示配置相應管腳為 GPIO 開漏輸出(真雙向 IO) GPIO_Mode_Out_PP = 0x10, 通用推挽輸出模式 GPIO_Mode_AF_OD = 0x1C, 表示配置相應管腳為復用功能的開漏輸出 GPIO_Mode_AF_PP = 0x18 復用功能的推挽輸出模式 推挽輸出:可以輸出高,低電平,連接數字器件;推挽結構一般是指兩個三極管分別受兩互補信號的控制,總 是在一個三極管導通的時候另一個截止. 開漏輸出:輸出端相當于三極管的集電極. 要得到高電平狀態需要上拉電阻才行. 適合于做電流型的驅動, 其吸收電流的能力相對強(一般 20ma 以內). 要實現 線與 需要用 OC(open collector)門電路.是兩個參數相同的三極管或 MOSFET,以推挽方式存在于電 路中, 各負責正負半周的波形放大任務,電路工作時,兩只對稱的功率開關管每次只有一個導通,所以導通損耗小, 效率高。輸出既可以向負載灌電流,也可以從負載抽取電流。 //-------------------------------------------------------------------------- 但用作純粹的輸出時,可以選用 GPIO_Mode_Out_PP,但是有些硬件上有要求用開發射極的結構就要 用 GPIO_Mode_Out_OD 。 如果既要用于輸出,又要接收信號作輸入,無需改變該 pin 的工作模式,只需設定為輸入浮點狀 態 GPIO_Mode_IN_FLOATING ,但是讀的時候讀輸入寄存器(GPIOE->IDR)的值。輸出值照樣設定,不過輸出 pin 腳可能要硬件上 上拉。 /******************************************************************************** Function Name : GPIO_Configuration 通用輸入輸出口配置 * Description : Configures the different GPIO ports. * Input : None * Output : None * Return : None *******************************************************************************/ void GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; /* ---------------------------------GPIOA 配置--------------------------------*/ // PA09:10 =Tx:Rx 串口 0 收發接口 /* Configure USART1 Tx (PA.09) as alternate function push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); /* Configure USART1 Rx (PA.10) as input floating */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure);/* ---------------------------------GPIOB 配置--------------------------------*/ /* ---------------------------------GPIOC 配置--------------------------------*/ //PC4,5,6,7 =LED1,2,3,4 接口配置 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOC, &GPIO_InitStructure); // PC0 =ADC-Channel10 模擬輸入(接開發板上滑動變阻器) /* Configure PC.00 (ADC Channel10) as analog input -------------------------*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;//PC.00 為 ADC Channel10 模擬輸入(接滑動變阻器) GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOC, &GPIO_InitStructure); /* ---------------------------------GPIOD 配置--------------------------------*/ // PD11~15; PD3:4 =KEY4-DOWN,UP,LEFT,RIGHT,SEL; KEY2:3 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOD, &GPIO_InitStructure);/* ---------------------------------GPIOE 配置--------------------------------*/ }

總結

以上是生活随笔為你收集整理的GPIO几种配置的作用的全部內容,希望文章能夠幫你解決所遇到的問題。

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