gpio按鍵要配置什麼
❶ 關於STM32 GPIO的上拉輸入和下拉輸入
我猜你是只在軟體模擬,沒有用JLINK或STLINK這些在線模擬的吧,軟體沒有收到你模擬的對應IO電平變化,所以你觀察寄存器只是觀察到GPIO的寄存器的值。
需要在pins對應的引腳處打上勾代替實際按鍵按下。
❷ stm32 4*4矩陣鍵盤按鍵gpio初始化設置
PB8~PB11配置成推挽輸出,PB12~PB15配置成上拉輸入
❸ 如何計算按鍵板需要幾個gpio口
看下完文你就明白。
本文以循序漸進的思路,引導大家思考如何用最少的IO驅動更多的按鍵,並依次給出5種方案原理圖提供參考。在實際項目中我們經常會遇到有按鍵輸入的需求,但有的時候為了節省資源成本,我們都會選擇在不增加硬體的情況下使用最少的控制器IO驅動更多的按鍵,那麼具體是怎麼做的呢,下面我們就以用5個IO引腳為例,講下怎麼設計可以實現更多的按鍵?共有5種設計思路,下面依次介紹。
思路一
首先通常想到的可能是下面這樣的設計:
這樣我們可以先識別K01、K02、K03、K04、K05,若沒有按鍵按下然後再和思路四的設計一樣去識別其他按鍵。但這樣存在一個問題,如果IO1配置為0,IO5讀到0,那麼怎麼知道是K51按下還是K05按下呢,這里只需要在程序里做下判斷,先判斷下是不是K05按下,若不是就是K51,因為按鍵K01、K02、K03、K04、K05在5個IO口都為讀取的情況下,就可以識別,不需要掃描識別處理,相當於這5個按鍵優先順序高與其他按鍵。
總結
綜合上述,5個IO口最多可以識別25個按鍵,思路五程序上處理比較麻煩,若實際中只按思路四設計,也可識別20個按鍵,那麼如果有N個IO口可識別多少按鍵呢?這里給出如下公式:
假設有N個IO口按照思路三可以識別N*(N-1)/2個;
按照思路四可識別N*(N-1)個;
按照思路5可以識別N*(N-1)+N個。
最後再說下,如果實際設計時,還是按思路四設計好,軟體也沒那麼麻煩。如果是你的話你會選擇哪種方法呢?你還有沒有其他的設計方法呢?
❹ 如何配置GPIO
要將GPIO這些口配置成輸出狀態,然後通過C寫DATA寄存器的地址,比如6個進制為010101,那麼就將
*DATA = 0x15
一般DATA是一個32bit的寄存器,對應32個GPIO口
如果GPIO配置為輸出,那麼寫DATA就對應輸出相應電平,讀DATA無效
如果GPIO配置為輸入,那麼讀DATA就反映對應引腳電平,寫DATA無效
❺ stm32中的GPIO如果設置成了輸入模式,還需要配置GPIO_Speed么
輸入模式可以不用配置速度,但是輸出模式必須確定最大輸出頻率
❻ 請問如何根據硬體或是數據手冊配置GPIO的輸入輸出模式
用的最多的推挽輸出 模擬輸入,用庫的方式直接寫就完了,用寄存器麻煩一點。現在已經很多資料了,庫的方式很多,寄存器的正點原子的不錯。希望幫到你。
❼ 使用庫函數初始化gpio需要什麼信息
首先你得定義管腳,開啟對應管腳的時鍾,根據你的需要,定義管腳的工作模式,例如你要用PB3這個管腳,下面就是配置函數
void LED_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);
/*選擇要控制的GPIOB引腳*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 ;
/*設置引腳模式為通用推挽輸出*/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
/*設置引腳速率為50MHz */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
/*調用庫函數,初始化GPIOB*/
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
❽ STM32F4中,對於 GPIOX需要配置哪些項目(可以採用代碼舉例、和文字說明的方式
強烈建議你使用 STM32CubeMX工具來配置。
具體點說,gpio外設的時鍾、管腳的復用功能、輸入輸出模式的配置。
拿個常式看看可以。
❾ stm32的gpio的配置模式有哪幾種,如何進行配置模式的配置
1、輸入浮空GPIO的配置可以在這里找到資料網頁鏈接
2、輸入上拉
3、輸入下拉
4、模擬輸入#
5、開漏輸出
6、推挽輸出
7、推挽式復用功能
8、開漏復用功能