1.安裝IAR Embedded Workbench(可以去官網下載)
2.開啟IAR Embedded Workbench
3.下載STM32L1xx standard peripherals library(STSW-STM32077), Libraries裡面有CMSIS及STM32L1xx_StdPeriph_Driver是撰寫STM32L1XX所需要的檔案,下載網址路徑如下:
http://www.st.com/en/embedded-software/stsw-stm32077.html
4.在C:\跟目錄底下建立專案資料夾IAR_STM32L1(資料夾名稱隨你喜歡即可),其實資料夾要放哪隨便你,本文說明為了方便直接放在C槽
5.在IAR_IAR_STM32L1資料夾中貼上STSW-STM32077 Libraries裡面的CMSIS及STM32L1xx_StdPeriph_Driver,並新增資料夾Inc及Src, Inc及Src分別用來放置使用者自行撰寫的*.c及*.h檔案
7.儲存STM32L1.ewp專案後如下圖,在左邊的STM32L1-Debug欄位案右鍵選擇Add Group...,
新增一些Group : (1)CMSIS (2)STM32L1xx_StdPeriph_Driver (3)User, 用來放置要撰寫的程式及要引入的Libraries,
8.到STSW-STM32077裡面的Project資料夾內的STM32L1xx_StdPeriph_Templates資料夾中,
複製以下(1)stm32l1xx_it.c (2)stm32l1xx_conf.h (3)system_stm32l1xx.c (4)stm32l1_it.h檔案到所建立的專案資料夾中
9.將一些需要用到的Libraries及相關STM32L1需要用到的檔案加入到對應的Group裡面
9.新增Group,命名為EWARM用來放置startup_stm32l1xx_md.s, startup_stm32l1xx_md.s可於所下載的STSW-STM32077檔案中搜尋startup_stm32l1xx_md.s並複製貼到EWARM,STM32L1資料夾,startup有分(1)startup_stm32l1xx_hd.s (2)startup_stm32l1xx_md.s (3)startup_stm32l1xx_mdp.s (4)startup_stm32l1xx_xl.s由於選擇的MCU是STM32L100R8T6A, 因此可以找一下stm32l1xx.h裡面有以下關於density的資訊:
/* #define STM32L1XX_MD */ /*!< - Ultra Low Power Medium-density devices: STM32L151x6xx, STM32L151x8xx,
STM32L151xBxx, STM32L152x6xx, STM32L152x8xx, STM32L152xBxx,
STM32L151x6xxA, STM32L151x8xxA, STM32L151xBxxA, STM32L152x6xxA,
STM32L152x8xxA and STM32L152xBxxA.
- Ultra Low Power Medium-density Value Line devices: STM32L100x6xx,
STM32L100x8xx and STM32L100xBxx. */
/* #define STM32L1XX_MDP */ /*!< - Ultra Low Power Medium-density Plus devices: STM32L151xCxx, STM32L152xCxx and STM32L162xCxx
- Ultra Low Power Medium-density Plus Value Line devices: STM32L100xCxx */
/* #define STM32L1XX_HD */ /*!< Ultra Low Power High-density devices: STM32L151xDxx, STM32L152xDxx and STM32L162xDxx */
/* #define STM32L1XX_XL */ /*!< Ultra Low Power XL-density devices: STM32L151xExx, STM32L152xExx and STM32L162xExx */
10.設定Options,在Workspace專案名稱案右鍵選擇Options,設定如下
11.按存檔會跳出視窗要你存*.eww
12.編譯看看是否有錯,通常有錯都是其中的步驟有設錯,尤其是步驟10的Additional include directories有缺路徑沒有選擇,無法找到邊譯器無法找到某個.h檔