STM8低門檻快速入門,類似Arduino封裝庫模式開發(fā)介紹
- ??STM8外設封裝庫原項目開源地址:
https://github.com/gicking/STM8_templates
- ??個人整理過的項目地址:
https://github.com/perseverance51/STM8-Templates
- ?????說明:類似Arduino封裝庫,并不是在Arduino平臺來開發(fā)STM8。開發(fā)模式是基于SDCC和STVD環(huán)境的。編譯速度是Arduino開發(fā)環(huán)境沒法比的。
??STM8外設封裝庫介紹
單獨從所提供的外設庫和ST官方所提供的標準外設庫差異不大,主要區(qū)別在于,在使用外設的開發(fā)例程里已經(jīng)做好了進一步的封裝,并補充了常見的串口調(diào)試輸出接口函數(shù),以及其他功能和外設的使能。雖然原作者已經(jīng)停止了維護,但是已開發(fā)出來的框架還是可以使用的。
- ??對于輕度開發(fā)者來說,可以拿來即用,易上手。如果是做單片機重度開發(fā),那么就不推薦使用,畢竟STM8硬件資源有限,主要滿足低端類產(chǎn)品的開發(fā)需求。
??編譯器說明
- ??該庫提供了STVD開發(fā)工程案例,外設庫也支持SDCC編譯器。個人沒有具體使用SDCC編譯器測試過。
?????外設例程說明
- ??原作者已經(jīng)停止維護。在原作者的基礎上,對STVD開發(fā)平臺所有項目進行了編譯測試,保證都能通過。但是不保證所有程序,燒錄到目標芯片上都能達到預期效果,這一點需要自己驗證。
- ??個人整理的內(nèi)容中添加了使用外部時鐘源相關代碼。
// switch to 16MHz (default is 2MHz 1/8)
// CLK.CKDIVR.byte = 0x00; //默認選擇內(nèi)部時鐘源,時鐘不分頻,16MHz
CLK.ECKR.byte = 0x01;/*高速外部晶體振蕩器使能*/
while (!(CLK.ECKR.byte & 0x02));/*HSE準備就緒*/
CLK.SWCR.byte |= 0x02; //swen enable Conversion Enables the automatic conversion mode
CLK.SWR.byte = 0xB4; //Select HSE CLK
while (!(CLK.SWCR.byte & 0x08)); //WAIT
CLK.SWCR.byte &=~0x02;//禁止時鐘切換
CLK.ICKR.byte |=~0x01; //disable HSI
- ??主要的業(yè)務代碼還是在main.c中寫,如果不需要修改時鐘和時基的情況下。main.c中的函數(shù)最終時放在了
main_general.c
中執(zhí)行。
??外設項目架構
- ??STVD 工作空間,使用不同的外設需要包含對應的源文件和頭文件。
??STVP編譯工具鏈配置
-
??需要安裝:
Cosmic CxSTM8
,如果項使用最新的,就去官方下載,可以申請免費使用一年的許可。不使用最新的可以下載國內(nèi)提供的和諧版本:Cosmic CxSTM8 32K 4.3.4
,在各大資源網(wǎng)站可下載到。 -
??安裝好后,項目配置:
-
????stm8單片機型號選擇/切換:
-
??生成獨立的HEX文件
chex -o $(OutputPath)$(TargetSName).s19 $(OutputPath)$(TargetSName).sm8
chex -o $(OutputPath)$(TargetSName).HEX $(OutputPath)$(TargetSName).sm8
- ??個別項目需要修改存儲模式:(例如在使用
SD-card_fatFS
例程)
?如果個人使用時,程序很大,編譯報錯時,也可以修改。文章來源:http://www.zghlxwxcb.cn/news/detail-529802.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-529802.html
到了這里,關于STM8低門檻快速入門,類似Arduino封裝庫模式開發(fā)介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!