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

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]小弟剛剛拿到神舟的板子,那是相對(duì)的激動(dòng)。好大的液晶屏幕,好多資料哦,好強(qiáng)大啊~~。首先需要準(zhǔn)備的是《STM32F10xxx參考數(shù)據(jù)》,我看的是2010年1月10日的版本,不知道今年有沒(méi)有更新中文用戶手冊(cè)。STM32F107xx微控

小弟剛剛拿到神舟的板子,那是相對(duì)的激動(dòng)。好大的液晶屏幕,好多資料哦,好強(qiáng)大啊~~。

首先需要準(zhǔn)備的是《STM32F10xxx參考數(shù)據(jù)》,我看的是2010年1月10日的版本,不知道今年有沒(méi)有更新中文用戶手冊(cè)。STM32F107xx微控制器是互聯(lián)性產(chǎn)品,有些部分不一樣。STM32的開(kāi)發(fā)環(huán)境有三種,Keil MDK /IAR EWARM/RIDE三種開(kāi)發(fā)環(huán)境,個(gè)人感覺(jué)IAR比較好點(diǎn),主要是用破解版的比較穩(wěn)定。

第一步選擇器件,根據(jù)芯片的不同選擇不同,如圖1所示

第二步:設(shè)置路徑文件,其中$PROJ_DIR$表示的是當(dāng)前路徑,$PROJ_DIR$..表示的當(dāng)前路徑的上面一級(jí)。Defined symbols表示的是宏定義:USE_STDPERIPH_DRIVER使用庫(kù)函數(shù)

STM32F10X_CL互聯(lián)性器件

第三步是設(shè)置文件輸出的格式,常用的是HEX輸出,也能設(shè)置BIN格式的輸出



第四步是設(shè)置鏈接文件:也就是告訴編譯器,器件的RAM和ROM的起始范圍與大小。


下面我先做下第一個(gè)實(shí)驗(yàn)—流水燈實(shí)驗(yàn)。我喜歡把每個(gè)功能做成兩個(gè)文件,一個(gè)是C文件(源代碼),一個(gè)是H文件(頭文件)。下次需要這個(gè)功能的時(shí)候,只需要把這兩個(gè)文件拷貝到工程當(dāng)中,簡(jiǎn)單方便。下面是我寫(xiě)的代碼:

LED.C

#include "led.h"

void LED_Configuration(void)

{

GPIO_InitTypeDefGPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); //打開(kāi)時(shí)鐘

GPIO_InitStructure.GPIO_Pin =LED1 | LED2|LED3|LED4;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_Init(GPIOD, &GPIO_InitStructure);

}

LED.H

#ifndef __LED_H

#define __LED_H

#include "stm32f10x_conf.h"

#define LED1GPIO_Pin_2

#define LED2GPIO_Pin_3

#define LED3GPIO_Pin_4

#define LED4GPIO_Pin_7

#define LED1_ON()GPIOD->BRR = LED1

#define LED2_ON()GPIOD->BRR = LED2

#define LED3_ON()GPIOD->BRR = LED3

#define LED4_ON()GPIOD->BRR = LED4

#define LED1_OFF()GPIOD->BSRR = LED1

#define LED2_OFF()GPIOD->BSRR = LED2

#define LED3_OFF()GPIOD->BSRR = LED3

#define LED4_OFF()GPIOD->BSRR = LED4

void LED_Configuration(void);

#endif

MAIN.C

void delay(unsigned int num)

{

while(num--);

}

int main(void)

{

/* Setup STM32 system (clock, PLL and Flash configuration) */

SystemInit();

LED_Configuration();

/* Add your application code here

*/

/* Infinite loop */

while (1)

{

LED1_ON();

delay(1000000);

LED1_OFF();

LED2_ON();

delay(1000000);

LED2_OFF();

LED3_ON();

delay(1000000);

LED3_OFF();

LED4_ON();

delay(1000000);

LED4_OFF();

}

}


最后是添加文件,附近有我設(shè)置的IAR的模板,大家可以參考下。這樣的話就生成的一個(gè)模板工程。下次需要寫(xiě)程序的時(shí)候,只需要復(fù)制這個(gè)模板,而沒(méi)有必要做上面重復(fù)的設(shè)置啦。關(guān)于啟動(dòng)文件的選擇:V3.1.2版本的庫(kù)提供了四個(gè)啟動(dòng)文件,分別對(duì)應(yīng)不同型號(hào)芯片。

startup_stm32f10x_ld.s對(duì)應(yīng)的是低密度芯片,ld是Low-density的縮寫(xiě),比如STM32F101xx and STM32F103xx系列中FLASH在16K到32K范圍內(nèi)。

startup_stm32f10x_md.s對(duì)應(yīng)的是中等密度芯片,ld是Medium-density的縮寫(xiě),比如STM32F101xx and STM32F103xx系列中FLASH在32K到128K范圍內(nèi)。

startup_stm32f10x_hd.s對(duì)應(yīng)的是高密度芯片,ld是High-density的縮寫(xiě),比如STM32F101xx and STM32F103xx系列中FLASH在256K到512K范圍內(nèi)。

startup_stm32f10x_cl.s對(duì)應(yīng)的是互聯(lián)型芯片,ld是Connectivity-line的縮寫(xiě),比如STM32F105xx and STM32F107xx系列的芯片。

神舟IV學(xué)習(xí)板采用的是STM32F107VCT6芯片,對(duì)應(yīng)的是互聯(lián)型,使用需要選擇的啟動(dòng)文件是startup_stm32f10x_cl.s。


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