stm32Keil編程
⑴ 學習stm32,keil的編程環境,看了很多板子的例子,可是很模糊,打開一個GPIO的例子都要一大堆H文件
我當初第一次接觸單片機的時候, 是為了參加學校的比賽, 當時只懂C語言. 就搞了塊51回來,自己焊線,下程序(當時燒錄器也沒有, 也不知道怎麼燒, 反正是一窮二白). 後來在網上找到一篇非常入門的說明書, 就從上面學會了怎麼通過keil建立工程, 怎麼控制一個IO口. 然後就開始搗鼓自己比賽作品了. 搗鼓的東西是一個溫度計, 就是從18B20那讀取溫度, 再把溫度顯示在1206液晶屏上. 當時的程序都是從網上下過來自己看看改改再拼起來的. 搞了1個多月順利交差了. 後來才明白, 我只用了51上面的IO口, 其他什麼外設資源都沒用到. 但是搗鼓過程中,總算是在感性上有不少的收獲.
現在搞DSP去了. 經常也是一大堆.h .c. 其實這些都不用怕的, 只要看看DEMO工程, 分析一下這些文件的作用, 你就能知道要片子跑起來(比如點亮一個LED)至少需要哪些文件. 等這些熟悉後, 你就會發現其實什麼單片機都是一個樣的. 然後就是學習使用片上的各種資源. 當然, 跑OS的另外說.
我不是什麼高人, 希望我的這些感受對你有所啟發罷了.
⑵ stm32編程 keil中,截圖如下,問題也如下,怎麼理解呢一定採納!
1、這些文件夾只是用來讓用戶看著舒服,便於管理文件,所以 你即使不建立文件夾,全部放到Target下也行
2、.lib文件是庫文件,也就是說你添加這個東東後,在程序裡面的能夠省去很多代碼,因為這個.lib文件也是通過寫代碼,編譯器編譯生成的,添加這個lib文件後,再添加一個頭文件,你就能調用生成.lib文件的源碼中定義並聲明的函數了,這樣很方便使用的。
3、.s文件時stm32的啟動文件,沒有這個是不行的,根據不同的型號,添加的也是不一樣的,比如:互聯性的添加 startup_stm32f10x_cl.s 小型的添加startup_stm32f10x_ld.s 中型的添加startup_stm32f10x_md.s 大型的添加startup_stm32f10x_hd.s ,上面的那個 stm32f10x.s是系統建立工程的時候自動添加的,一般都不添加,自己重新加,因為stm32f10x.s中的東東對高級的晶元是不完全的!
⑶ keil怎麼調試stm32程序
Keil的使用方法(匯總)
http://www.cnblogs.com/strongerHuang/p/5839141.html
⑷ stm32用什麼語言編程
stm32單片機用的是C語言編程,mdk472是安裝工具,KEIL_lic是破解軟體。要看看電路圖,都留出了哪些IO和哪些功能比如AD或者串口,都接了什麼。假如是開發板的話可以看開發板的資料。
⑸ 哪位朋友比較熟悉STM32的,請問STM32用KEIL和IAR編程的區別有哪些方面,最好能夠列點分說。。。。謝謝!
其實區別不大。
KEIL的例子會比較多,keil個人感覺界面更友好。自帶RTX系統
IAR開發板多數喜歡給IAR的常式,其實和KEIL沒什麼區別。
⑹ stm32f103c8t6用keil編程出現錯誤
你看一下stm32f10x_conf.h 中的#include "stm32f10x_exti.h" 有沒有包含
⑺ 如何使keil既能編寫51又能編寫STM32
Keil軟體,按預設設置,先裝MDK,裝完後,不要做任何處理(不卸載,不改變目錄);之後繼續安裝KeilC51軟體,按預設安裝,安裝完成後,你運行KEIL軟體,裡面就由STM32等ARM供你選擇了。
⑻ 基於keil MDK給stm32編程的問題。。。嵌入式系統開發環境的搭建
您好,一、【安裝STM32庫】 將下載後的stm32f10x_stdperiph_lib.zip解壓後得到三個文件夾分別是:"Libraries"、"Project"、"Utilities"將這3個目錄復制到"Keil uVision4"的安裝目錄,和目錄中的文件覆蓋合並。二、【新建工程】 1、打開"Keil uVision4",在Project菜單中選擇新建工程,選擇工程要保存的位置,在彈出的「Select Device for target」的對話框中選擇使用的STM32單片機的型號如「STM32F103C8」,點確定,然後在彈出的「Copy startup code」的對話框中點選"NO".
2、在Project「Target 1」上點選右鍵菜單「Option for target target1中設置相關參數」在[Output]選項卡中點選「Create HEX file」,點"Select folder for objects"設置臨時生成的obj文件的存放目錄,當然也可以不選擇;
3、在[C/C++]選項卡的"Preprocessor Sysmbols"的Define框中做如下定義:USE_STDPERIPH_DRIVER,STM32F10X_MD
其中USE_STDPERIPH_DRIVER表明要使用ST提供的庫,在"system_stm32f10x.c"文件中包含的"stm32f10x.h"文件中有如下定義:
#ifdef USE_STDPERIPH_DRIVER #include "stm32f10x_conf.h"#endif在[C/C++]選項中添加的USE_STDPERIPH_DRIVER宏就是這個作用,用來包含"stm32f10x_conf.h"這個文件被稱為"Library Configuration file"用來配置你需要使用到庫的那些文件的,例如需要使用到GPIO就應在在這個文件中加上#include "stm32f10x_gpio.h"這個文件可以在STM32庫的給出的常式中找得到(C:\Keil\ARM\Project\STM32F10x_StdPeriph_Examples)另外還需要在常式中復制"stm32f10x_it.c"和"stm32f10x_it.h"這2個文件,這2個文件時用來完成STM32中重中斷服務程序的將一下三個文件復制到自己工程的user目錄下供以後使用:"stm32f10x_conf.h"、"stm32f10x_it.c"、"stm32f10x_it.h"STM32F10X_MD 表明使用的是STM32F10X系列的CPU而該CPU的Flash代碼密度是中等(Medium-density devices)這個和使用的CPU相關的查閱CPU的手冊就可以得到。
然後在該選項卡的下方的"Include Paths"中設置include使用的路徑等,如下圖所示:其中.\user路徑是用來保存自己定義的頭文件的路徑4、[Debug]選項卡選擇使用"Cortex-M/R J-Link/J-Trace",然後點"Settings"按鈕在新打開的對話框中選擇[Flash Download]選項卡點"Add"按鈕添加編程使用的Flash,在本例中選用的CPU是STM32F103C8,其Flah為Medium-density使用片上的Flash型號為"STM32F10X Med-density Flash On-chip-Flash 128K",最終點OK保存設置。5、[Utilities]選項卡中的"Use Target Device for Flash Programing"要選擇和[Debug]選項卡中一樣的調試器"Cortex-M/R J-Link/J-Trace";6、然後再次在左側的"Target 1"上點選右鍵,在菜單中選擇"Manger Components"然後在"Project components"選項卡的"Group"中新建3個組名稱分別為"user"、"libs"、"cmsis"1、 分別用來保存用戶自己的C文件、stm32f10x_stdperiph_lib的庫、和cortex-m3的啟動文件等。
users:
Keil\ARM\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\ system_stm32f10x.c (stm32f10x_it.c該文件定義各種中斷的中斷服務函數)
libs:
Keil\ARM\ Libraries\ STM32F10x_StdPeriph_Driver\src\*.*
cmsis:
Keil\ARM\ Libraries\ CMSIS\ CM3\ CoreSupport\core_cm3.c
Keil\ARM\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c
keil\ARM\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_md.s
(該文件和CPU的Flash的代碼密度相關,本例中的STM32F103C8是Medium-density故選用xxx_md.s)
⑼ STM32單片機能用易語言編程嗎
理論上是可以的,但是stm32單片機的開發軟體現在都是keil和iar什麼的,這些國外的軟體不支持漢語,你無法像這樣寫代碼:
#define
整形
int
整形
a
=
0;
但是在vs等軟體中(微軟的軟體)是可以這么寫的,那麼也就有了可以用易語言編寫程序的可能性,但是vs又不是拿來做單片機開發的~
如果哪天樓主突發奇想,開發一個中國的單片機編程軟體,那麼就可以用易語言去編程了~
⑽ 如何用keil5新建STM32 新工程
2.創建一個Demo文件夾
2.1 新建子文件夾User,用於存放用戶源程序
2.2 新建子文件夾Project,用戶KEIL工程文件
2.3 在Project下依次創建Obj和List子文件夾,存放編譯過程中產生的中間文件。
3. 復制源代碼到Demo文件夾
3.1 將stm32f10x_stdperiph_lib\STM32F10x_StdPeriph_Lib_V3.1.2Libraries文件整體復制到Demo文件夾下。這就是ST的標准庫,是以源代碼形式提供的。
3.2 將庫中的演示代碼IOToggle中的文件復制到Demo\User文件夾.
4. 新建一個Keil MDK工程
4.1 啟動Keil MDK,點擊菜單 New uVision Project,然後按向導進行操作
4.2 選擇CPU類型為 STM32F103ZE (這是安富萊STM32開發板採用CPU類型)
4.3 當提示是否復制啟動代碼時,請選擇否。(我們用最新的庫中的啟動代碼,不用Keil軟體自帶的舊版本啟動文件)
4.4 根據自己的需要修改Target名字。(名字任意)
4.5 為了便於代碼管理,在這個Project下創建幾個Group (名字可以任意)
User : 存放用戶自己寫的源代碼
RVMDK : 存放啟動文件(匯編文件)
StdPeriph_Driver : 存放ST標准庫文件
CMSIS : 存放CMSIS介面文件(這也是庫的一部分)
4.6 創建好Group後,我們開始依次添加文件。
5. 修改源代碼。我們將修改main.c 文件,換成我們自己跑馬燈程序。
6. 配置工程, 點擊「Options」按鈕
6.1 切換到Output。
選擇Object文件夾。
在Create Hex File 前打鉤。
6.2 切換帶Listing。
選擇Listings文件夾
6.3 切換到C/C++
添加兩個預編譯宏 STM32F10X_HD, USE_STDPERIPH_DRIVER (這是ST庫用到了這兩個宏)
修改Includes路徑
6.4 切換到Debug
選擇硬體調試器(預設是軟體模擬),我們選擇Cortex-M3 J-Link調試器
再 Run to main前打鉤
6.4 切換到Utilities
選額調試器類型,我們選擇Cortex-M3 J-Link
點settings按鈕,添加Flash編程演算法,我們選擇STM32高密度器件,Flash容量512K位元組
7. 配置工程完畢。下面開始編譯。
8. 編譯OK,開始調試。
9. 教程結束。