沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录
目录
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连接开发板, 点击下载就可以烧录至开发板
沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录的更多相关文章
- 沁恒CH32V103C8T6(二): Linux RISC-V编译和烧录环境配置
目录 沁恒CH32V103C8T6(一): 核心板焊接和Windows开发环境配置 沁恒CH32V103C8T6(二): Linux RISC-V编译和烧录环境配置 硬件准备 CH32V103 开发板 ...
- 沁恒CH32F103C8T6(三): PlatformIO DAPLink和WCHLink下载配置
目录 沁恒CH32F103C8T6(一): Keil5环境配置,示例运行和烧录 沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录 沁恒CH32F103C ...
- 沁恒CH32V003(二): Ubuntu20.04 MRS和Makefile开发环境配置
目录 沁恒CH32V003(一): CH32V003F4P6开发板上手报告和Win10环境配置 沁恒CH32V003(二): Ubuntu20.04 MRS和Makefile开发环境配置 硬件准备 沁 ...
- Linux开发环境配置大全
Linux开发环境配置 零章:通过xshell在linux上安装JDK8 壹章:通过xshell在linux上安装tomcat8 贰章:通过xshell在linux上安装mysql5.7(终极版) 叁 ...
- Taurus.MVC WebAPI 入门开发教程1:框架下载环境配置与运行(含系列目录)。
前言: Taurus.MVC 微服务版本已经发布了:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单. 以前都是框架发布时写点相关功能点的文章,没有形成 ...
- 沁恒CH32F103C8T6的开发和烧录配置说明
概述 CH32F1系列是沁恒生产的32位Cortex-M3 MCU, 片上集成了时钟安全机制.多级电源管理. 通用DMA控制器等. 此系列具有 2 路 USB2.0接口.多通道 TouchKey. 1 ...
- C#进行CAD二次开发环境配置
最近被公司分配到了做CAD二次开发.也是初次接触这方面的东西,其实是有些无从下手的感觉.因为公司这边也没有人有时间带我,只能是自己看书,然后再写一些Demo,再结合实际的应用来一点点的学习.废话不多说 ...
- JavaSE基础(二)--Java环境配置
Java 开发环境配置 在本章节中我们将为大家介绍如何搭建Java开发环境. Windows 上安装开发环境 Linux 上安装开发环境 安装 Eclipse 运行 Java window系统安装ja ...
- Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)
Revit二次开发环境搭建(Revit 2019+Visual Studio 2017)准备内容 Revit 2019开发环境的搭建,需要安装的内容如下: Revit 2019(主要的开发环境) Vi ...
随机推荐
- 【LeetCode】1470. 重新排列数组 Shuffle the Array (Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode-cn ...
- 【LeetCode】962. Maximum Width Ramp 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 单调栈 日期 题目地址:https://leetco ...
- 【LeetCode】792. Number of Matching Subsequences 解题报告(Python)
[LeetCode]792. Number of Matching Subsequences 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://f ...
- 【LeetCode】227. Basic Calculator II 解题报告(Python)
[LeetCode]227. Basic Calculator II 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: h ...
- Java 泛型通配符 T,E,K,V,?
Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型. 泛型的本质是参数化类型,也就是说所操作的数据类型被 ...
- RabbitMQ 七种队列模式
(1)简单模式(Hello World) 做最简单的事情,一个生产者对应一个消费者,RabbitMQ相当于一个消息代理,负责将A的消息转发给B 应用场景: 将发送的电子邮件放到消息队列,然后邮件服务在 ...
- Chapter 1 A Definition of Causal Effect
目录 1.1 Individual casual effects 1.2 Average casual effects 1.5 Causation versus association Hern\(\ ...
- [C++]使用vector描述线性表定义及基本操作
#ifndef VECTORLIST_H #define VECTORLIST_H #include<iostream> #include"linearlist.h" ...
- Windows下安装配置Maven
1.下载Maven 官方下载地址:http://maven.apache.org/download.cgi 目前Apache Maven最小版本为3.6.3, 下载适合Windows的安装包apach ...
- golang 算法题 : 两数相加
package mainimport "fmt"type ListNode struct { Val int Next *ListNode}func main() { l1 := ...