目录

  • 沁恒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 开发环境

创建项目

  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连接开发板, 点击下载就可以烧录至开发板

沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录相关推荐

  1. 沁恒CH32F103C8T6(一): Keil5环境配置,示例运行和烧录

    目录 沁恒CH32F103C8T6(一): Keil5环境配置,示例运行和烧录 沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录 沁恒CH32F103C ...

  2. 沁恒CH32V103C8T6(二): Linux RISC-V编译和烧录环境配置

    目录 沁恒CH32V103C8T6(一): 核心板焊接和Windows开发环境配置 沁恒CH32V103C8T6(二): Linux RISC-V编译和烧录环境配置 硬件准备 CH32V103 开发板 ...

  3. 沁恒CH32F103C8T6(三): PlatformIO DAPLink和WCHLink下载配置

    目录 沁恒CH32F103C8T6(一): Keil5环境配置,示例运行和烧录 沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录 沁恒CH32F103C ...

  4. 沁恒CH32V003(二): Ubuntu20.04 MRS和Makefile开发环境配置

    目录 沁恒CH32V003(一): CH32V003F4P6开发板上手报告和Win10环境配置 沁恒CH32V003(二): Ubuntu20.04 MRS和Makefile开发环境配置 硬件准备 沁 ...

  5. 国产沁恒CH32F103C8T6使用指南

    国产沁恒CH32F103C8T6使用指南 获取更多内容,请关注微信公众号"电路板上的一抹微笑" 前言: CH32F103芯片是由南京沁恒电子产品公司推出的国产ARM芯片,与STM3 ...

  6. 沁恒 CH32V208(二): CH32V208的储存结构, 启动模式和时钟

    目录 沁恒 CH32V208(一): CH32V208WBU6 评估板上手报告和Win10环境配置 沁恒 CH32V208(二): CH32V208的储存结构, 启动模式和时钟 沁恒 CH32V208 ...

  7. Linux 开发环境配置(框架)

    Linux 开发环境配置(框架): 一.安装linux 二.配置网络: 1.virtualbox网络配置为桥接模式 2.ifconfig -a 命令 查看网卡的信息 3.配置CentOS网卡 vi / ...

  8. creo2.0+VS2010采用protoolkit二次开发环境配置(64位win7)

    在网上找了很多资料,也遇到过很多问题.本文的配置过程主要参考了网上的两篇文章,地址如下: http://www.doc88.com/p-3085972896759.html http://wenku. ...

  9. Linux 实用指令 -- 网络配置(查看网络IP和网关、 ping 测试主机之间网络连通、Linux网络环境配置(指定固定ip))

    文章目录 1. 网络配置 1.1 查看网络IP和网关 1.1.1 查看虚拟网络编辑器 1.1.2 这里可以修改ip地址(修改虚拟网络的ip) 1.1.3 这里可以修改网关(虚拟网络的网关) 1.1.4 ...

最新文章

  1. 错误信息输出,重定向到文件
  2. pandas中set_option的常用设置:显示所有行、显示所有列、控制浮点型精度、每个数据元素的显示字符数、对齐形式等
  3. leetcode 122 买卖股票的最佳时机II
  4. 解决R 4.0版本包的安装错误
  5. python数据类型介绍_python的数据类型简介
  6. Nginx常见配置:负载均衡、限流、缓存、黑名单和灰度发布
  7. lvs+keepalived详解
  8. levedb 导入 mysql_LevelDB-初始篇
  9. appium和selenium不同与相同之处
  10. mysql联合子查询_2020-09-08MySQL多表联合查询之子查询
  11. 关于多媒体编解码器和音视频格式
  12. idea mvn命令
  13. 为什么你该培养多维度竞争力?
  14. 计算机课word反思,教学反思Word文档
  15. git 源码安装后报错/usr/bin/git: No such file or directory
  16. 【Word】插入题注图1-1,并在文章中交叉引用
  17. umijs介绍及基本用法、配置式路由、约定式路由、路由传参等
  18. 插画师所需的基础软件
  19. win7工作组计算机无法连接打印机,Win7计算机无法连接到Win10共享打印机解决方案...
  20. Java语言实现杨辉三角

热门文章

  1. 网易实习第11天--制作第一个ios应用
  2. latex \nomenclature表达set的时候会有不希望出现的缩进,原因是没有打%符号,问题比较冷门,自己一个个试出来的
  3. Carla release与ros-bridge
  4. Linux服务器架设之FTP
  5. SIMPACK-学习记录-Doe相关
  6. 简单明了实现Java地图小程序项目
  7. 云物理机ironic对接ceph云盘ceph-iscsi-gateway
  8. 用c#编写一个vb 工程源码分析工具(带源码工程下载)
  9. 2020 力扣杯!Code Your Future 春季全国编程大赛题解
  10. C++字符串里提取数字