吃了這個開源小玩意,讓單片機開發和Arduino一樣高效(全中文注釋)
無論你是一個單片機新手,或者是一位電子 DIY的愛好者,還是說是對嵌入式開發感興趣的工程師,今天這個開源項目值得你看下去。
///插播一條:我自己在今年年初錄製了一套還比較系統的入門單片機教程,想要的同學找我拿就行了免費的,私信我就可以哦~點我頭像黑色字體加我地球呺也能領取哦。最近比較閒,帶做畢設,帶學生參加省級或以上比賽///
正文開始:
ECBM是什麼?
ECBM,是基於 STC8單片機的外設函數庫,同時它也是「Everything Can Be Module(一切都可以模塊化)」的簡稱。
項目作者曾在自己的個人平台上說過,他認為無論軟體、硬體都可以模塊化,且只需要造一次輪子。2017年起,他根據模塊化的設計理念,提出建立一個模塊的軟+硬產品,如果某日想要判定「今天家裡為何很悶」時,可以根據濕度模塊+ CO2模塊+主控分析原因。
此後,作者學習了各個單片機大廠的官方庫,理解軟體的程序結構,選取合適的載體。經過實踐,作者發現單片機官方庫一般可分為兩類:一類是是由DIY愛好者編寫簡單封裝成函數,用到什麼寫什麼,風格混亂易衝突,沒有一個好的體系;另外一類則是由工程師編寫的,雖然有很好的框架,但是由於英文注釋、英文文檔及複雜的文件結構和代碼規則等讓新手望而卻步。
抱著別的產品不符需求,就自己造輪子的想法,ECBM誕生了,經過幾年的技術疊代,目前,該項目已經發行到 V3版本。
特點
·基於 C語言,按統一風格編寫
·具有 KEIL特性,能夠適用圖形化編輯工具
·代碼運行速度提升,大數據
·支持多器件復用,任意 IO都可驅動
·全中文注釋,符合國人習慣
·代碼增加可剪裁,能裝進型號更小的單片機
·當前支持 STC8全系列單片機
前期準備
使用之前需要確保軟體、程序都下載安裝完畢,具體連結可找我。
操作流程
新建
雙擊新建工程.bat,新建test工程
進入 ecbm_test文件夾,打開 ecbm.uvproj,開始編程
注意:在介面下輸入英文或拼音,因Keil對中文支持度低,不建議在此出現中文字符
設計正確的單片機型號
STC8系列目前有F、A、G、H、C這幾個系列,他們的8051寄存器都是一致的,但是擴展8051的功能寄存器卻是有所差別,因此單片機型號一定要設置正確,才能訪問正確的寄存器。
方法:在 Keil左側的 LIB_LIST下找到 ecbm_reg.h,雙擊打開ecbm_reg.h。然後在窗口的左下角點 Configuration Wizard標籤進入圖形化配置介面。
為何是STC8單片機?
·庫要求要有通用性,為了保證通用性就不能為了運行速度而優化。這就要求使用一款運行速度快的51單片機。
·STC8在整型計算略低於stm32f030(同等運行頻率下),在浮點計算中略高於stm32f030(也是同等運行頻率下)。
設置時鐘參數
打開ecbm_core.h,進入圖形化配置介面。在【單片機系統時鐘】下的【單片機系統時鐘設置】選擇所需選項。
譬如:作者使用的是 STC8A8K64D4,在 STC-ISP中設置了 40MHz的頻率,由於超過了 30MHz且我的應用是刷屏一定需要高頻率工作。所以我選擇「內部高速時鍾 HSI(自定義)」,先節省幾百位元組空間,然後填寫頻率 40000000。
如圖所示:
文件結構