久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7145|回復: 0
打印 上一主題 下一主題
收起左側

KEIL建立stm32以及仿真器的接口含義

[復制鏈接]
跳轉到指定樓層
樓主
ID:385288 發表于 2018-8-21 21:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
       
網上搜索了一些方法,匯總了下,挑選了一個可行的寫出來,如下。

1、新建工程!Project → New  uVision Project,保存。

2、選擇芯片型號!。這里用:STM32F103C8。

3、提示是否拷貝,選擇否!


4、新建文件夾!在工程文件根目錄下新建幾個文件夾:User、CMSIS、Lib、Obj、List(這里是為了養成良好的習慣。︰ser放置用戶代碼;CMSIS放置固件庫的啟動文件,Lib放置庫文件

PS:普及(CMSIS:Cortex Microcontroller Software Interface Standard,是 ARM Cortex 微控制器軟件接口標準,是ARM公司為芯片廠商提供的一套通用的且獨立于芯片廠商的處理器軟件接口。)

5、拷貝!把固件庫的Libraries \ STM32F10x_StdPeriph_Driver目錄下的inc和src這兩個文件夾復制到剛才新建的Lib文件夾中。
   將固件庫的Libraries \ CMSIS \ Core \ CM3文件夾下的全部文件復制到剛才新建的CMSIS文件夾中,Startup / arm目錄下一般有三個啟動文件,分別為,startup_stm32f10x_ld.s,startup_stm32f10x_md.s,
startup_stm32f10x_hd.s,按順序是小,中,大容量Flash單片機的啟動文件。我們這里用的是
STM32F103C8有128 K Flash。所以,稍后,把startup_stm32f10x_md.s添加到我們的工程中。不同大小的Flash對應的啟動文件不同,這點要注意。

    最后,用戶的代碼(例如main.c)都放在User文件夾下。

6、建組!鼠標右擊“Target1”→Manage Componets,彈出如下的對話框,在中間列依次建立:CMSIS、Lib、User文件夾,將原有的Source Group1改為startup,并在最右列依次添加所需要的文件。
    Startup中startup_stm32f10x_md.s文件,在USER組里添加main.c,stm32f10x_it.c這兩個文件,在FWlib組里面添加src里面的全部驅動文件。

PS:src里面的驅動文件,也可以需要哪個就添加哪個,這里全部添加,是為了后續開發的方便。并且,我們可以通過配置stm32f10x_conf.h文件來選擇性添加,只有在stm32f10x_conf.h中被配置的文件才會被編譯。
PS:注意,在組里面添加的,都是匯編文件和C文件 ( 即,以 .s和 .c為后綴的文件 ),即,都是源程序文件 ( 可能還有其它類型的文件,但是,都必須是源程序文件 ),并且,一般地,所有源程序文件都必須添加到組里面才行。但是,頭文件是不需要添加到組里面的。

7、設置!右鍵“Target1”→Options For Target “Target1”,彈出下面的對話框。
   ①點擊“Output”選項卡,點擊“Select Folder for Objects”按鈕,可以為編譯時產生的輸出文件,設置一個文件夾“Obj”,把這些輸出文件都輸出到該文件夾下。還可以把“Creat HEX File”選項框勾上,這樣,就可以在編譯時,輸出16進制的可執行文件了。

   ②點擊“Listing”選項卡,點擊“Select Folder for Listings”按鈕,可以為編譯時產生的鏈接文件,設置一個文件夾“List”,把這些鏈接文件都輸出到該文件夾下。

   ③點擊“C / C++”選項卡,這里有兩個設置很重要 (“Define”和“Include Paths”,如下圖 ),設置不對,編譯會出很多錯誤。另外,下圖中的“One ELF Section per function”一般要選上。
      Define是設置,預定義符號,在這里定義符號,相當于在程序文件中使用 #define 語句定義符號。這里一般要填入以下內容:USE_STDPERIPH_DRIVER, STM32F10X_HD, USE_STM3210E_EVAL其中,定義了USE_STDPERIPH_DRIVER就可以使用,標準外設驅動。定義了STM32F10X_HD,就可以對固件庫進行條件編譯。定義了USE_STM3210E_EVAL,就可以使用ST公司的官方評估板作為硬件來下載,調試程序,這個宏,一般可以不定義,因為我們很少使用ST公司的官方評估板。

PS:注意:定義STM32F10X_HD,是因為我們用的芯片是大容量的。添加了STM32F10X_MD這個宏以后,庫文件里面為大容量芯片定義的寄存器,我們都可以使用了。芯片是小容量,或者,中容量時,宏要換成,STM32F10X_LD或者STM32F10X_HD。其實,不管什么容量,我們只要添加STM32F10X_HD這個宏即可。當我們用小,或者,中容量的芯片時,那些為大容量定義的寄存器,不去訪問就是了,反正,也訪問不了。

        Include Paths是設置,頭文件的搜索路徑的。我們的工程中,用到的頭文件在哪個路徑,就把該路徑添加進來。有時,也可以根據編譯錯誤,發現哪些頭文件,編譯器找不到,再把這些頭文件的路徑添加進來。一般要填入的路徑有以下一些,每個不同的路徑以分號間隔:“ ..\ ”表示工程根目錄。
例如:..\..\..\Libraries\STM32F10x_StdPeriph_Driver\inc;這里主要有幾個必須要添加,一是inc的庫,也就是頭文件庫;二是CMSIS的路徑必須要添加!
PS:注意:因為編譯器不會自動搜索指定目錄的子文件夾,所以每個路徑都要添加,就算,路徑1是路徑2的子目錄,路徑1和路徑2都必須同時添加,才行。 在添加目錄時要注意,在下圖界面下,必須把藍色條移到最后的空白處,再點擊“OK”,最后一個路徑才能被添加成功,否則,最后一個路徑會丟失。



    ④點擊“Debug”選項卡,選中左邊的Use Simulator,就是使用軟件仿真模式調試,選中右邊的Use,就是使用硬件仿真,調試。由于我們多使用開發板加J-Link調試,所以選中“Cortex–M / R  J-LINK / J-Trace”項,其它選項,默認即可。如下圖。

    ⑤點擊“Utilities”,選中“Use Target Driver for Flash Programming”,在它下面選擇“Cortex–M / R  J-LINK / J-Trace”項。其它設置,默認即可。如下圖。


    ⑥在上圖的界面中,點擊“Settings”按鈕,彈出下面的對話框,添加Flash。如果,已經有Flash了,就不用添加了,如果沒有的話,就一定要添加Flash,否則,無法下載程序到開發板。

編譯即可
PS:main.c中的頭文件需要引用。例如:#include "stm32f10x_gpio.h"、#include "stm32f10x_rcc.h"等





仿真器的接口
流行的是JTAG/SWD
仿真器端口        連接目標板        備注
  1. VCC          MCU電源VCC        VCC
  2. VCC          MCU電源VCC        VCC
  3. TRST          TRST        Test ReSeT/ pin
  4. GND          GND或懸空         
  5. TDI          TDI        Test Data In pin
  6. GND          GND或懸空         
  7. TMS, SWIO          TMS, SWIO        JTAG:Test Mode State pin ; SWD: Data I/O pin
  8. GND          GND或懸空         
  9. TCLK, SWCLK          TMS, SWCLK        JTAG: Test Clock pin ; SWD: Clock pin
  10. GND          GND或懸空         
  11. RTCK           RTCK         
  12. GND          GND或懸空         
  13. TDO          TDO        Test Data Out pin
  14. GND          GND或懸空         
  15. RESET          RESET        RSTIN pin
  16. GND          GND或懸空         
  17. NC          NC         
  18. GND          GND或懸空         
  19. NC          NC         
  20. GND          GND或懸空         


下面是標準的接口排列:




ST-Link/V2 JTA/SWD接口是如何定義的?
下面為ST-Link/V2 JTAG/SWD接口定義:
仿真器端口        連接目標板        功能
  1. TVCC          MCU電源VCC        連接STM32目標板的電源VCC

  2. TVCC          MCU電源VCC        連接STM32目標板的電源VCC
  3. TRST          GND        GROUND
  4. UART-RX          GND        GROUND
  5. TDI          TDI        連接STM32的JTAG TDI
  6. UART-TX          GND        GROUND
  7. TMS, SWIO          TMS, SWIO        連接STM32的JTAG的TMS, SWD的SW IO
  8. BOOT0          GND        GROUND
  9. TCK, SWCLK          TCK, SWCLK        連接STM32的JTAG的TCK, SWD的SW CLK
  10. SWIM          GND        GROUND
  11. NC          NC        Unused
  12. GND          GND        GROUND
  13. TDO          TDO        連接STM32的JTAG TDO
  14. SWIM-RST          GND        GROUND
  15. STM32-RESET          RESET        連接STM32目標板的RESET端口
  16. KEY          NC        GROUND
  17. NC          NC        Unused
  18. GND          GND        GROUND
  19. VDD          NC        VDD (3.3V)
  20. GND          GND        GROUND
下面是ST-Link/V2 JTAG/SWD標準的接口排列:





STM32F10X手冊中要求的JTAG/SWD接法:


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91pao对白在线播放 | 国产一区二 | 中文字幕一区二区三区在线乱码 | 亚洲小说图片 | 午夜精品久久久久久久久久久久久 | 日韩欧美一区在线 | 国产成年人小视频 | 亚洲天堂av在线 | 日韩精品在线一区 | 久久久国产精品 | 欧美日产国产成人免费图片 | 国产视频二区在线观看 | 久久国产精品视频 | 精品福利在线 | 99riav国产一区二区三区 | 特黄特黄a级毛片免费专区 av网站免费在线观看 | 玖玖玖在线 | 成人影院午夜 | 视频一区中文字幕 | 夜夜草导航 | 亚洲一区视频 | 夜夜摸天天操 | 成年人在线视频 | 精品久久久久久 | 黄a在线观看 | 精品久久久久久久 | 欧美精品网 | 国产精品三级久久久久久电影 | 亚洲久久久 | 91青青草视频 | 久久国产综合 | 免费视频久久久久 | 久久99精品久久久久久秒播九色 | 国产伦精品一区二区 | 欧美日韩一区二区三区在线观看 | 亚洲欧美一区二区三区视频 | 欧美高清视频一区 | 欧美亚洲视频 | 久久久久免费精品国产 | 高清久久久 | 一区二区不卡视频 |