單片機平臺編寫 GPIO 口程序,以 STM32F103 為例,有三種模式:庫函數、HAL庫、寄存器。
使用庫函數的方式操控 GPIO 方式如下:
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//使能 PB 端口時鐘
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
//PB5 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 口速度
GPIO_Init(GPIOB, &GPIO_InitStructure); //根據設定參數初始化 GPIOB.5
GPIO_SetBits(GPIOB,GPIO_Pin_5); //PB.5 輸出高
}
上述代碼就是使用庫函數來初始化 STM32 的一個 IO 為輸出功能,可以看出上述初始化代碼中重點要做的事情有一下幾個:
①、使能指定 GPIO 的時鐘。
②、初始化 GPIO,比如輸出功能、上拉、速度等等。
③、STM32 有的 IO 可以作為其它外設引腳,也就是 IO 復用,如果要將 IO 作為其它外設引腳使用的話就需要設置 IO 的復用功能。
④、最后設置 GPIO 輸出高電平或者低電平。
STM32 的 GPIO 初始化就是以上四步,使用庫函數操作 GPIO 還是很簡單的。但是我們知道 STM32F1 系列是有庫函數的,但是 STM32F7 系列就沒有庫函數了,ST 公司沒有出,STM32F7 只有 HAL 庫和寄存器兩種操作方式。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
單片機
+關注
關注
6065文章
44940瀏覽量
647961 -
STM32
+關注
關注
2290文章
11018瀏覽量
362908 -
函數
+關注
關注
3文章
4372瀏覽量
64366 -
GPIO
+關注
關注
16文章
1277瀏覽量
53684
發布評論請先 登錄
相關推薦
熱點推薦
STC15單片機的GPIO口驅動LED資料合集
本文檔的主要內容詳細介紹的是STC15單片機的GPIO口驅動LED資料合集包括了 :HEX文件,寄存器版程序和工程文件,庫函數版程序和工程文
發表于 10-10 08:00
?16次下載

【51/STM32】詳解單片機GPIO口輸入輸出的各種模式
通用型輸入輸出端口,簡稱GPIO口,是單片機與其他外圍設備和電路進行信息交換和控制的橋梁。本文從復習模電中所學的場效應管開始,逐步引出開漏輸出與推挽輸出的概念及闡述其原理,并結合點亮一
發表于 11-19 09:21
?105次下載

stm32單片機基于hal庫對對GPIO的操作
32單片機對GPIO的操作和51單片機對io口的操作是一樣的,常用的有三個,輸出,io口至高至低,輸入,檢查測io
發表于 11-26 20:06
?1次下載

51單片機GPIO結構框圖與工作原理
不論學習什么單片機,最簡單的外設莫過于IO 口的高低電平控制,本教程將向大家介紹如何在創建好的工程模板上通過操作51 單片機的GPIO 口輸
發表于 07-15 15:29
?7651次閱讀

從Linux平臺來研究GPIO軟件框架
方法,讓它可以像單片機一樣簡單的操作 IO 口,這得益于各路 Linux 大神對系統底層的封裝。 在 Linux 中有 pinctrl 和 gpio 子系統,它們提供了 API 接口給你使用,讓你方便

評論