久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4053|回復(fù): 6
收起左側(cè)

解析STM32的庫函數(shù)

[復(fù)制鏈接]
ID:240233 發(fā)表于 2017-10-17 14:13 | 顯示全部樓層 |閱讀模式
意法半導(dǎo)體在推出 STM32 微控制器之初,也同時提供了一套完整細(xì)致的固件開發(fā)包,
里面包含了在 STM32 開發(fā)過程中所涉及到的所有底層操作。通過在程序開發(fā)中引入這樣的
固件開發(fā)包,可以使開發(fā)人員從復(fù)雜冗余的底層寄存器操作中解放出來,將精力專注應(yīng)用程
序的開發(fā)上,這便是ST 推出這樣一個開發(fā)包的初衷。
但這對于許多從51/AVR這類單片機(jī)的開發(fā)轉(zhuǎn)到STM32 平臺的開發(fā)人員來說,勢必有一
個不適應(yīng)的過程。因?yàn)槌绦蜷_發(fā)不再是從寄存器層次起始,而要首先去熟悉 STM32 所提供
的固件庫。那是否一定要使用固件庫呢?當(dāng)然不是。但 STM32 微控制器的寄存器規(guī)模可不
是常見的8 位單片機(jī)可以比擬,若自己細(xì)細(xì)琢磨各個寄存器的意義,必然會消耗相當(dāng)?shù)臅r間,
并且對于程序后續(xù)的維護(hù),升級來說也會增加資源的消耗。對于當(dāng)前“時間就是金錢”的行
業(yè)競爭環(huán)境,無疑使用庫函數(shù)進(jìn)行 STM32 的產(chǎn)品開發(fā)是更好的選擇。本文將通過一個簡單
的例子對STM32的庫函數(shù)做一個簡單的剖析。
以最常用的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  
這是一個在STM32 的程序開發(fā)中經(jīng)常使用到的 GPIO初始化程序段,其功能是將 GPIOA.4 口
初始化為推挽輸出狀態(tài),并最大翻轉(zhuǎn)速率為50MHz。下面逐一分解:
  首先是○ 1 ,該語句顯然定義了一個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 是一個結(jié)構(gòu)體類型同義字,其功能是定義一個結(jié)構(gòu)體,該結(jié)
構(gòu)體有三個成員分別是 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 枚舉類型同一只,其功能是定義一個枚舉類型變量,該變量
可表示GPIO_Speed_10MHz、GPIO_Speed_2MHz 和GPIO_Speed_50MHz 三個含義(其中
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;
0.png

完整的pdf格式文檔51黑下載地址(共6頁):
解析STM32的庫函數(shù).pdf (310.69 KB, 下載次數(shù): 47)
回復(fù)

使用道具 舉報

ID:240545 發(fā)表于 2017-10-18 15:41 | 顯示全部樓層
沙發(fā)!好帖必頂!
回復(fù)

使用道具 舉報

ID:239030 發(fā)表于 2017-11-2 11:34 | 顯示全部樓層
好資料,很適合新手自學(xué)
回復(fù)

使用道具 舉報

ID:239056 發(fā)表于 2017-11-2 12:28 | 顯示全部樓層
不錯,可以好好學(xué)一下
回復(fù)

使用道具 舉報

ID:162136 發(fā)表于 2017-11-2 17:59 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報

ID:138247 發(fā)表于 2019-8-28 13:23 | 顯示全部樓層

感謝樓主分享。。。
回復(fù)

使用道具 舉報

ID:540421 發(fā)表于 2019-8-30 11:02 | 顯示全部樓層
感謝樓主分享
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产女人与拘做受免费视频 | 午夜欧美一区二区三区在线播放 | 美女视频一区二区三区 | 精品九九| 国产激情一区二区三区 | 91精品国产91久久久久久吃药 | 玖操| 日本成人午夜影院 | 超碰8| re久久 | 国产精品一区二区三区久久久 | 欧美一区二区三区,视频 | 精品一区二区三区在线观看国产 | 91资源在线观看 | 久久久精品一区二区 | 天天爽天天操 | 日韩在线一区视频 | 中文字幕免费视频 | 玖玖在线免费视频 | 97精品视频在线 | 欧美成人免费在线 | 亚洲成人精品影院 | 欧美综合在线观看 | 欧美在线 | 91久久夜色精品国产网站 | 中文字幕国产一区 | 久久精品视频99 | 日韩在线看片 | 日日夜夜天天 | 久久国产精品久久久久久 | 自拍视频网站 | 日本高清中文字幕 | 久久的色 | 日韩欧美在线视频 | 黄色片免费 | 黄色免费观看 | 日韩高清不卡 | 日韩在线观看一区 | 精品国产91 | 精品国产伦一区二区三区观看方式 | 国产一区二区视频在线 |