GPIO都知道是通用輸入輸出接口的意思就不詳細解釋
那么我們就直接進入怎么設置GPIO接口:
這里我的編譯軟件是keil5,相信大家都應該知道stm32有各種的工作模式上拉、下拉、推挽、開漏等等。如果想要了解具體的工作模式原理這里我推薦大家看:推挽 開漏 高阻 這都是誰想出來的詞??上拉電阻的通俗解釋,你真正知道嗎?下拉電阻的通俗解釋,你真正知道嗎?
GPIO設置(GPIO初始化):
我們直接看下STM32的函數(shù)庫使用手冊:
可以看到GPIO_Init有兩個參數(shù),參數(shù)一就是你要使用的是哪個GPIOx組的接口
參數(shù)二是指向結構 GPIO_InitTypeDef 的指針,GPIO_InitTypeDef具體是什么先按下不表,直接講如何使用(輸出):
GPIO_InitTypeDef GPIO_InitStructure; //定義GPIO的初始化枚舉結構
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; //選擇端口號(0~15或all)
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //選擇IO接口工作方式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //設置IO接口速度(2/10/50MHz)
GPIO_Init(GPIOA, &GPIO_InitStructure);
/*
選擇IO接口工作方式:
GPIO_Mode_AIN 模擬輸入
GPIO_Mode_IN_FLOATING 浮空輸入
GPIO_Mode_IPD 下拉輸入
GPIO_Mode_IPU 上拉輸入
GPIO_Mode_Out_PP 推挽輸出
GPIO_Mode_Out_OD 開漏輸出
GPIO_Mode_AF_PP 復用推挽輸出
GPIO_Mode_AF_OD 復用開漏輸出
*/
輸入設置:
GPIO_InitTypeDef GPIO_InitStructure; //定義GPIO的初始化枚舉結構
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; //選擇端口號(0~15或all)
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //選擇IO接口工作方式 //上拉電阻
//可以看到輸入和輸出代碼的不同,輸入不需要設置IO接口速度
//GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //設置IO接口速度(2/10/50MHz)
GPIO_Init(GPIOB,&GPIO_InitStructure);
但是如果僅僅這樣就完了嗎?沒有這只是GPIO初始化,在使用前還有對RCC_APB2PeriphClockCmd 使能/失能APB2外設時鐘函數(shù)來設置下:具體看STM32函數(shù)庫數(shù)據(jù)手冊:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE); //使能GPIOA、B時鐘
GPIO_InitTypeDef
結構體通常包含以下幾個重要的成員(可能根據(jù)不同版本的庫有所差異):文章來源:http://www.zghlxwxcb.cn/news/detail-844041.html
- GPIO_Pin: 指定要配置的GPIO引腳。每個微控制器的GPIO引腳都有一個對應的編號,這個字段通常接受一個位掩碼,以允許同時配置多個引腳。
- GPIO_Mode: 設置引腳的工作模式,比如輸入、輸出、復用功能或模擬模式等。
- GPIO_Speed: 當引腳配置為輸出模式時,設置其輸出速率,例如低速、中速、高速或超高速。
- GPIO_OType: 配置輸出類型,主要用于輸出模式,可以是推挽輸出或開漏輸出。
- GPIO_PuPd: 配置內部上拉或下拉電阻,用于輸入模式。
下一級我們講一下現(xiàn)在我們設置的端口怎么使用文章來源地址http://www.zghlxwxcb.cn/news/detail-844041.html
到了這里,關于STM32 GPIO設置(GPIO初始化)學習筆記的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!