沁恆CH32F103C8T6(二): Linux PlatformIO環境配置, 示例運行和燒錄


目錄

StdPeriphLib_CH32F1封裝庫

封裝庫地址

StdPeriphLib_CH32F1 是用於 CH32F1 系列MCU的 SPL 風格封裝庫

  • 使用 arm-none-eabi-gcc 工具鏈
  • 兼容 Linux 下的 VSCode+PlatformIO 開發環境

文件結構

├── Debug                # 用於演示目的, 可選
├── Examples             # 外設代碼示例
├── StdPeriphDriver      # 封裝庫代碼和頭文件, 必須
│   ├── inc
│   └── src
├── System               # 系統配置文件, 必須
├── USB-Config           # USB 配置, 可選
└── USB-Driver           # USB 封裝庫, 可選
    ├── inc
    └── src

根據與 STMicroelectronics STM32F103 SPL 封裝庫的對比, 兩者在對應外設的部分基本上是一樣的, 從寄存器地址, 變量名, 函數名, 甚至代碼格式都是一樣的.
這意味着如果不需要使用DAC和USB這些外設, 可以直接使用STM32F103 SPL進行開發.

前提

  • 已經安裝 VSCode 和 PlatformIO 擴展
  • 在 PlatformIO 中, 已經安裝 ST STM32 platform
  • ST-Link 模塊用於下載

環境配置和示例運行

這個封裝庫經過調整, 適用於 PlatformIO 開發環境

創建項目

  1. 在 PlatformIO Home界面, 點擊 "New Project"
  2. Project Name: 輸入項目名
  3. Board: 選擇 STM32F103C8T6 Generic 或 Bluepill F103C8 Generic
  4. Framework: CMSIS
  5. Location: 取消勾選, 指定項目路徑
  6. 點擊 "Finish"

這個操作會在前面指定的位置創建一個空項目.

導入 StdPeriphLib_CH32F1

將此倉庫clone到本地,

# GitHub
git clone https://github.com/IOsetting/StdPeriphLib_CH32F1.git
# Gitee
git clone https://gitee.com/iosetting/std-periph-lib-ch32f1.git

重命名為lib並移入項目目錄, 項目目錄結構應當如下

├── include
├── lib
│   ├── Debug
│   ├── Examples
│   ├── StdPeriphDriver
│   ├── System
│   ├── USB-Config
│   └── USB-Driver
├── src
└── test

運行 GPIO 示例項目

將 lib/Examples/GPIO/GPIO_Toggle 目錄下除了 ch32f10x_conf.h 以外的所有文件, 復制到 src 目錄下. 不復制 ch32f10x_conf.h 文件是因為這個文件在 lib/System/ 下已經存在, 而且是一樣的.

編譯項目.

下載/燒錄到開發板

編輯 platformio.ini, 添加一行 upload_flag 參數, 否則下載工具不能正確識別 CH32F103(以及其它國產克隆)芯片

upload_flags = -c set CPUTAPID 0x2ba01477

修改后的配置看起來應該是這樣的

[env:bluepill_f103c8_ch32]
platform = ststm32
board = bluepill_f103c8
framework = cmsis
upload_flags = -c set CPUTAPID 0x2ba01477

然后使用STLink連接開發板, 點擊下載就可以燒錄至開發板


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM