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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

stm32 GPIO简单介绍及初始化配置(库函数)

發布時間:2025/3/21 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stm32 GPIO简单介绍及初始化配置(库函数) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:

相信,大部分查找GPIO的人,都是剛剛接觸STM32的人,而剛接觸STM32的人,大部分是從51上來的人,所以我會由淺入深,從51和STM32的區別入手,通過對比這兩個處理器的配置方法,來跟大家慢慢講解(學知識可不能急于求成)。博主以stm32f1為主控芯片,以下均簡稱為stm32。

首先,上一張我的理解圖(畫不好。。。但能看),給個形象的概念

一、講圖之前,先給大家一個stm32的概念:“時鐘概念”

1.??STM32的時鐘是什么?

stm32的時鐘是由內部或外部振蕩器產生的“頻率”,而被人們形象的稱為“系統時鐘”。最大為72MHz換成周期T為:1/72MHz≈13.9ns

2.??為什么要用時鐘?

因為耗電量,stm32功能強大,能做很多事,但與之同時帶來的消耗也越嚴重,當stm32不引入時鐘時鐘的話,就像51一樣外設全開,如果大家是使用電池的話,就會感到電量的珍貴(開機幾分鐘就沒電了。。。),所以廠家(st公司)為了解決這個問題,引入了“時鐘概念”,即使用哪個外設就給哪個外設時鐘(頻率),不使用的就關掉(不震蕩)。此做法大大降低了功耗,續航持久。

二、接下來說說片內外設

1、 什么是片內外設?

我來個比喻吧,stm32是一個工廠,內部CPU是老板,而外設就是幫助CPU干活的工人。老板(CPU)想做某件事,于是就命令(指令)有這個能力的工人(外設)去做這件事,并給予研究經費(時鐘頻率)。工人拿了經費,就按照老板的命令來執行工作。這就是CPU和外設的關系(不可逆關系。。。)

另外,片內外設也可以等同于一塊內部芯片,它有內部寄存器,CPU給出指令,片內外設得到指令,并配置其內部寄存器,以達到功能的實現。

三、初始化GPIO,點亮LED燈

外設的功能都是完全不同的,但是初始化都是大同小異,學會了GPIO這最簡單的外設初始化,那么后面就很好辦了。點燈是所有學單片機的人都應該學會的第一項技能,這樣子才算入門。51單片機的點燈是,通過控制寄存器將片外引腳(我們稱之為IO口)拉低拉高,輸出高低電平,以控制LED亮滅。

51過程是這樣子:單片機給指令->控制寄存器->給IO口電平->控制LED亮滅

?

而stm32的點燈則是,通過使能外設GPIO時鐘,發出指令給外設GPIO,外設GPIO收到指令后,著手配置自己的寄存器,然后給IO口模式,讓其實現各種功能(我說過STM32功能強大吧?IO口的配置也是有很多知識的,之后會介紹)。

stm32過程是這樣子(參照上圖):CPU給指令->GPIO收到指令->配置內部寄存器->配置IO口模式(注意是模式)->控制LED亮滅。

貼上代碼:

  • void led_init(void)

  • {

  • GPIO_InitTypeDef GPIO_InitStruct;????????????????????//定義初始化結構體

  • RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //使能GPIOA時鐘

  • ?
  • GPIO_InitStruct.GPIO_Mode????= GPIO_Mode_Out_PP;???? //配置模式

  • GPIO_InitStruct.GPIO_Pin???? = GPIO_Pin_0;???????????//配置哪個IO口

  • GPIO_InitStruct.GPIO_Speed???= GPIO_Speed_50MHz;???? //配置IO口速度,僅輸出有效

  • GPIO_Init(GPIOA,&GPIO_InitStruct);???????????????????//初始化GPIOA的參數為以上結構體

  • }

  • int main(void)

  • {

  • led_init(void); //調用LED初始化函數

  • GPIO_ResetBits(GPIOA,GPIO_Pin_0) //拉低電平

  • GPIO_SetBits(GPIOA,GPIO_Pin_0) //拉高電平

  • while(1); //死循環(停止程序)

  • }

  • ?

    步驟:

    1、首先必須先使能時鐘,時鐘總線可參考:中文參考手冊P28頁,這一頁是時鐘總線上掛載的片內外設,我就不上圖了。時鐘使能函數在官方庫函數的對應頭文件里有,比如找RCC函數則應該在“stm32f10x_rcc.h”里(拉到最后面void開頭的那些函數)
    2、定義初始化結構體,結構體是外設的初始化參數。
    3、初始化結構體中的參數,復制并粘貼結構體然后按“.”這個符號,會出來個框,框內就是外設的參數。

    3、調用外設初始化函數,初始化函數也是在官方庫函數的對應頭文件里。比如找GPIO函數則應該在“stm32f10x_gpio.h”里。符號“&”是取地址符,意思是:初始化的參數地址為。。。(然后MDK就尋找結構體的位置,以找到結構體的參數)。

    4、初始化完成后,在主函數中調用初始化函數,再調用官方庫函數,即可進行相應的操作。(調用的官方庫函數說明,請在“STM32固件庫使用手冊”中查看,博主不多作說明)

    小知識:

    首先呢,初始化函數,都可以在“STM32固件庫使用手冊”中查到使用說明(我就不提供連接了);其次,點擊函數并右鍵,會出現“go to definition of'函數名'”(或者按F12),接著畫面會跳轉到官方庫的 .c 文件,那里有很詳細的說明(說明中標明有哪些函數需要配置),還有,可以自定義庫函數,具體我后面(可能會寫),網上有攻略寫得比我好。

    以上。

    ?

    GPIO八種模式

    ?

    flag(今后會更新的,正文是大概框架):?1、GPIO寄存器簡單介紹及配置

    總結

    以上是生活随笔為你收集整理的stm32 GPIO简单介绍及初始化配置(库函数)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 亚洲av综合一区 | 精品国产乱码久久久久久1区二区 | 日韩久久一区二区 | 久久久久久久久国产精品一区 | 麻豆福利在线观看 | 蜜臀久久久久久999 大陆熟妇丰满多毛xxxⅹ | 99久久99久久免费精品蜜臀 | 日本变态折磨凌虐bdsm在线 | 日本毛片视频 | 国产精品一品二区三区的使用体验 | 亚洲aa | 日本亚洲欧洲色 | 一区二区视频在线观看 | 超碰免费在线97 | 人人干免费 | 国产一伦一伦一伦 | 深爱激情综合网 | av在线.com| 香蕉在线影院 | 欧洲精品一区 | 亚洲素人 | 亚洲国产成人精品久久久 | 极品尤物魔鬼身材啪啪仙踪林 | 性色国产成人久久久精品 | 91伦理| 美女超碰| 欧美jjzz | 操校花视频 | 亚洲高清在线免费观看 | 久久久久亚洲av成人网人人软件 | videos麻豆| 日本男男激情gay办公室 | 无码少妇一级AV片在线观看 | 无码人妻aⅴ一区二区三区 国产高清一区二区三区四区 | 99精品欧美一区二区蜜桃免费 | 午夜不卡影院 | 国产在线一区视频 | 日韩喷潮| 偷拍综合网 | 欧美精品电影一区二区 | 成年人免费在线看 | 亚洲片国产一区一级在线观看 | 鲁啊鲁在线视频 | 视频二区中文字幕 | 韩国精品在线观看 | 在线观看日韩国产 | 国产aⅴ精品一区二区三区久久 | a毛毛片| 毛片成人网 | 九九热视频在线免费观看 | 一区二区三区在线观看视频 | 午夜影视大全 | 99精品欧美 | 亚洲丝袜中文字幕 | 国产精品久久久久影院老司 | 成年女人色毛片 | 亚洲天堂av电影 | 国产理伦 | 熟妇人妻久久中文字幕 | 精品视频在线观看 | 免费看黄色漫画 | 日本我不卡 | 99riav国产精品视频 | 91精品人妻互换一区二区 | 一二三区免费 | 色涩涩| 欧美另类色图 | 欧美色涩在线第一页 | 黄色一级免费片 | 男男做的视频 | 欧美精品人妻一区二区 | 美女精品在线观看 | 久久久久久天堂 | 先锋av在线资源 | 亚洲成人1区 | 色综合啪啪| 好妞色妞国产在线视频 | 99国产精品99久久久久久 | 少妇高潮大叫好爽喷水 | 51成人| 自拍偷拍20p| 欧美日韩v | 能免费看av的网站 | 婷婷视频在线观看 | 无码一区二区三区免费 | 国产普通话bbwbbwbbw | 777精品伊人久久久久大香线蕉 | 人成免费 | 国产91精品一区二区绿帽 | 亚洲男人天堂2023 | 国产视频污 | 国产久一 | 日韩黄色一级视频 | www.色香蕉 | 亚洲国产v | 欧美一区二区最爽乱淫视频免费看 | 91精品久久久久 | 一区二区亚洲视频 | 日韩精彩视频在线观看 |