概述

CH32F1系列是沁恒生产的32位Cortex-M3 MCU, 片上集成了时钟安全机制、多级电源管理、 通用DMA控制器等. 此系列具有 2 路 USB2.0接口、多通道 TouchKey、 12 位 DAC 转换模块, 多通道 12 位 ADC、 多组定时器、 CAN 通讯控制器、 I2C/USART/SPI 等丰富的外设资源.

  • 与STM32F103系列芯片相比, 管脚和寄存器兼容, 增加了USB功能, 有2个USB, 一个Host, 一个Device, 增加了DAC, 供电兼容5V
  • Flash下载算法和内部BootLoader和STM32不兼容, 需要使用沁恒提供的算法, 或者使用沁恒的下载软件通过串口和USB下载.

产品特点

  • Cortex-M3内核, 72MHz系统主频
  • 单周期乘法和硬件除法
  • 20KB SRAM, 64KB CodeFlash
  • 供电范围: 2.7V-5.5V, GPIO同步供电电压
  • 多种低功耗模式: 睡眠/停止/待机
  • 上电/断电复位(POR/PDR)
  • 可编程电压监测器(PVD)
  • 7通道DMA控制器
  • 12位模数转换ADC, 1us转换时间
  • 16路TouchKey通道检测
  • 12位数模转换DAC
  • 7个定时器
  • 1个USB2.0 FullSpeed主机/设备接口(全速和低速)
  • 1个USB2.0 FullSpeed设备接口(全速和低速)
  • 1个CAN控制器(2.0B主动)
  • 2个I2C接口(支持SMBus/PMBus)
  • 3个USART接口
  • 2个SPI接口(支持Master和Slave模式)
  • 51个I/O口, 所有IO口都可以映射到16个外部中断
  • CRC计算单元, 96位芯片唯一ID
  • 串行单线调试(SWD)接口
  • 封装形式: LQFP64M、LQFP48、QFN48

Keil MDK 开发环境配置

1. 器件库代码示例和工具下载

2. 在Keil MDK中添加器件

  • 打开Keil MDK, 点击菜单 Project -> Manage -> Pack Installer
  • 等打开的窗口载入完毕, 点击 File -> Import , 选择Keil.WCH32F1xx_DFP.1.0.1.pack
  • 完成后, 可以在Device Tree上看到 WCH 以及下面的 4 个型号

3. 导入示例项目

EVT包中, EXAM目录下是各个外设的演示代码, 如果要复制到你的工作目录, 务必将 EXAM/SRC 这个目录也复制过去, 在工作目录中保持这个结构

├─GPIO
│ └─GPIO_Toggle
└─SRC
├─CMSIS
├─Debug
├─Startup
├─StdPeriphDriver
│ ├─inc
│ └─src
└─USBLIB
├─CONFIG
└─USB-Driver
├─inc
└─src

通过Keil MDK的 Project -> Open Project 打开 CH32F10x.uvprojx 文件打开示例项目. 如果左侧文件树没有显示黄三角的警告, 文件载入正常, 就可以编译了.

4. 修改GPIO_Toggle为板载LED(对应C13)的闪灯

将main.c代码替换为以下内容, 代码和STM32F103几乎是一样的

#include "debug.h"

void GPIO_Toggle_INIT(void)
{
GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
} int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
Delay_Init();
USART_Printf_Init(115200);
GPIO_Toggle_INIT();
printf("SystemClk:%d\r\n", SystemCoreClock);
printf("GPIO Toggle TEST\r\n"); while(1)
{
Delay_Ms(250);
PCout(13) ^= (1<<0);
}
}

烧录/下载

CH32F103 有三种程序下载方式, 分别为:ST-LINK下载, 串口下载与USB下载

通过ST-link下载

  • 将开发板通过ST-link连上电脑
  • 在Keil MDK中, 点击项目配置图标, 打开项目选项, 切换到Debug标签
  • 在Use中选择 ST-Link Debuger
  • 点击右侧的 Settings, 在打开的对话框中, Target Com要选择SW, 此时右侧的SW Device, 应该能看到这个ST-Link的信息, IDCODE为0x2Bxxxxx, Device Name为 ARM CoreSight SW-DP 之类的设备名
  • 在上面打开的对话框中, 切换到Flash Download选项, 如果下面的Programming Algorithm中, 不是CH32F1xx Flash, 需要点击下面的add增加算法, 选择CH32F1xx Flash
  • 还是这个对话框, 记得勾选 Reset and Run选项
  • OK保存

之后, 和STM32的用法一样, 点击F8就可以直接下载

串口下载

1. 硬件连接

Rx  -> A9
Tx -> A10
GND –> GND
VCC –> 3V3

2. BOOT0设置

跳线BOOT0设置为高电平

3. 使用软件 WCHISPTool 下载

  • 下载方式: 选择串口
  • 使能USB内部上拉电阻: 如果usb有上拉电阻可以不勾选
  • 选择下载串口
  • 选择要下载的HEX或者bin文件
  • 点击下载

USB下载

1. 硬件连接

CH32F103有2个USB口, 一个是主机USB, 一个是设备USB, 分别对应不同的管脚

HUSB

PB7 -> D+
PB6 -> D-

USB

PA12 -> D+
PA11 -> D-

软件默认下载使用HUSB, 可以用一个USB转Dip的小模块和开发板连接

2. BOOT0设置

跳线BOOT0设置为高电平

3. 使用软件 WCHISPTool 下载

  • 下载方式: 选择USB
  • 解除读保护
  • 看到usb设备
  • 选择要下载的HEX或者bin文件
  • 点击下载

参考

沁恒CH32F103C8T6的开发和烧录配置说明的更多相关文章

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

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

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

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

  3. 沁恒CH32V103C8T6开发环境笔记

    CH32V103C8T6 CH32V103C8T6是沁恒的RISC-V内核MCU, 基于RISC-V3A处理器, 内核采用2级流水线处理,设置了静态分支预测.指令预取机制,支持DMA. 主要参数如下 ...

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

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

  5. 沁恒CH32V003F4P6 开发板上手报告和Win10环境配置

    CH32V003 沁恒最近推出的低价CH32V003系列, 基于青稞RISC-V2A内核, 48MHz主频, 2KB SRAM, 16KB Flash, 工作电压兼容3.3V和5V. 主要参数如下 S ...

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

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

  7. HI3518EV200+AR0130开发板烧录uboot、kernel、rootfs及其参数配置

    分区名 分区大小 起始地址 截至地址bootloader:1M 0x00000000 0x00100000kernel: 3M 0x00100000 0x00400000rootfs: 12M 0x0 ...

  8. NUC970开发板烧录

    本次烧录的采用新塘公司官方的NuWriter软件进行烧录,现在我们首先来讲解如何将uboot,Linux内核,根文件系统烧录到开发板上. 过程中所需文件链接: 链接:https://pan.baidu ...

  9. 韦东山嵌入式Linux学习笔记02--如何给开发板烧录程序

    购买韦东山嵌入式开发板jz2440 v3会标配两根usb线和一根网线,OpenJtag需要单独购买, 我暂时还没买到该工具. 下面介绍usb烧录以及通过网线烧录程序. 1.usb烧录程序: 借助DNW ...

随机推荐

  1. 【LeetCode】323. Number of Connected Components in an Undirected Graph 解题报告 (C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 并查集 日期 题目地址:https://leetcod ...

  2. 【机器学*】k-*邻算法(kNN) 学*笔记

    [机器学*]k-*邻算法(kNN) 学*笔记 标签(空格分隔): 机器学* kNN简介 kNN算法是做分类问题的.思想如下: KNN算法的思想总结一下:就是在训练集中数据和标签已知的情况下,输入测试数 ...

  3. 【LeetCode】885. Spiral Matrix III 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  4. DP? (hdu3944)

    DP? Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 128000/128000 K (Java/Others)Total Subm ...

  5. v75.01 鸿蒙内核源码分析(远程登录篇) | 内核如何接待远方的客人 | 百篇博客分析OpenHarmony源码

    子曰:"不学礼,无以立 ; 不学诗,无以言 " <论语>:季氏篇 百篇博客分析.本篇为: (远程登录篇) | 内核如何接待远方的客人 设备驱动相关篇为: v67.03 ...

  6. CS5211芯片|EDP to LVDS|CS5211应用方案

    CS5211芯片–EDP to LVDSDisplayPort到LVDS转换器双通道DP输入,双链路LVDS输出CS5211是一个显示端口到LVDS转换器设计的PC机,利用GPU和显示端口(DP) 或 ...

  7. 造轮子-strace(一)

    见字如面,我是东北码农. 本文是造轮子-strace的第一篇,我们先介绍strace的功能.使用.下一篇我们来用代码实现一下strace的功能,造个轮子.今天我们先观察.使用轮子. 1.什么是stra ...

  8. Java实习生常规技术面试题每日十题Java基础(五)

    目录 1.启动一个线程是用run()还是start()? . 2.线程的基本状态以及状态之间的关系. 3.Set和List的区别,List和Map的区别? 4.同步方法.同步代码块区别? 5.描述Ja ...

  9. 编写Java程序,应用客户端和服务端通过 Eclipse 控制台的输入和显示实现简易的聊天功能

    查看本章节 查看作业目录 需求说明: 应用客户端和服务端通过 Eclipse 控制台的输入和显示实现简易的聊天功能 实现思路: 创建 Java 项目,在项目中创建服务端类 ChatServerThre ...

  10. CSS基础 装饰 元素本身隐藏和显示效果及案例

    1.visibility:hidden; 2.display: none: 区别: 1.visibility:hidden 隐藏元素本身,且在网页中 占位置 2.display:none; 隐藏元素本 ...