娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年09月12日(星期四)

正在發生

2019年09月12日 | stm32 各頭文件或C文件功能

發布者:花錢123 來源: eefocus關鍵字:stm32  頭文件  C文件 手機看文章 掃描二維碼
隨時隨地手機看文章

stm32f10x_con.h


配置文件:加載哪個外設、使能assert 對參數進行檢查,如果使能了assert 需要在main文件中添加 _assert_faild 函數。 使能assert會增大編譯出執行文件的大小,調試完后可以將assert 屏蔽。


stm32f10x.h頭文件中包含了stm32f10x_conf.h 。


stm32f10x.h


1、對所有的外設的地址進行映射,映射到存儲區,即定義某外設結構體變量,因為結構體是連續存儲的只要將外設的基地址強制轉換為結構體類型的指針,那么該外設的寄存器就可以通過指針進行訪問,以GPIO為例:


定義外設的結構體,結構體變量都是volatile類型,告訴編譯器不要進行優化,讀取值從內存讀取不要讀緩存。


typedef struct

{

  __IO uint32_t CRL;

  __IO uint32_t CRH;

  __IO uint32_t IDR;

  __IO uint32_t ODR;

  __IO uint32_t BSRR;

   __IO uint32_t BRR;

  __IO uint32_t LCKR;

} GPIO_TypeDef;


GPIO外設的地址


#define PERIPH_BASE           ((uint32_t)0x40000000)                     //外設別名區的基地址


#define APB2PERIPH_BASE       (PERIPH_BASE + 0x10000)        // APB2外設總線上寄存器的基地址,GPIO掛在APB2總線上


// GPIO外設的地址


   #define GPIOA_BASE            (APB2PERIPH_BASE + 0x0800)

   #define GPIOB_BASE            (APB2PERIPH_BASE + 0x0C00)

   #define GPIOC_BASE            (APB2PERIPH_BASE + 0x1000)

   #define GPIOD_BASE            (APB2PERIPH_BASE + 0x1400)

   #define GPIOE_BASE            (APB2PERIPH_BASE + 0x1800)

   #define GPIOF_BASE            (APB2PERIPH_BASE + 0x1C00)

   #define GPIOG_BASE            (APB2PERIPH_BASE + 0x2000)


  // 將外設地址強制轉化為結構體的指針,然后就可以通過指針GPIOx區訪問某個端口中的寄存器


  #define GPIOA               ((GPIO_TypeDef *) GPIOA_BASE)

  #define GPIOB               ((GPIO_TypeDef *) GPIOB_BASE)

  #define GPIOC               ((GPIO_TypeDef *) GPIOC_BASE)

  #define GPIOD               ((GPIO_TypeDef *) GPIOD_BASE)

  #define GPIOE               ((GPIO_TypeDef *) GPIOE_BASE)

  #define GPIOF               ((GPIO_TypeDef *) GPIOF_BASE)

  #define GPIOG               ((GPIO_TypeDef *) GPIOG_BASE)


2、外設寄存器位的定義


core_cm3.c文件


內核相關的變量和函數的定義:NVIC、systick、MPU(有的MCU沒有)、調試組件


 1、NVIC相關的變量和函數。


中斷向量的使能_(我理解相當于全局中斷的使能)


中斷向量的禁止


中斷向量的掛起


清除掛起的中斷


設置中斷的優先級


讀取中斷的優先級


2、systick定時器的配置,static __INLINE uint32_t SysTick_Config(uint32_t ticks);用來使能中斷、開啟systick定時器。


系統滴答定時器的配置,具體的systick 的介紹在cortex-m3 技術手冊中有介紹。     


system_stm32f10x.c   


1、 時鐘的頻率,系統時鐘的初始化,在最后設置了中斷向量表的基地址和偏移地址:


SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET;       


當在MDK中改變燒寫程序IROM的地址時FLASH_BASE 的地址要改為IROM的地址,如果改為函數void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset);修改NVIC_VectTab_FLASH 的地址,實際上這兩種設置向量表的方法是一樣的,都要修改向量表的基地址。        


偏移量默認偏移量是0,從代碼區啟動則向量表的地址0x0800 0000,0x0800 0000保存的是堆棧棧頂的地址,代碼區的燒寫地址在MDK軟件中設置。 


IAP遠程升級能用到這部分的內容,可以參考正點原子的教程。


misc.c      


1、void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset);函數用來設置中斷向量表的位置:SRAM or Flash 默認是在Flash中,偏移量必須是0x200的整數倍。


2、NVIC中斷管理的函數,使能、分組等。


3、SCB  system control block 系統控制塊


系統控制塊結構體包含了:


startup_stm32f10x_md.s


啟動文件,啟動文件中定義了該類型MCU堆的大小和棧的大小,還有中斷向量表。中斷向量表通過偽指令分配了各個中斷入口函數,在程序進行鏈接時就會把中斷向量表中偽指令中斷函數分配實際的flash地址。

關鍵字:stm32  頭文件  C文件 引用地址:stm32 各頭文件或C文件功能

上一篇:stm32通過spi連接esp8266的hspi 開發
下一篇:基于STM32的簡單電子書的實現

推薦閱讀

  9月6日,廣西頂博電力設備制造有限公司與容縣朗坤生物科技有限公司進行了友好的洽談并達成合作意愿,正式簽訂1臺50KW玉柴柴油發電機組合同。根據合同協議,我司將提供1臺50KW玉柴發電機組和相關配套部件,按協商日期送貨到約定施工現場,并進行免費指導安裝,調試培訓。   合作過程中,我公司責無旁貸的為容縣朗坤生物科技有限公司提供原廠出廠的...
眾所周知,從需求端來看,在數字化、智能化的轉型壓力之下,無論是新興產業,還是傳統領域,對AI人才的需求已經發展到高關注、高需求的階段,人才缺口將達到千萬級別。人工智能產業發展如火如荼,專業人才缺口隨之顯現。但產業到底需求什么樣的人才?高校又應該用何種標準調整培養計劃?通過對人工智能產業人才結構分析發現,源頭創新人才數量極少。清華大學...
據lightreading9月10日報道,本周四愛立信就Open RAN安全性的問題向全球無線通信行業發出警告。愛立信列出了許多具體的潛在隱患,并指出:“對何新生的技術(包括Open-RAN)來說,安全性都不能被忽略。”一段時間以來,圍繞Open RAN安全性這一議題,業內的爭論越來越多。愛立信就此發表了14頁的白皮書,引發了業內的廣泛關注。3GPP RAN架構與O-RAN架構...
重播 播放 00:00 / 00:00 正在直播 00:00 進入全屏 畫中畫 點擊按住可拖動視頻 2021世界機器人大會9月10日至13日在北京舉辦。做飯、沏茶、寫字、打太極……還有更多你意想不到的酷炫黑科技!跟夢竾和宇辰一起打卡這場地表最強機器人盛會,感受...

史海拾趣

小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 龙井市| 邢台市| 泰兴市| 雷州市| 连城县| 都匀市| 肥乡县| 常州市| 奎屯市| 余姚市| 桐柏县| 敦煌市| 阿拉善盟| 双峰县| 怀来县| 卢湾区| 桃江县| 皋兰县| 焉耆| 土默特右旗| 敦化市| 青田县| 遂川县| 五莲县| 绥江县| 嘉义市| 江城| 阜平县| 秦皇岛市| 阳原县| 班玛县| 玛沁县| 赤水市| 江油市| 田东县| 梧州市| 田林县| 霍邱县| 扶余县| 正定县| 页游|