色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > STM32學習筆記 之緒論

          STM32學習筆記 之緒論

          作者: 時間:2016-11-21 來源:網絡 收藏
          學習STM32也有些日子了。作為初學者,從最初的一無所知,到現在略知皮毛之皮毛,感覺著實不容易。

          下面把自己的體會以及自認為初學者不易掌握的要點和大家分享一下,有錯誤的地方,歡迎大家指正。

          本文引用地址:http://cafeforensic.com/article/201611/319281.htm

          一、關于學習方法

          初學STM32給我的一個感覺就是,概念繁多而且很多都可以繼續(xù)深究下去,教程對此又不可能都很詳細的論述,但于我來說如魚鯁喉實在不爽。

          因為我喜歡刨根問底,網絡資料又實在繁雜,如此又耗費精力,又打擊學習積極性。

          終于有一天,我轉變了心態(tài),如果STM32猶如枝繁葉茂的大樹(整個嵌入式體系亦如此),我要做的不是連每一個葉子都明了,而是暫時只要知曉其主干及一些必要的干支即可。其他的枝葉等有時間再去深究,而很多脈絡隨著學習的深入也會逐漸清晰起來。

          所以很多地方需要不求甚解,只要知道個概念即可,這些并不會影響自己的編程設計。相信假以時日,隨著經驗的豐富,涉獵的廣泛,總有一天會打通任督二脈,通體舒泰:)

          二、初學者容易疏忽及困惑的地方

          這些只是我個人的體會,不一定完全正確

          1、Keil ARM使用問題

          a、忘記添加啟動文件,我就出現過一次搞了半天才發(fā)現。。。其出錯信息為“error: L6236E: No section matches selector - no section to be FIRST/LAST.”

          b、忘了在Options of Target ->C/C++->Preprocessor Symbols->Define中添加“USE_STDPERIPH_DRIVER,STM32F10X_HD”

          前者的作用如下圖,定義此參數后即可包含 stm32f10x_conf.h文件,而stm32f10x_conf.h可以設置包含(使用)固件庫中的哪些外設。

          后者則根據所使用芯片flash的大小選擇,后綴表如下:

          cl:互聯型產品,stm32f105/107系列
          vl:超值型產品,stm32f100系列
          xl:超高密度產品,stm32f101/103系列 超大容量 512-1024K
          ld:低密度產品,FLASH小于64K
          md:中等密度產品,FLASH=64 or 128
          hd:高密度產品,FLASH大于128-512

          啟動文件的選擇也可以參考此后綴。

          2、一些概念

          STM32固件庫: STM32庫為ST提供的API,基于它我們可以很方便的進行配置STM32寄存器等操作。

          一開始我局限于單片機編程的思維,固執(zhí)的排斥固件庫,想通過單純寄存器操作來編程。后來發(fā)現如果只是配置個GPIO口,點亮幾個LED直接用寄存器方式當然不復雜,但隨著代碼量的增加此方法將會使人抓狂,因為STM32寄存器繁多,又不容易記憶,如此編程時需要不停的翻參考手冊,這不是折磨人嘛。

          而庫函數則為我們封裝了對寄存器的操作,提供了一系列的函數、宏、結構體等等,稍有點英文基礎的話,會發(fā)現非常好記憶。記不住就直接復制黏貼:)

          CMSIS標準(CortexMicroController Software Interface Standard)主要包括以下兩個方面

          內核函數層:包含用于訪問內核寄存器的名稱、地址定義,由ARM公司提供

          設備外設訪問層:提供片上核外外設的地址和中斷定義,由芯片制造商提供

          如想知道更詳細的定義,請參考 arm.cn/forum.php?mod=viewthread&tid=53&extra=page=1" target="_blank">點此

          固件庫一些文件簡介:

          core_cm3.c 和 啟動文件都屬于底層文件,由ARM公司提供,遵守CMSIS標準

          system_stm32f10x.c 由ST公司提供,遵守CMSIS標準。主要用于設置系統(tǒng)時鐘和總線時鐘。

          stm32f10x.h 寄存器封裝的一些相關定義

          misc.c 提供外設對NVIC的訪問函數

          stm32f10x_it.c 中斷服務函數

          位操作

          a &=~(1<<6); bit6置0

          a |=(1<<6); bit6置1

          a^=(1<<6); bit6取反



          關鍵詞: STM32學習筆

          評論


          技術專區(qū)

          關閉