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

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

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

startup_stm32f10x_cl.s 互聯型的器件,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:互聯型產品,stm32f105/107系列
vl:超值型產品,stm32f100系列
xl:超高密度產品,stm32f101/103系列
ld:低密度產品,FLASH小于64K
md:中等密度產品,FLASH=64 or 128
hd:高密度產品,FLASH大于128


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

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

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

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

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

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




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

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

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

B.在keil的options for targer 選項C/C++/PREPROMCESSOR symbols的Define欄里定義,把有關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 依據實際修改,原文是說如果沒有宏定義外部時鐘HES_VALUE的值,但是宏定義了stm32f10x_cl 則外部時鐘設置為25MHZ, 否則外部時鐘都設置為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.做系統主頻時鐘的更改

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

[plain]view plaincopy

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

#defineSYSCLK_FREQ_24MHz24000000

#else

#defineSYSCLK_FREQ_24MHz24000000

#endif

E.下面是關鍵部分操作了,在說這部分操作前我們先來說一下內存映射:

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


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

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

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

(提示:這一項IROM1 地址即為當前程序下載到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驅動程序更新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

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

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

關鍵字: 驅動電源

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

關鍵字: 工業(yè)電機 驅動電源

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

關鍵字: 驅動電源 照明系統 散熱

根據LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

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

關鍵字: 電動汽車 新能源 驅動電源

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

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

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

關鍵字: LED 驅動電源 功率因數校正

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

關鍵字: LED照明技術 電磁干擾 驅動電源

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

關鍵字: LED 驅動電源 開關電源

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

關鍵字: LED 隧道燈 驅動電源
關閉