沁恒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 ...
随机推荐
- Codeforces 919D:Substring(拓扑排序+DP)
D. Substring time limit: per test3 seconds memory limit: per test256 megabytes inputstandard: input ...
- 5G的到来
通信改变未来,从古至今信息的传输和获取从来就没有缺少过,之所以谁能取得胜利就是谁掌握的资源多,其中信息资源尤为重要,只要获取到更多的信息你就能提前做出应对策略.因此未来一定是信息的未来,作为信息传输的 ...
- DAGs with NO TEARS: Continuous Optimization for Structure Learning
DAGs with NO TEARS: Continuous Optimization for Structure Learning 目录 DAGs with NO TEARS: Continuous ...
- Java初学者作业——为某超市设计管理系统,需要在控制台展示系统菜单,菜单之间可以完成跳转。
返回本章节 返回作业目录 需求说明: 为某超市设计管理系统,需要在控制台展示系统菜单,菜单之间可以完成跳转. 实现思路: 定义mainMenu方法,用于显示主菜单. 主菜单主要负责显示4个选项,分别是 ...
- linux的用户主目录(~)指向问题
最近在Ubuntu上安装rabbitmq之后,发现~目录指向出问题了,原本~指向当前shell登录的用户主目录,如下图 现在变成了这样: 登录之后进入的不是~目录,而是直接显示的主目录,而~指向的目录 ...
- python自动化适应多接口的断言怎么做?
最近做的接口自动化,遇到了很多模块的接口,返回的断言不太相同,在放在unnitest单元测试框架+ddt数据驱动,做参数时,发现不能只通过一个方式进行断言,那么,要怎么做才能做到适配当前所有接口的断言 ...
- 初识python: while循环 猜年龄小游戏
知识点: 1.python注释方法: 单行注释: # 多行注释: '''注释内容 ''' (单引号或双引号都可以),亦可打印多行 例: #此处是单行注释信息 print('这里是打印内容') #这里 ...
- Mysql字符串字段判断是否包含某个字符串的方法
方法一:like SELECT * FROM 表名 WHERE 字段名 like "%字符%"; 方法二:find_in_set() 利用mysql 字符串函数 find_in_s ...
- 修正了Model1模式,进入如今盛行的的Model2模式,也就是MVC模式
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6513668601843548675/ 1.<JSP页面实际上就是Servlet> 2.<JSP页 ...
- redis 入门使用
一.Redis 数据类型及结构特点 Redis 最常见的5中数据结构有 String(字符串),List(列表),Set(集合),Hash(散列),Sorted Sets (有序集合),下表简单总结 ...