国产单片机(沁恒微WCH)CH32V307评估板初探

news2024/10/7 10:23:27

国产单片机(沁恒微WCH)CH32V307评估板初探

关于沁恒微:国产芯厂家、官网链接

公司简介 - 南京沁恒微电子股份有限公司 (wch.cn)

开发板资源:

评估板应用于 CH32V307 芯片的开发,IDE 使用 MounRiver 编译器,可选择使用板载或独立的 WCH-Link 进行仿真和下载,并提供了芯片资源相关的应用参考示例及演示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0C6sXDN6-1689743895664)(C:\Users\23206\AppData\Roaming\Typora\typora-user-images\image-20230719112145708.png)]

上图 CH32V307V 评估板配有以下资源:

主板 - CH32V307EVT

1.主控 MCU :CH32V307VCT6

2.SDI&UART 接口 :用于下载、仿真调试,需跳线选择是否使用板载 WCH-Link

3.LED :通过 J3 插针连接主控 MCU 的 IO 口进行控制

4.WCH-Link MCU :实现 WCH-Link 功能的 MCU

5.按键 S1 :复位按键,用于外部手动复位主控 MCU

6.开关 S3 :用于切断或连接外部 5V 供电或 USB 供电

7.USB type-C 接口 P7 :连接主芯片 USB2.0 全速通信接口

8.USB type-C 接口 P6: 连接主芯片 USB2.0 高速通信接口

9.稳压芯片 U1 :用于实现将 5V 电压转成芯片可用的 3.3V 电源电压

10.Download 接口 J1 :当 J1 跳线短接时,可用于实现 WCH-Link 固件更新

11.WCH-Link 接口 :用于连接 PC 和 WCH-Link 功能模块

12.MCU I/O 口 : 主控 MCU 的 I/O 引出接口 CH32V30x 评估板说明及应用参考 http://wch.cn V1.6 3

13.USER 按键 S2 :通过 J3 插针连接主控 MCU 的 IO 口进行按键控制

14.WCH-Link 指示灯:包括 D1、D2 和 D3 三个 LED 灯,指示 WCH-Link 运行状态

15.网口:主芯片的网络通讯接口 16.ARDUINO 接口:方便连接 ARDUINO 接口的开发板

MounRiver Stuido介绍

MounRiver Studio(MRS)是一款基于Eclipse GNU版本开发,面向RISC-V、ARM等内核MCU的集成开发环境,提供专业嵌入式项目所需的开发调试烧录以及项目管理等功能。

目前免费,可放心使用,无需担心license。
在这里插入图片描述

MounRiver Stuido下载

在这里插入图片描述

MounRiver Stuido安装

非常简单、一路next即可,我这里使用默认安装路径,如需修改请参考其他资料。

MounRiver Stuido汉化(可选)

创建工程基于CH32V307VCT6:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CSC2V492-1689743895668)(C:\Users\23206\AppData\Roaming\Typora\typora-user-images\image-20230719113940748.png)]

填写工程信息:

在这里插入图片描述

创建好结果如下:工程名是DEMO_01

编写测试代码(基于官方代码包):

第一步:添加用户自定义的文件夹跟文件代码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KHZ4hZC5-1689743895670)(C:\Users\23206\AppData\Roaming\Typora\typora-user-images\image-20230719115233214.png)]

第二步:把自己添加的用户自定义文件夹加到编译选择中去

具体操作如下:

右键工程属性

选择C/C++构建的设置选项

C编译器设置包含选择

添加相对目录:根据实际情况添加,这里是添加api文件夹

在这里插入图片描述

第三步:自己补充一个main.h(非必须)

这里main.h的作用主要是包含相关的库跟api接口头文件

#ifndef _MAIN_H_
#define _MAIN_H_

#include "ch32v30x.h"

#include "debug.h"
#include "led.h"

#endif

第四步:根据官方代码包修改main.c

#include "main.h"

//WCH沁恒微测试代码01
int main(void)
{
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    SystemCoreClockUpdate();
    Delay_Init();
    LED_Config();
    USART_Printf_Init(115200);	
    printf("SystemClk:%d\r\n", SystemCoreClock);
    printf( "ChipID:%08x\r\n", DBGMCU_GetCHIPID() );
    printf("中文GPIO测试\r\n");

    while(1)
    {
        LED_Toggle();
    }
}

第五步:编译代码(CTRL+B)全部构建

在这里插入图片描述

第六步:配置WCH-Link 下载属性

在这里插入图片描述

解除代码保护

目标模式选择-可以先查询再应用

内存分配选择-可以先查询再应用

Cade Flash 全擦选择:我这里选择重新上电全擦

目标:连接好后自动识别不需要更改

保存关闭后,F8下载。

在这里插入图片描述

最后一步下载验证:

测试代码
在这里插入图片描述

测试日志打印:

在这里插入图片描述

完整测试代码如下:

#include "led.h"


void LED_Config(void)
{
    GPIO_InitTypeDef GPIO_InitStructure = {0};

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
}


void LED_Toggle(void)
{

    GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_RESET);
    Delay_Ms(100);
    printf("灭\r\n");
    GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET);
    Delay_Ms(100);
    printf("亮\r\n");

}

#ifndef  _LED_H_
#define  _LED_H_


#include "ch32v30x.h"

void LED_Config(void);
void LED_Toggle(void);


#endif

参考资料:

产品手册 - 南京沁恒微电子股份有限公司 (wch.cn)

至此基于于沁恒微电子工业级互联型RISC-V MCU CH32V307评估版的使用就完成了,国产芯片是大势所趋,如果大家感兴趣可以点赞关注,下面有时间会更新其他外设的使用方法跟教程。
完整工程可以在后台私信找我领取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/774999.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python自动化办公:docx篇

文章目录 简介官方demo读取并修改已存在的docx参考文献 202201笔记迁移 简介 python的docx包是可以用来自动化处理docx文件,可以从无到有生成一个docx文件,也可以对已有的docx文件做批量修改。(但印象里是只能操作.docx文件,如果…

【电路原理学习笔记】第5章:串联电路:5.2 串联电路的总电阻

第5章:串联电路 5.2 串联电路的总电阻 5.2.1 串联电阻相加 由于每个电阻对电流的阻力与其阻值成正比,因此,当电阻串联时,电阻值要相加串联电阻的数量越多,对电流的阻力就越大,也就意味着更大的电阻。因此…

收入下滑,亏损严重,面临法律诉讼的中驰车福申请纳斯达克IPO上市

来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,来自北京的汽车产业供应链数字化服务商【中驰车福】(Autozi Internet Technology (Global) Ltd)近期已向美国证券交易委员会(SEC)提交招股书&#x…

新建Mybatis流程

删除src目录 pom文件夹下导入依赖 这样的话每次只用改父项目的内容,就不必每次都导包 1.修改这三个文件 2.mybatis-config.xml的配置文件有顺序的规定,properties需要写在最上面。 3.类型别名

Bridging the Gap Between Anchor-based and Anchor-free Detection via ATSS 论文学习

1. 解决了什么问题? Anchor-based 和 anchor-free 方法的本质差异其实是如何定义正负样本,如果训练过程中它们采用相同的正负样本定义,最终的表现是差不多的。也就是说,如何选取正负样本才是最重要的。 以单阶段 anchor-based 方…

C++初探

目录 经典开头 — C的历史 作用域运算符 using的用法 命名空间 - namespace 命名空间的基本使用 特殊的命名空间 - 无名命名空间 全部展开和部分展开 std — C所有的标准库都在std命名空间内 省缺值 - 默认参数 占位参数 内联函数 - inline 函数重载 函数重载的用…

MySQL八股学习过程2行的存储 from 小林coding

MySQL八股学习过程2行的存储 from 小林coding MySQL数据的存放MySQL表结构InnoDB行格式记录的额外信息记录的真实数据 MySQL数据的存放 下面的命令能够查询到MySQL数据库文件的存放位置 SHOW VARIABLES LIKE datadir;一张表的结构会保存在表同名.frm中,数据会保存在表同名.ib…

导轨式 称重传感器 压力应变桥信号处理 隔离变送器

主要特性 DIN11 IPO 压力应变桥信号处理系列隔离放大器是一种将差分输入信号隔离放大、转换成按比例输出的直流信号导轨安装变送模块。产品广泛应用在电力、远程监控、仪器仪表、医疗设备、工业自控等行业。此系列模块内部嵌入了一个高效微功率的电源,向输入端和输…

Kyuubi的介绍优势(官网链接)

官网链接:https://kyuubi.apache.org/ Apache Kyuubi™ 是一个分布式多租户网关,用于在数据仓库和 Lakehouse 上提供无服务器 SQL。 Kyuubi 在各种现代计算框架(例如 Apache Spark、 Flink、 Doris、 Hive和Trino等)之上构建分布…

CMU 15-445 Project #2 - B+Tree(CHECKPOINT #2)

CHECKPOINT #2 一、题目链接二、准备工作三、部分实现1.锁操作操作类型定义安全页面判断加锁操作解锁操作叶子页面查找操作 2.查找操作3.插入操作4.删除操作 四、评测结果 一、题目链接 二、准备工作 见 CMU 15-445 Project #0 - C Primer 中的准备工作。 三、部分实现 1.锁操…

linux安装conda

linux安装conda 卸载conda 在主目录下,使用普通权限安装: ./Anaconda3-2023.03-1-Linux-x86_64.shanaconda的目录是ENTER

139. 单词拆分

139. 单词拆分 原题链接:完成情况:解题思路:参考代码: 原题链接: 139. 单词拆分 https://leetcode.cn/problems/word-break/ 完成情况: 解题思路: dp动态递归去接,算0-n所有范围…

Xshell 7 评估期已过继续免费使用方法

1. 评估期已过的示例 2.解决方法 如果需要继续使用,一是去网上寻找绿色版本的Xshell,但是可能不安全。 二是重新下载一个免费版本,覆盖安装即可。 2.1 官网下载地址:https://www.xshell.com/zh/free-for-home-school/ 2.2下载安…

Pytorch:利用torchvision调用各种网络的预训练模型,完成CIFAR10数据集的各种分类任务

2023.7.19 cifar10百科: [ 数据集 ] CIFAR-10 数据集介绍_cifar10_Horizon Max的博客-CSDN博客 torchvision各种预训练模型的调用方法: pytorch最全预训练模型下载与调用_pytorch预训练模型下载_Jorbol的博客-CSDN博客 CIFAR10数据集下载并转换为图片&am…

gitlab配置公钥

1、打开本地git bash,使用如下命令生成ssh公钥和私钥对 ssh-keygen -t rsa -C yourEmailgitlab.com2、然后打开~/.ssh/id_rsa.pub文件,复制里面的内容 cd ~/.ssh ls cat ./id_rsa.pub3、打开gitlab,找到Profile Settings–>SSH Keys—>Add SSH Key,并把上一…

【多线程】(六)Java并发编程深度解析:常见锁策略、CAS、synchronized原理、线程安全集合类和死锁详解

文章目录 一、常见锁策略1.1 乐观锁和悲观锁1.2 读写锁1.3 重量级锁和轻量级锁1.4 自旋锁1.5 公平锁和非公平锁1.6 可重入锁和不可重入锁 二、CAS2.1 什么是CAS2.2 CAS的实现原理2.3 CAS应用2.4 ABA问题 三、synchronized原理3.1 synchronized锁的特点3.2 加锁工作过程3.3 锁消…

VM(CentOS7安装和Linux连接工具以及换源)

目录 一、Linux意义 二、安装VMWare 三、centos7安装 1、正式安装CentOS7: 2、安装不了的解决方案 2.1常见问题——虚拟机开机就黑屏的完美解决办法 3、查看、设置IP地址 ① 查看ip地址:ip addr 或者 ifconfig, 注意与windows环境的区别…

labelme+sam在windows上使用指南

其实官网讲的很清楚了,这里做一个笔记,方便自己后面直接看。 首先,贴一下官方的链接,作者老哥很强,respect! 使用流程: https://github.com/wkentaro/labelme#installation 资源: ht…

数据库锁机制

锁机制 1. 概述2. 并发事务的不同场景2.1 读-读情况2.2 写-写情况2.3 读-写或写-读情况2.3.1 方案一:读事务使用MVCC(多版本并发控制),写事务加锁2.3.2 方案二:读、写事务均加锁 3. 锁分类3.1 从数据操作类型&#xff…

1.Docker概念

文章目录 Docker概念Docker容器与虚拟机的区别内核中的2个重要技术Linux Namespace的6大类型docker三个重要概念部署Dockeryum安装二进制安装 Docker 概念 docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。docker可以让开发者打包他们的…