準(zhǔn)備:
開發(fā)軟件:IAR for stm8
固件庫:STSW_STM8069_STM8S和STM8A標(biāo)準(zhǔn)外設(shè)固件庫
實驗步驟
1.下載IAR for stm8 ,當(dāng)進(jìn)入到IAR官網(wǎng)時(點擊上方IAR for stm8鏈接),顯示界面大概如下:
把網(wǎng)頁拖到最下面看到下圖,點擊 download a free trial 將會拉出一個下載按鍵,這個顯示的IAR版本是最新的。本人目前看到的版本為3.10。
下載完成后,根據(jù)以往的方式進(jìn)行安裝,然后通過IAR破解工具將其破解。破解目前網(wǎng)上很多隨便下載。當(dāng)然本人自己也提供了下載鏈接 https://download.csdn.net/download/fangjiaze444/10944375 。
2.下載固件庫,鏈接已經(jīng)在上面已經(jīng)超鏈接了。將STSW_STM8069_STM8S和STM8A標(biāo)準(zhǔn)外設(shè)固件庫下載下來后。就可以開始我們的工程了。
打開IAR for stm8,新建一個工作空間,點擊file菜單,再點擊new workspace,然后再保存該工作空間指定到你要開發(fā)的工程目錄中。比如我們在F:STM8_test目錄下保存該工作空間,因此電機(jī)file菜單,再點擊save workspace as。。指定到該目錄。
填寫文件名為helloworld,點擊保存。這樣就生成下面的工作空間。
接下來就在該空間目錄下創(chuàng)建工程,點擊Project菜單,再點擊create new project,得到如下圖:
在project templates里面選擇 c 選項然后再點擊ok,同樣得到如下圖,名字也可以寫成helloworld,當(dāng)然你要想寫別的名字都行。填好名字直接保存到該工作空間即可。
此時該工程的結(jié)構(gòu)如下:
可以看看該工程目錄大致的樣式如下:
這個時候就可以添加固件庫了。如果為了整個工程相對干凈整潔,可以模仿我的目錄結(jié)構(gòu)。
首先,從上文已經(jīng)拿到了stm8開發(fā)庫,庫目錄結(jié)構(gòu)如下:
我們直接進(jìn)入libraries,再進(jìn)入STMS_StdPeriph_Driver,得到如下結(jié)構(gòu):
inc目錄內(nèi)包含庫的所有外設(shè)驅(qū)動函數(shù)的頭文件,src目錄內(nèi)包含對應(yīng)的c原文件。我們把這兩目錄的父目錄復(fù)制到我們的工程目錄中,得到工程結(jié)構(gòu)如下:
然后我們還需要工程相關(guān)的配置頭文件及c文件,退后到固件庫的主目錄,然后進(jìn)入到project
example是api使用的例程,可以作為參考,而我們需要的文件在Template里面,進(jìn)入它。把里面的main.c,stm8s_conf.h,stm8s_it.c和stm8s_it.h復(fù)制出來到我們的工程,我們的工程可以新建一個USER目錄,再粘貼進(jìn)去,得到如下:
由于USER是在固件庫拿來的main主程序文件,因此我們需要把工程下默認(rèn)生成的main.c文件去掉,之后再導(dǎo)入文件工程時替換掉原來的main.c文件,去掉工程目錄的main.c之后,工程結(jié)構(gòu)如下:
之后就需要在IAR上導(dǎo)入文件工程了,首先先把默認(rèn)的main.c文件remore掉,右鍵該文件即可刪除。
之后再添加組,這里我們添加了LIB和USER兩個組。
得到結(jié)果如下:
之后再右鍵LIB組,添加我們的庫的API的C文件。右鍵LIB,如下:
選擇到如下 工程目錄STM8S_StdPeriph_Driversrc,添加里面所有的c文件。點擊ctrl+A快捷鍵即可全部添加
點擊打開即可得到如下:
再右鍵USER組添加目錄USER下的所有文件:
之后工程組結(jié)構(gòu)如下:
接下來就進(jìn)入到配置環(huán)節(jié),雖然我們把必要的文件加進(jìn)來了,但是由于這些驅(qū)動文件能夠通用各個stm8的任何系列的芯片,因此少不了option配置。廢話少說,直接右鍵工程進(jìn)入options
我們選擇一些芯片的系列。假如我選擇stm8s003f3,得到如下:
之后,進(jìn)入c/c++ Compiler,然后點擊Preprocessor選項,得到如下:
在additional include directories下添加我們需要編譯的頭文件的目錄,只要是需要的頭文件,他的路徑必須加進(jìn)來,否則編譯會找不到對應(yīng)頭文件。添加結(jié)果如下,因為目前就只有這兩目錄有頭文件。
當(dāng)然為了方便移植,我們通過環(huán)境變量來錄入我們的頭文件路徑。下面是如何操作修改成環(huán)境變量的。
得到結(jié)果如下:
接下來直接編譯該工程了,發(fā)現(xiàn)報了很多錯,該錯誤告訴我們,我們還需要選擇一個目標(biāo)。
跟蹤這個錯誤,點擊該錯誤看它。
說明我們需要添加一個宏,既然我選擇了STM8S003f3,所以根據(jù)它列出來的選項,我選擇了SMT8S003,因此在main主程序上可以添加 #define STM8S003 這一行,當(dāng)然IAR本身就已經(jīng)自帶options里配置添加宏的欄框,故我們直接在options上添加,如下圖:
點擊ok再編譯,此時可能會彈出各種未定義:
原因很簡單,由于stm8s003的外設(shè)資源比較少,故該sdk就會通過我們剛剛添加的宏來屏蔽一些外設(shè),這將導(dǎo)致一些外設(shè)c文件將編譯不通過,因此,我們只需要把沒編譯通過的外設(shè)從工程中移除就ok了,下圖可以看到有些文件后邊多了個紅點。
說明這些多了個紅點是剛剛未編譯通過的文件。把這些文件移除掉,一樣右鍵要移除的文件,點擊remove即可。移除之后剩下的結(jié)構(gòu)如下:
看樣子文件比剛剛少了一些,然后再編譯該工程,得到如下圖:
此時,上圖編譯日志顯示的是0錯誤0警告。說明工程已經(jīng)建立完成了。有什么異議希望能在評論下指點我錯誤的做法。
上一篇:IAR For STM8工程改名
下一篇:IAR for STM8安裝教程
推薦閱讀
史海拾趣
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 中國研究人員發(fā)明全新動作好奇心算法 增強(qiáng)不確定環(huán)境下的自主導(dǎo)航
- 技術(shù)解析|沃爾沃XC70超級混動有什么亮點?
- 小米汽車:磁吸物理按鍵已接入米家,可通過APP操控
- 專家專論 | 顧劍民:L2級輔助駕駛激光雷達(dá)“價格歸零”
- 近一個月投資五家!京東密集落子具身智能機(jī)器人賽道
- 海外動力電池裝車量TOP10:3家落榜 一新上榜中企暴增逾10倍
- 吉利汽車:全域AI守護(hù)輔助駕駛安全
- 松下汽車系統(tǒng)與VicOne深化合作 共拓新一代智能座艙系統(tǒng)安全創(chuàng)新
- 汽車MCU的“芯”浪潮
- 具身智能如何大規(guī)模推廣?丨具身智能機(jī)器人高質(zhì)量發(fā)展
- 【micropython教程】——by zy459994202
- 求助,stm8把swim口設(shè)置為普通IO口后,無法再連接,要怎么才能改回來啊
- 誰知道這個flash顆粒是哪個公司的
- Verilog HDL設(shè)計練習(xí)
- 單片機(jī)發(fā)送AT命令的問題
- VC++對話框程序的 鍵盤消息響應(yīng)
- 觀看福祿克計量校準(zhǔn)視頻參與調(diào)查問卷好禮送!
- 這個MOS管為什么這么接呢
- 用installshield做的驅(qū)動安裝包,在win2000下卸載時無法刪除驅(qū)動?
- 利用高效半導(dǎo)體提高便攜式超聲波系統(tǒng)的圖像質(zhì)量