目錄
- 沁恆CH32F103C8T6(一): Keil5環境配置,示例運行和燒錄
- 沁恆CH32F103C8T6(二): Linux PlatformIO環境配置, 示例運行和燒錄
- 沁恆CH32F103C8T6(三): PlatformIO DAPLink和WCHLink下載配置
StdPeriphLib_CH32F1封裝庫
封裝庫地址
- GitHub StdPeriphLib_CH32F1
- Gitee 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 開發環境
創建項目
- 在 PlatformIO Home界面, 點擊 "New Project"
- Project Name: 輸入項目名
- Board: 選擇 STM32F103C8T6 Generic 或 Bluepill F103C8 Generic
- Framework: CMSIS
- Location: 取消勾選, 指定項目路徑
- 點擊 "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連接開發板, 點擊下載就可以燒錄至開發板