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

立即注冊 登錄
返回首頁

uid:201965的個人空間

日志

初學STM32之官方庫

已有 689 次閱讀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 單片機教程網

返回頂部
主站蜘蛛池模板: 夜夜骚视频 | 亚洲男人网 | 色综合久久久久 | 亚洲最大福利网 | 欧美国产视频 | 美女久久久久 | 中文字幕一区二区不卡 | 中文字幕一区二区三区乱码图片 | 精品国产欧美日韩不卡在线观看 | 精品成人免费视频 | 久久精品国产a三级三级三级 | 成人av一区 | 久艹av| 日韩在线视频一区二区三区 | 午夜看片网站 | 日韩电影免费在线观看中文字幕 | 亚洲国产精品99久久久久久久久 | 一区二区福利视频 | 中文字幕亚洲欧美日韩在线不卡 | 精品久久久久久亚洲综合网 | 日日夜夜91 | 97人人澡人人爽91综合色 | 日韩快播电影 | 一级片毛片 | 国产福利视频网站 | 亚洲一区二区在线播放 | 91视频进入| 精品国产欧美一区二区三区成人 | caoporn免费 | 最新免费av网站 | 在线国产一区二区 | 日本天堂一区二区 | 国产精品海角社区在线观看 | 农夫在线精品视频免费观看 | 亚洲成a人片 | 亚洲欧美日韩在线不卡 | 国产一区三区视频 | 亚洲精品久久久久久国产精华液 | 91久久精品日日躁夜夜躁欧美 | 国产精品精品视频一区二区三区 | 玖玖玖在线|