欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6084|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

在Keil5中使用FwLib_STC8封裝庫開發(fā)STC8G/8H(圖文詳解)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:912806 發(fā)表于 2022-1-5 21:15 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
介紹
FwLib_STC8 是一個針對STC8G, STC8H系列MCU的C語言封裝庫, 適用于基于這些MCU的快速原型驗證.
* 項目地址: [Gitee FwLib_STC8] https://gitee.com/iosetting/fw-lib_-stc8
* 鏡像地址: [GitHub FwLib_STC8]https://github.com/IOsetting/FwLib_STC8

為避免之前STC12封裝庫存在的問題, 這個封裝庫在以下方面進行了改進
1. 兼容SDCC和Keil C51   FwLib_STC12封裝庫只支持SDCC編譯, 并且寄存器命名與官方不同, 使得基于FwLib_STC12的項目代碼與其他Keil開發(fā)的項目代碼無法兼容. 在FwLib_STC8的開發(fā)上, 采用了與官方庫文件一致的命名, 并且增加了對Keil C51和SDCC的適配. 基于FwLib_STC8的項目, 可以在Linux下使用SDCC編譯, 也可以在Windows下使用Keil C51環(huán)境進行編譯.
2. 減小代碼尺寸   FwLib_STC12封裝庫較多使用函數(shù)的方式對寄存器進行封裝, 而函數(shù)與函數(shù)間的層級調(diào)用都會增加棧開支, 這樣一方面8位MCU本來就不多的內(nèi)存更加捉襟見肘, 另一方面增加了生成的固件尺寸. 在FwLib_STC8封裝庫中, 大量使用宏語句對寄存器操作進行封裝, 并且控制方法間的層級調(diào)用深度, 有效節(jié)省了固件體積和堆棧占用.

以下介紹在Windows下Keil55開發(fā)環(huán)境的搭建

前提

1. 已經(jīng)安裝完成Keil5, 并配置好STC的插件, 如果未完成, 請自行搜索網(wǎng)上的教程和說明
2. (可選)本機安裝了Git并且可以在命令行下使用git命令

1. 創(chuàng)建項目目錄

在文件瀏覽器中, 創(chuàng)建項目目錄, 建議目錄路徑中不要有中文和空格, 例如本例使用路徑


2. 創(chuàng)建Keil5項目

打開Keil5, 點擊 Project -> New uVision Project, 在彈出的對話框中, 選擇剛才創(chuàng)建的目錄, 填入項目名稱, 點擊保存


3. 選擇MCU型號

剛才的保存點擊后, 會彈出MCU選擇對話框, 在里面選擇STC MCU Database,


在下面的列表中選擇自己型號的那款, 點擊OK保存. 如果沒有完全匹配的型號, 則選擇同樣系列中, 內(nèi)存數(shù)量一致的型號, 例如我使用的是STC8H3K32S2, 在列表中沒有此項, 就選用同樣是STC8H系列3K內(nèi)存的STC8H3K64S4


會彈出一個對話框問是否復(fù)制STARTUP.A51,  點Yes


4. Keil5 項目結(jié)構(gòu)

Keil5項目就已經(jīng)創(chuàng)建完成, 這時候其實就已經(jīng)可以添加官方的頭文件, 直接用寄存器進行開發(fā)了


項目的目錄結(jié)構(gòu)為

  1. stc8h_demo/
  2. |
  3. │  STARTUP.A51
  4. │  stc8h_demo.uvproj
  5. ├─Listings
  6. └─Objects
復(fù)制代碼

5. 下載FwLib_STC8


可以通過git clone導出項目代碼, 或者直接下載zip包解壓

**方式一: 通過git導出**  
在命令行下執(zhí)行
  1. # github
  2. git clone https://github.com/IOsetting/FwLib_STC8.git FwLib_STC8
  3. # 或者giteee
  4. git clone https://gitee.com/iosetting/fw-lib_-stc8.git FwLib_STC8
復(fù)制代碼


**方式二: 下載zip包后解壓**
訪問這篇文章頂部的項目鏈接, 在頁面上, 點擊"克隆/下載" 下載ZIP, 并解壓成目錄

6. 將FwLib_STC8放入項目目錄

將上一步得到的目錄, 復(fù)制到Keil5項目的目錄下, 復(fù)制完成后的項目目錄結(jié)構(gòu)如下
  1. stc8h_demo/
  2. |
  3. │  STARTUP.A51
  4. │  stc8h_test003.uvproj
  5. ├─FwLib_STC8
  6. │  ├─demo
  7. │  ├─include
  8. │  └─src
  9. ├─Listings
  10. └─Objects
復(fù)制代碼

在文件系統(tǒng)中的目錄列表


7. 在Keil5中添加封裝庫庫

通過菜單點開Project -> Manage -> Project Items, 或者直接從圖標欄點擊對應(yīng)的圖標,
  

打開文件管理對話框, 在Groups中增加一項, 名稱"FwLib_STC8", 這個可以根據(jù)需要自己改成別的名稱也可以, 點中這個新增加的Group, 在右側(cè)那列點擊下面的Add Files, 會彈出一個文件選擇對話框


在文件選擇對話框中瀏覽到FwLib_STC8\src, 全選全部c文件(可以使用Ctrl+A), 點Add, 然后點Close,
  

可以看到文件都已經(jīng)添加進來了


8. 在Keil5中添加演示用例

保持上一步的窗口不動, 點擊選中Source Group 1, 在右側(cè)那列點擊下面的Add Files, 會彈出一個文件選擇對話框


瀏覽到 FwLib_STC8\demo\uart, 選中uart1_timer1_tx.c, 這是一個用定時器1做波特率時鐘源的串口1測試樣例


添加之后, 可以看到增加了對應(yīng)的文件, 點擊OK保存


可以看到, 剛才添加的文件都已經(jīng)出現(xiàn)在項目樹結(jié)構(gòu)中


9. 在Keil5中對項目進行配置

直接對剛才的項目結(jié)構(gòu)進行編譯是不行的, 還需要配置一下環(huán)境變量, 通過菜單點開Project -> Options for Target ... , 或者直接從圖標欄點擊項目選項圖標


打開選項對話框


如上圖, 選中C51標簽頁, 在"2"標識的輸入框中, 輸入
  1. __CX51__, __CONF_MCU_MODEL=MCU_MODEL_STC8H3K32S2,__CONF_FOSC=36864000UL
復(fù)制代碼

對上面各項的說明
* `__CX51__` 是將當前編譯環(huán)境配置為C51
* `__CONF_MCU_MODEL`, 這里設(shè)置對應(yīng)的MCU型號, 當前使用的型號為`MCU_MODEL_STC8H3K32S2`, 如果你的芯片不是這個, 需要修改成對應(yīng)的型號, 具體的型號可以在FwLib_STC8/include/fw_conf.h中查找. 注: STC8G只列了大型號, 只需要填大型號即可.
* `__CONF_FOSC` 是這個程序運行時將使用的振蕩頻率, 取決于你用STC-ISP燒錄時會用什么頻率, 在這里填入對應(yīng)的數(shù)字, 最后的`UL`代表這個數(shù)字是無符號長整數(shù)

然后點擊"3", 在彈出的對話框中, 選中FwLib_STC8/include 目錄, 這里是配置封裝庫的頭文件路徑.
  

配置完成后,
  

再選中Output標簽頁, 在上面勾選 Create HEX File, 這一步是為了編譯后生成用于燒錄的hex文件


上面完成后, 點擊OK保存

10. 調(diào)整代碼并編譯

因為Windows下使用STC-ISP可以直接設(shè)置時鐘頻率, 所以代碼中不需要對MCU時鐘進行調(diào)整, 這里要打開樣例的代碼, 如下圖所示, 將`SYS_SetClock();`這行注釋掉, 或刪掉, 然后保存文件


點擊"3"標識的按鈕編譯項目, 如果要完整編譯, 按右邊的按鈕, 平時用左邊的按鈕就可以, 或者使用快捷鍵`F7`


因為封裝庫中很多方法未使用, 編譯會提示warning, 這些可以忽略, 只要Errors數(shù)量為0

11. 用STC-ISP燒錄

STC-ISP中選中對應(yīng)的芯片信號, 點擊"打開程序文件", 選中剛才生成的hex文件, 文件位置在項目的Objects目錄下. 然后點擊"下載/編程", 給芯片重新上電后, 就會下載并運行.

12. 觀察串口輸出

使用任意串口工具, 使用波特率115200連接對應(yīng)的串口, 可以看到間隔1秒輸出的"T40UString".

13. 運行其他用例

如果需要運行其他用例, 將剛才的用例文件從項目樹中移除, 再按照前面的流程, 重新添加其他的用例文件就可以了.


也可以自行創(chuàng)建文件編寫代碼

結(jié)束

以上就是針對Keil5環(huán)境, 使用FwLib_STC8封裝庫進行環(huán)境配置和運行演示用例的說明, 如果有問題請留言


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:319585 發(fā)表于 2022-1-7 19:36 來自觸屏版 | 只看該作者
這個感覺不錯,應(yīng)該比直接用要簡單一些吧。
回復(fù)

使用道具 舉報

板凳
ID:915491 發(fā)表于 2022-6-19 08:33 | 只看該作者
太實用了
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表