www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]一、在進入主題之前我們先了解一些必要的基礎(chǔ)知識----stm32系列芯片的種類和型號:startup_stm32f10x_cl.s 互聯(lián)型的器件,STM32F105xx,STM32F107xxstartup_stm32f10x_hd.s 大容量的STM32F101xx,STM32F102xx,STM32

一、在進入主題之前我們先了解一些必要的基礎(chǔ)知識----stm32系列芯片的種類和型號:

startup_stm32f10x_cl.s 互聯(lián)型的器件,STM32F105xx,STM32F107xx
startup_stm32f10x_hd.s 大容量的STM32F101xx,STM32F102xx,STM32F103xx
startup_stm32f10x_hd_vl.s 大容量的STM32F100xx
startup_stm32f10x_ld.s 小容量的STM32F101xx,STM32F102xx,STM32F103xx
startup_stm32f10x_ld_vl.s 小容量的STM32F100xx
startup_stm32f10x_md.s 中容量的STM32F101xx,STM32F102xx,STM32F103xx
startup_stm32f10x_md_vl.s 中容量的STM32F100xx(我項目中用的是此款芯片 stm32f100CB)
startup_stm32f10x_xl.s FLASH在512K到1024K字節(jié)的STM32F101xx,STM32F102xx,STM32F103xx

(例如:像stm32f103re 這個型號的 芯片flash是512k 的, 啟動文件用startup_stm32f10x_xl.s 或者startup_stm32f10x_hd.s 都可以;)


cl:互聯(lián)型產(chǎn)品,stm32f105/107系列
vl:超值型產(chǎn)品,stm32f100系列
xl:超高密度產(chǎn)品,stm32f101/103系列
ld:低密度產(chǎn)品,F(xiàn)LASH小于64K
md:中等密度產(chǎn)品,F(xiàn)LASH=64 or 128
hd:高密度產(chǎn)品,F(xiàn)LASH大于128


二、在拿到ST公司官方的IAP 程序后我們要思考幾點:

1.ST 官方IAP是什么針對什么芯片型號的,我們要用的又是什么芯片型號;

2.我們要用官方IAP適合我們芯片的程序升級使用,要在原有的基礎(chǔ)上做那些改變;

(我的資源里有官方IAP源碼:http://download.csdn.net/detail/yx_l128125/6445811)

初略看了一下IAP源碼后,現(xiàn)在我們可以回答一下上面的2個問題了:

1.官網(wǎng)剛下載的IAP針對的是stm32f103c8芯片的,所以他的啟動代碼文件選擇的是startup_stm32f10x_md.s,而我的芯片是stm32f100cb,所以我的啟動代碼文件選擇的是 startup_stm32f10x_md_lv.s




2 .第二個問題就是今天我們要做詳細分析才能回答的問題了;

(1).知道了IAP官方源碼的芯片和我們要用芯片的差異,首先我們要在源碼的基礎(chǔ)上做芯片級的改動;

A.首先改變編譯器keil的芯片型號上我們要改成我們的芯片類型---STM32F100CB;

B.在keil的options for targer 選項C/C++/PREPROMCESSOR symbols的Define欄里定義,把有關(guān)STM32F10X_MD的宏定義改成:STM32F10X_MD_VL

也可以在STM32F10X.H里用宏定義

[plain]view plaincopy

#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)

#defineSTM32F10X_MD_VL

#endif

上面代碼說的是如果沒有定義 STM32F10X_MD_VL, 則宏定義STM32F10X_MD_VL

C.外部時鐘問價在stm32f10x.h 依據(jù)實際修改,原文是說如果沒有宏定義外部時鐘HES_VALUE的值,但是宏定義了stm32f10x_cl 則外部時鐘設(shè)置為25MHZ, 否則外部時鐘都設(shè)置為8MHZ; 我用的外部晶振是8MHZ的所以不必修改這部分代碼;

[plain]view plaincopy

#if!definedHSE_VALUE

#ifdefSTM32F10X_CL

#defineHSE_VALUE((uint32_t)25000000)//ValueoftheExternaloscillatorinHz#else#defineHSE_VALUE((uint32_t)8000000)//ValueoftheExternaloscillatorinHz#endif#endif


D.做系統(tǒng)主頻時鐘的更改

system_stm32f10x.c的系統(tǒng)主頻率,依實際情況修改 ;我用的芯片主頻時鐘是24MHZ;

[plain]view plaincopy

#ifdefined(STM32F10X_LD_VL)||(definedSTM32F10X_MD_VL)||(definedSTM32F10X_HD_VL)

#defineSYSCLK_FREQ_24MHz24000000

#else

#defineSYSCLK_FREQ_24MHz24000000

#endif

E.下面是關(guān)鍵部分操作了,在說這部分操作前我們先來說一下內(nèi)存映射:

下圖在stm32f100芯片手冊的29頁,我們只截取關(guān)鍵部分


所以我們需要先查看一下misc.h文件中的中斷向量表的初始位置宏定義為 NVIC_VectTab_Flash 0x0800 0000

那么要就要設(shè)置編譯器keil 中的 options for target 的target選項中的 IROM1地址 為0x0800 0000 大小為 0x20000即128K;

IRAM1地址為0x2000 0000 大小為0x2000;

(提示:這一項IROM1 地址即為當(dāng)前程序下載到flash的地址的起始位置)

下面我們來分析一下修改后的IAP代碼:

[plain]view plaincopy

intmain(void)

{

//Flash解鎖

FLASH_Unlock();

//配置PA15管腳

KEY_Configuration();

//配置串口1

IAP_Init();

//PA15是否為低電平

if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15)==0x00)

{

//執(zhí)行IAP驅(qū)動程序更新Flash程序

SerialPutString("rn======================================================================");

SerialPutString("rn=(C)COPYRIGHT2011Lierda=");

SerialPutString("rn==");

SerialPutString("rn=In-ApplicationProgrammingApplication(Version1.0.0)=");

SerialPutString("rn==");

SerialPutString("rn=Bywuguoyan=");

SerialPutString("rn======================================================================");

SerialPutString("rn

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

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉