久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5848|回復: 2
打印 上一主題 下一主題
收起左側

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

[復制鏈接]
跳轉到指定樓層
樓主
介紹
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開發的項目代碼無法兼容. 在FwLib_STC8的開發上, 采用了與官方庫文件一致的命名, 并且增加了對Keil C51和SDCC的適配. 基于FwLib_STC8的項目, 可以在Linux下使用SDCC編譯, 也可以在Windows下使用Keil C51環境進行編譯.
2. 減小代碼尺寸   FwLib_STC12封裝庫較多使用函數的方式對寄存器進行封裝, 而函數與函數間的層級調用都會增加棧開支, 這樣一方面8位MCU本來就不多的內存更加捉襟見肘, 另一方面增加了生成的固件尺寸. 在FwLib_STC8封裝庫中, 大量使用宏語句對寄存器操作進行封裝, 并且控制方法間的層級調用深度, 有效節省了固件體積和堆棧占用.

以下介紹在Windows下Keil55開發環境的搭建

前提

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

1. 創建項目目錄

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


2. 創建Keil5項目

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


3. 選擇MCU型號

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


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


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


4. Keil5 項目結構

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


項目的目錄結構為

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

5. 下載FwLib_STC8


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

**方式一: 通過git導出**  
在命令行下執行
  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
復制代碼


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

6. 將FwLib_STC8放入項目目錄

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

在文件系統中的目錄列表


7. 在Keil5中添加封裝庫庫

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

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


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

可以看到文件都已經添加進來了


8. 在Keil5中添加演示用例

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


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


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


可以看到, 剛才添加的文件都已經出現在項目樹結構中


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

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


打開選項對話框


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

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

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

配置完成后,
  

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


上面完成后, 點擊OK保存

10. 調整代碼并編譯

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


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


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

11. 用STC-ISP燒錄

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

12. 觀察串口輸出

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

13. 運行其他用例

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


也可以自行創建文件編寫代碼

結束

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


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:319585 發表于 2022-1-7 19:36 來自手機 | 只看該作者
這個感覺不錯,應該比直接用要簡單一些吧。
回復

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 九九激情视频 | 二区三区在线观看 | 国产区在线观看 | 在线国产一区二区三区 | 欧美精品一区二区三区在线播放 | 一区二区免费 | 色综合99 | 一区二区在线看 | 爱爱无遮挡 | 精品一区二区观看 | 欧美视频在线观看 | 狠狠操网站 | 精品免费av | 毛色毛片免费看 | 国产91久久久久久久免费 | 国产黄色在线观看 | 午夜精品在线观看 | 国产免费一区二区 | 国产一区二区三区免费视频 | 亚洲综合一区二区三区 | 99久久精品国产毛片 | 精品国产免费一区二区三区五区 | 久久在视频| 中文字幕在线视频免费观看 | 偷偷操视频 | 亚洲视频一区二区三区四区 | 久草视频在线看 | 精品国产一区二区三区久久久蜜月 | 国产精品亚洲精品日韩已方 | 亚洲区中文字幕 | 欧美爱爱视频网站 | 国产乱码精品一区二区三区五月婷 | 日韩欧美中文字幕在线视频 | 日韩一级 | 日韩成人av在线 | 久热国产在线 | 中文字幕在线一区二区三区 | 国产成人叼嘿视频在线观看 | 国产综合网址 | 欧美一区二区三区大片 | 国产精品毛片一区二区在线看 |