日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]使用STM32的小伙伴知道,操作STM32可以用官方固件庫直接操作芯片,也可以直接操作寄存器。無論使用哪種方式,最終都是在操作寄存器。今天,小編給大家介紹使用ST官方的固件庫建立的工程。有誤請指出,謝謝STM32F1xx固

使用STM32的小伙伴知道,操作STM32可以用官方固件庫直接操作芯片,也可以直接操作寄存器。

無論使用哪種方式,最終都是在操作寄存器。

今天,小編給大家介紹使用ST官方的固件庫建立的工程。有誤請指出,謝謝

STM32F1xx固件庫資源:(百度云盤 )鏈接:http://pan.baidu.com/s/1kUVK3C7 密碼:3fzx

1,新建項(xiàng)目,在新建工程的目錄下新建幾個(gè)文件夾:

A,CORE (用來存放啟動(dòng)文件)

B,STM32F10x_FWLib (用來存放ST官方的庫函數(shù)文件)

C,USER (用來存放我們的mian.c,以及system_stm32f10x.c等)

2,打開ST官方的固件庫,在對應(yīng)的文件夾添加一下文件:

CORE:添加 STM32F1xx固件庫STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3CoreSupport 下的core_cm3.c,core_cm3.h

添加 STM32F1xx固件庫STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10xstartuparm 下的所有文件

STM32F10x_FWLib: 復(fù)制 STM32F1xx固件庫STM32F10x_StdPeriph_Lib_V3.5.0LibrariesSTM32F10x_StdPeriph_Driver 下的inc,src文件夾

USER:添加 STM32F1xx固件庫STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10x 目錄下的stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h

添加 STM32F1xx固件庫STM32F10x_StdPeriph_Lib_V3.5.0ProjectSTM32F10x_StdPeriph_Template 目錄下的main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h

3,在工程目錄右鍵,選擇Manage Components

4,建立三個(gè)Groups:USER,CORE,FWLIB.點(diǎn)擊OK.


5, 在新建立的三個(gè)Groups中分別添加:

USER:main.c,stm32f10x_it.c,system_stm32f10x.c.

CORE:core_cm3.c,startup_stm32f10x_md.s,

FWLIB:STM32F10x_FWLib/src 下面的所有文件

6,此時(shí)點(diǎn)擊編譯,會出現(xiàn)很多錯(cuò)誤。我們點(diǎn)擊魔術(shù)棒,點(diǎn)擊c/c++選項(xiàng).然后點(diǎn)擊Include Paths右邊的按鈕

彈出一個(gè)添加path的對話框,然后我們將圖上面的3個(gè)目錄添加進(jìn)去。

PS:keil只會在一級目錄查找,所以如果你的目錄下面還有子目錄,記得path一定要定位到最后一

級子目錄。然后點(diǎn)擊OK.

7,此時(shí)點(diǎn)擊編譯,仍會出現(xiàn)很多錯(cuò)誤,我們點(diǎn)擊魔術(shù)棒,在c/c++下 define 處添加STM32F10X_MD,USE_STDPERIPH_DRIVER

PS:STM32F10X_MD

這個(gè)宏定義是根據(jù)使用的芯片的容量來填寫的。

大容量:STM32F10X_HD

中容量:STM32F10X_MD

小容量:STM32F10X_LD


8,我們打開main.c文件,用以下代碼覆蓋文件:

#include "stm32f10x.h"
GPIO_InitTypeDef GPIO_InitStructure;
int main(void)
{
SystemInit();
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_2;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOD, &GPIO_InitStructure);
while (1)
{

GPIOD->BSRR = 0x00000005;

GPIOD->BRR = 0x00000005;
}
}


#ifdef USE_FULL_ASSERT
void assert_failed(uint8_t* file, uint32_t line)
{
while (1)
{
}
}
#endif

9,點(diǎn)擊編譯,大功告成


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉