單片機(jī)平臺編寫 GPIO 口程序,以 STM32F103 為例,有三種模式:庫函數(shù)、HAL庫、寄存器。
使用庫函數(shù)的方式操控 GPIO 方式如下:
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//使能 PB 端口時(shí)鐘
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); //根據(jù)設(shè)定參數(shù)初始化 GPIOB.5
GPIO_SetBits(GPIOB,GPIO_Pin_5); //PB.5 輸出高
}
上述代碼就是使用庫函數(shù)來初始化 STM32 的一個(gè) IO 為輸出功能,可以看出上述初始化代碼中重點(diǎn)要做的事情有一下幾個(gè):
①、使能指定 GPIO 的時(shí)鐘。
②、初始化 GPIO,比如輸出功能、上拉、速度等等。
③、STM32 有的 IO 可以作為其它外設(shè)引腳,也就是 IO 復(fù)用,如果要將 IO 作為其它外設(shè)引腳使用的話就需要設(shè)置 IO 的復(fù)用功能。
④、最后設(shè)置 GPIO 輸出高電平或者低電平。
STM32 的 GPIO 初始化就是以上四步,使用庫函數(shù)操作 GPIO 還是很簡單的。但是我們知道 STM32F1 系列是有庫函數(shù)的,但是 STM32F7 系列就沒有庫函數(shù)了,ST 公司沒有出,STM32F7 只有 HAL 庫和寄存器兩種操作方式。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
-
單片機(jī)
+關(guān)注
關(guān)注
6076文章
45499瀏覽量
670619 -
STM32
+關(guān)注
關(guān)注
2310文章
11162瀏覽量
373530 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4417瀏覽量
67545 -
GPIO
+關(guān)注
關(guān)注
16文章
1329瀏覽量
56236
發(fā)布評論請先 登錄
相關(guān)推薦
熱點(diǎn)推薦
單片機(jī)教程二十一:單片機(jī)串行口通信程序設(shè)計(jì)
單片機(jī)教程二十一:單片機(jī)串行口通信程序設(shè)計(jì)
1.串行口方式0應(yīng)用編程 8051單片機(jī)串行
發(fā)表于 05-15 23:17
?1107次閱讀
實(shí)現(xiàn)IO口流水燈源代碼的LPC2378 GPIO程序
LPC2378單片機(jī)GPIO程序,實(shí)現(xiàn)IO口流水燈源代碼
發(fā)表于 09-01 11:37
?34次下載
STM32單片機(jī)學(xué)習(xí)基礎(chǔ)手記(2):從勉強(qiáng)看懂一行程序到IO口研究
STM32單片機(jī)學(xué)習(xí)基礎(chǔ)手記(2):從勉強(qiáng)看懂一行程序到IO口研究
發(fā)表于 10-12 14:29
?22次下載
單片機(jī)程序如何編寫
設(shè)計(jì)編寫單片機(jī)程序是一個(gè)漸進(jìn)的過程不可一蹴而就,畢竟單片機(jī)程序是與硬件有密切關(guān)系的,我們一般稱為單片機(jī)
STC15單片機(jī)的GPIO口驅(qū)動LED資料合集
本文檔的主要內(nèi)容詳細(xì)介紹的是STC15單片機(jī)的GPIO口驅(qū)動LED資料合集包括了 :HEX文件,寄存器版程序和工程文件,庫函數(shù)版程序和工程文
發(fā)表于 10-10 08:00
?16次下載
【51/STM32】詳解單片機(jī)GPIO口輸入輸出的各種模式
通用型輸入輸出端口,簡稱GPIO口,是單片機(jī)與其他外圍設(shè)備和電路進(jìn)行信息交換和控制的橋梁。本文從復(fù)習(xí)模電中所學(xué)的場效應(yīng)管開始,逐步引出開漏輸出與推挽輸出的概念及闡述其原理,并結(jié)合點(diǎn)亮一
發(fā)表于 11-19 09:21
?105次下載
stm32單片機(jī)基于hal庫對對GPIO的操作
32單片機(jī)對GPIO的操作和51單片機(jī)對io口的操作是一樣的,常用的有三個(gè),輸出,io口至高至低,輸入,檢查測io
發(fā)表于 11-26 20:06
?1次下載
STM32單片機(jī)GPIO口簡介
本篇主要介紹STM32單片機(jī)的GPIO口基本概念和GPIO 寄存器的使用參考資料【51/STM32】詳解單片機(jī)
發(fā)表于 12-28 19:23
?23次下載
如何提高單片機(jī)的GPIO口驅(qū)動能力
單片機(jī)是控制器件而不是驅(qū)動器件,因?yàn)檩敵鲭娏骱苄?,不足以?qū)動某些需要大電流的外設(shè)。 單片機(jī)的GPIO口驅(qū)動能力有限,不能直接驅(qū)動較大功率的負(fù)載。
51單片機(jī)GPIO結(jié)構(gòu)框圖與工作原理
不論學(xué)習(xí)什么單片機(jī),最簡單的外設(shè)莫過于IO 口的高低電平控制,本教程將向大家介紹如何在創(chuàng)建好的工程模板上通過操作51 單片機(jī)的GPIO 口輸
發(fā)表于 07-15 15:29
?9331次閱讀
基于OpenHarmony編寫GPIO平臺驅(qū)動和應(yīng)用程序
該程序是基于OpenHarmony標(biāo)準(zhǔn)系統(tǒng)編寫的基礎(chǔ)外設(shè)類:GPIO驅(qū)動。
從Linux平臺來研究GPIO軟件框架
方法,讓它可以像單片機(jī)一樣簡單的操作 IO 口,這得益于各路 Linux 大神對系統(tǒng)底層的封裝。 在 Linux 中有 pinctrl 和 gpio 子系統(tǒng),它們提供了 API 接口給你使用,讓你方便
如何從單片機(jī)平臺編寫GPIO口程序
評論