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

立即注冊 登錄
返回首頁

uid:201965的個人空間

日志

初學STM32之官方庫

已有 684 次閱讀2017-5-17 21:32

新版的固件庫V3.0以上 main等源文件中不再直接包含stm32f10x_conf.h,而是stm32f10x.h,stm32f10x.h則定義了啟動設置,以及所有寄存器宏定義,此文件中需要注意的有:1、device選擇#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_XL) && !defined (STM32F10X_CL)/* #define STM32F10X_LD */ /*!< STM32F10X_LD: STM32 Low density devices *//* #define STM32F10X_LD_VL */ /*!< STM32F10X_LD_VL: STM32 Low density Value Line devices *//* #define STM32F10X_MD */ /*!< STM32F10X_MD: STM32 Medium density devices */#define STM32F10X_MD/* #define STM32F10X_MD_VL */ /*!< STM32F10X_MD_VL: STM32 Medium density Value Line devices *//* #define STM32F10X_HD */ /*!< STM32F10X_HD: STM32 High density devices *//* #define STM32F10X_HD_VL */ /*!< STM32F10X_HD_VL: STM32 High density value line devices *//* #define STM32F10X_XL */ /*!< STM32F10X_XL: STM32 XL-density devices *//* #define STM32F10X_CL */ /*!< STM32F10X_CL: STM32 Connectivity line devices */#endif此段代碼在stm32f10x.h的開始處,根據所用的器件 取消合適的注釋。我常用的是stm32f103c8t6 屬于Medium density Value Line devices.2、外部時鐘頻率選擇#if !defined HSE_VALUE#ifdef STM32F10X_CL#define HSE_VALUE ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */#else#define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */#endif /* STM32F10X_CL */#endif /* HSE_VALUE */注意STM32F10X_CL,STM32F10X_CL是stm32f105 和stm32f107 互聯型的device,用到此器件外部要選用25MHz的晶體,由于前面的代碼沒有取消 /* #define STM32F10X_CL */ /*!< STM32F10X_CL: STM32 Connectivity line devices */的注釋,所以此處默認的外部8MHz的晶體3、外設宏定義USE_STDPERIPH_DRIVER#if !defined USE_STDPERIPH_DRIVER/*** @brief Comment the line below if you will not use the peripherals drivers.In this case, these drivers will not be included and the application code willbe based on direct access to peripherals registers*//*#define USE_STDPERIPH_DRIVER*/#endif如果不適用片內外設,則不要取消 /*#define USE_STDPERIPH_DRIVER*/的注釋注意stm32f10x.h文件的最后有這樣的代碼:#ifdef USE_STDPERIPH_DRIVER#include "stm32f10x_conf.h"#endifstm32f10x_conf.h中包含了所有外設的頭文件,因此任意源文件只要包含了stm32f10x.h,就可以在源文件調用任意外設的函數。若有外設為使用到,在stm32f10x_conf.h注釋相應部分,項目編譯時就不會在編譯去掉的外設。

4. core_cm3.c文件

CoreSupport中的是位于CMSIS標準的核內設備函數層 的M3核通用的源文件core_cm3.c和頭文件core_cm3.h,它們的作用是為那些采用Cortex-M3核設計SOC的芯片商設計的芯片外設提供一個進入M3內核的接口。這兩個文件在其它公司的M3系列芯片也是相同的。至于這些功能是怎樣用源碼實現的,我們可以不用管它,我們只需把這個文件加進我們的工程文件即可,有興趣的朋友可以深究。


較重要的是在core_cm3.c文件中包含了stdin.h 這個頭文件,這是一個ANSI C 文件,是獨立于處理器之外的,就像我們熟知的C語言頭文件 stdio.h 文件一樣。位于RVMDK這個軟件的安裝目錄下,主要作用是提供一些新類型定義,如:

/* exact-width signed integer types */

typedef   signed          char int8_t;

typedef   signed short     int int16_t;

typedef   signed           int int32_t;

typedef   signed       __int64 int64_t;

/* exact-width unsigned integer types */

typedef unsigned          char uint8_t;

typedef unsigned short     int uint16_t;

typedef unsigned           int uint32_t;

typedef unsigned       __int64 uint64_t;

    這些新類型定義屏蔽了在不同芯片平臺時,出現的諸如int的大小是16位,還是32位的差異。所以在我們以后的程序中,都將使用新類型如int8_t 、int16_t……

    在稍舊版的程序中還可能會出現如u8、u16、u32這樣的類型,請盡量避免這樣使用,在這里提出來是因為初學時如果碰到這樣的舊類型讓人一頭霧水,而且在以新的庫建立的工程中是無法追蹤到u8、u16、u32這些的定義的。        core_cm3.c跟啟動文件一樣都是底層文件,都是由ARM公司提供的,遵守CMSIS標準,即所有CM3芯片的庫都帶有這個文件,這樣軟件在不同的CM3芯片的移植工作就得以簡化。 

5.system_stm32f10x.c

    system_stm32f10x.c,是由ST公司提供的,遵守CMSIS標準。該文件的功能是設置系統時鐘和總線時鐘, M3比51單片機復雜得多,并不是說我們外部給一個8M的晶振,M3整個系統就以8M為時鐘協調整個處理器的工作。我們還要通過M3核的核內寄存器來對8M的時鐘進行倍頻,分頻,或者使用芯片內部的時鐘。所有的外設都與時鐘的頻率有關,所以這個文件的時鐘配置是很關鍵的。

    system_stm32f10x.c在實現系統時鐘的時候要用到PLL(鎖相環),這就需要操作寄存器,寄存器都是以存儲器映射的方式來訪問的,所以該文件中包含了stm32f10x.h 這個頭文件。

6. stm32f10x.h文件

    stm32f10x.h 這個文件非常重要,是一個非常底層的文件。

    所有處理器廠商都會將對內存的操作封裝成一個宏,即我們通常說的寄存器,并且把這些實現封裝成一個系統文件,包含在相應的開發環境中。這樣,我們在開發自己的應用程序的時候只要將這個文件包含進來就可以了。

在3.5版的啟動文件還調用了在system_stm32f10x.c文件中的SystemIni() 函數配置系統時鐘,在舊版本的工程中要用戶進入main函數自己調用SystemIni() 函數。 

路過

雞蛋

鮮花

握手

雷人

評論 (0 個評論)

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

Powered by 單片機教程網

返回頂部
主站蜘蛛池模板: 手机av网 | 成人一级视频在线观看 | 美女视频一区二区三区 | 亚洲激情综合 | 中文字幕一区二区三区不卡 | 97综合在线 | 国产精品1区2区3区 中文字幕一区二区三区四区 | 国产乱码精品1区2区3区 | 欧美一级欧美一级在线播放 | 久草.com| 中文字幕亚洲精品 | 国产成人综合在线 | 福利视频一区 | 亚洲人成一区二区三区性色 | 国产资源在线观看 | 中文亚洲视频 | 成人免费一区二区三区视频网站 | 女人一区 | 久久久久久久久久影视 | 精品美女 | 午夜精品一区二区三区在线视 | gav成人免费播放视频 | 欧美日韩综合一区 | 日韩精品国产精品 | 久久高清精品 | 91精品国产综合久久久动漫日韩 | 草久久久 | 日本欧美大片 | 91精品国产91久久久久久 | 激情婷婷| 放个毛片看看 | 国产91在线视频 | 中文字幕亚洲专区 | 久久精品无码一区二区三区 | 一区二区三区在线看 | 精品国产乱码久久久久久丨区2区 | 自拍偷拍亚洲视频 | 成人午夜精品 | 午夜性色a√在线视频观看9 | 黄色网址在线免费观看 | 色黄爽|