精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

解析STM32的庫函數(shù)-1

汽車電子技術(shù) ? 來源:嵌入式悅翔園 ? 作者: JamesBin ? 2023-02-17 15:27 ? 次閱讀

一、引言

我們在學(xué)習(xí)32的過程中,固件庫是個(gè)必不可少的東西,因?yàn)槌绦蜷_發(fā)不再是從寄存器層次起始,而要首先去熟悉 STM32 所提供的固件庫。那是否一定要使用固件庫呢?當(dāng)然不是。但 STM32 微控制器的寄存器規(guī)模可不 是常見的 8 位單片機(jī)可以比擬,若自己細(xì)細(xì)琢磨各個(gè)寄存器的意義,必然會(huì)消耗相當(dāng)?shù)臅r(shí)間, 并且對于程序后續(xù)的維護(hù),升級(jí)來說也會(huì)增加資源的消耗。

二、正題

以最常用的 GPIO 設(shè)備的初始化函數(shù)為例,如下程序段一:

GPIO_InitTypeDef GPIO_InitStructure; ○1
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; ○2
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; ○3
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; ○4
GPIO_Init(GPIOA , &GPIO_InitStructure); ○5

這是一個(gè)在 STM32 的程序開發(fā)中經(jīng)常使用到的 GPIO 初始化程序段,其功能是將 GPIOA.4 口 初始化為推挽輸出狀態(tài),并最大翻轉(zhuǎn)速率為 50MHz。下面逐一分解:

首先是O1 ,該語句顯然定義了一個(gè) GPIO_InitTypeDef 類型的變量,名為 GPIO_InitStructure,找出GPIO_InitTypeDef的原型位于

“stm32f10x_gpio.h”文件,原型為如下:

typedef struct
{
u16 GPIO_Pin;
GPIOSpeed_TypeDef GPIO_Speed;
GPIOMode_TypeDef GPIO_Mode;
}GPIO_InitTypeDef;

由此可知 GPIO_InitTypeDef 是一個(gè)結(jié)構(gòu)體類型同義字,其功能是定義一個(gè)結(jié)構(gòu)體,該結(jié) 構(gòu)體有三個(gè)成員分別是 u16 類型的 GPIO_Pin、GPIOSpeed_TypeDef 類型的 GPIO_Speed和 GPIOMode_TypeDef 類 型 的 GPIO_Mode 。繼 續(xù) 探 查 GPIOSpeed_TypeDef 和GPIOMode_TypeDef 類型,在“stm32f10x_gpio.h”文件中找到對 GPIOSpeed_TypeDef 的 定義:

typedef enum
{
 GPIO_Speed_10MHz = 1,
 GPIO_Speed_2MHz,
 GPIO_Speed_50MHz
}GPIOSpeed_TypeDef;

則可知 GPIOSpeed_TypeDef 枚舉類型同一只,其功能是定義一個(gè)枚舉類型變量,該變量 可表示 GPIO_Speed_10MHz、GPIO_Speed_2MHz 和 GPIO_Speed_50MHz 三個(gè)含義(其中GPIO_Speed_10MHz 已經(jīng)定義為 1,讀者必須知道 GPIO_Speed_2MHz 則依次被編譯器賦予 2,而 GPIO_Speed_50MHz 為 3)。同樣也在“stm32f10x_gpio.h”文件中找到對 GPIOMode_TypeDef 的定義:

typedef enum
{
GPIO_Mode_AIN = 0x0,
GPIO_Mode_IN_FLOATING = 0x04,
 GPIO_Mode_IPD = 0x28,
 GPIO_Mode_IPU = 0x48,
 GPIO_Mode_Out_OD = 0x14,
 GPIO_Mode_Out_PP = 0x10,
 GPIO_Mode_AF_OD = 0x1C,
 GPIO_Mode_AF_PP = 0x18
}GPIOMode_TypeDef;

這同樣是一個(gè)枚舉類型同義字,其成員有 GPIO_Mode_AIN、GPIO_Mode_AF_OD 等(也 可以輕易判斷出這表示 GPIO 設(shè)備的工作模式)。至此對程序段一的O1 解析可以做一個(gè)總結(jié):該行定義一個(gè)結(jié)構(gòu)體類型的變量 GPIO_InitStructure,并且該結(jié)構(gòu)體有 3 個(gè)成員,分別為 GPIO_Pin、GPIO_Speed 和 GPIO_Mode,并且 GPIO_Pin 表示 GPIO 設(shè)備引腳 GPIO_Speed 表示 GPIO 設(shè)備速率和 GPIO_Mode 表示 GPIO 設(shè)備工作模式。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5325

    瀏覽量

    120052
  • STM32
    +關(guān)注

    關(guān)注

    2266

    文章

    10876

    瀏覽量

    354922
  • 固件庫
    +關(guān)注

    關(guān)注

    2

    文章

    97

    瀏覽量

    14926
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    解析STM32庫函數(shù)——獻(xiàn)給新手

    ,必然會(huì)消耗相當(dāng)?shù)臅r(shí)間,并且對于程序后續(xù)的維護(hù),升級(jí)來說也會(huì)增加資源的消耗。對于當(dāng)前“時(shí)間就是金錢”的行業(yè)競爭環(huán)境,無疑使用庫函數(shù)進(jìn)行STM32的產(chǎn)品開發(fā)是更好的選擇。本文將通過一個(gè)簡單的例子對STM32
    發(fā)表于 10-21 14:16

    解析STM32庫函數(shù)

    本帖最后由 zax1234 于 2012-10-29 22:50 編輯 解析STM32庫函數(shù) 意法半導(dǎo)體在推出 STM32 微控制器之初,也同時(shí)提供了一套完整細(xì)致的固件開發(fā)包,
    發(fā)表于 10-29 22:36

    解析STM32庫函數(shù)

    解析STM32庫函數(shù)
    發(fā)表于 05-12 09:35

    解析STM32庫函數(shù)(轉(zhuǎn))

    解析STM32庫函數(shù)(轉(zhuǎn)) 獻(xiàn)給新手
    發(fā)表于 11-19 08:39

    STM32開發(fā)指南V1.0 庫函數(shù)版本1

    STM32開發(fā)指南V1.0 庫函數(shù)版本》完美標(biāo)簽part1
    發(fā)表于 05-30 14:20 ?0次下載

    STM32庫函數(shù)代碼自動(dòng)生成器V1.2

    stm32庫函數(shù)代碼自動(dòng)生成器是STM32學(xué)習(xí)的小工具。 stm32庫函數(shù)代碼自動(dòng)生成器可以根據(jù)你的配置生成相應(yīng)的
    發(fā)表于 06-17 17:55 ?0次下載

    STM32庫函數(shù)代碼自動(dòng)生成器正式版

    STM32庫函數(shù)代碼自動(dòng)生成器正式版 STM32庫函數(shù)代碼自動(dòng)生成器正式版
    發(fā)表于 07-25 18:52 ?0次下載

    STM32 IAR的庫函數(shù)資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是STM32 IAR的庫函數(shù)資料免費(fèi)下載。
    發(fā)表于 03-27 09:48 ?43次下載
    <b class='flag-5'>STM32</b> IAR的<b class='flag-5'>庫函數(shù)</b>資料免費(fèi)下載

    STM32F4 HAL庫函數(shù)說明下載

    STM32F4 HAL庫函數(shù)說明下載
    發(fā)表于 05-26 09:27 ?75次下載

    STM32F1開發(fā)指南-庫函數(shù)版本_V3.3(上)

    STM32F1開發(fā)指南-庫函數(shù)版本_V3.3(上)
    發(fā)表于 09-28 09:34 ?0次下載

    STM32F1開發(fā)指南-庫函數(shù)版本_V3.3(下)

    STM32F1開發(fā)指南-庫函數(shù)版本_V3.3(下)
    發(fā)表于 09-28 09:36 ?0次下載

    stm32下標(biāo)準(zhǔn)庫函數(shù)與HAL庫函數(shù)編程方式的差異

    stm32下標(biāo)準(zhǔn)庫函數(shù)與HAL庫函數(shù)編程方式的差異標(biāo)準(zhǔn)庫函數(shù)HAL庫函數(shù)標(biāo)準(zhǔn)庫函數(shù)與HAL
    發(fā)表于 12-09 14:21 ?15次下載
    <b class='flag-5'>stm32</b>下標(biāo)準(zhǔn)<b class='flag-5'>庫函數(shù)</b>與HAL<b class='flag-5'>庫函數(shù)</b>編程方式的差異

    基于標(biāo)準(zhǔn)庫函數(shù)與基于HAL庫函數(shù)stm32編程方式對比

    以實(shí)例程序(串口通信),分析基于標(biāo)準(zhǔn)庫函數(shù)與基于HAL庫函數(shù)stm32編程方式的差異一、基于標(biāo)準(zhǔn)庫函數(shù)stm32編程方式二、基于HAL
    發(fā)表于 12-28 19:09 ?30次下載
    基于標(biāo)準(zhǔn)<b class='flag-5'>庫函數(shù)</b>與基于HAL<b class='flag-5'>庫函數(shù)</b>的<b class='flag-5'>stm32</b>編程方式對比

    STM32庫函數(shù)開發(fā)-GPIO

    2021-01-11 學(xué)習(xí)日志STM32f1庫函數(shù)開發(fā)學(xué)習(xí)實(shí)戰(zhàn)一 · I/O口1. 文件夾結(jié)構(gòu)2. 配置細(xì)節(jié) · 從寄存器到庫函數(shù)3. 跑馬燈4. 按鍵輸入
    發(fā)表于 01-13 16:17 ?14次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>庫函數(shù)</b>開發(fā)-GPIO

    STM32庫函數(shù)SystemInit()詳解

    STM32庫函數(shù)SystemInit()詳解
    的頭像 發(fā)表于 09-18 15:45 ?3856次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>庫函數(shù)</b>SystemInit()詳解