沁恒CH32V307EVT-R1开发板使用说明

 

首先下载官方的资料:CH32V307EVT.ZIP - 南京沁恒微电子股份有限公司

解压后CH32V307EVT\EVT\EXAM里的就是官方的示例代码,CH32V307EVT\EVT\PUB下面的是文档

CH32V307EVT/EVT/PUB/CH32V30x评估板说明书.pdf:是各个开发板的介绍

CH32V307EVT/EVT/PUB/CH32V30xSCH.pdf:是开发板的原理图

里面有很多板子的原理图,CH32V307EVT-R1的看这个原理图就行

 

WCH-LinkE:

板子上已经自带了CH32V305的芯片,可以当成WCH-LinkE烧录工具,只需要将USB线连接在CH32V305那端,安装IDE后会自动安装驱动,然后就会识别出WCH-LinkE

LinkE的左上角那排双排排针,左边的RX1,TX1,DIO,CLK连接的是CH32V307,而右边的TX0,RX0,DIO0,CLK0连接的是CH32V305。

板子默认上面有4个跳帽,连接RX1-TX0,TX1-RX0,DIO-DIO0,CLK-CLK0,也就是说LinkE连电脑后,就可以对CH32V307编程了,当然,也可以把跳帽去掉,把它当成一个独立的WCH-LinkE来用。

 

官方开发工具:

下载官方IDE最新版即可:MounRiver Studio

下载完安装,会自当安装驱动,烧录工具等

打开IDE,打开工程,选择刚刚下载的文档里的例子,CH32V307EVT\EVT\EXAM,这里以GPIO为例

 然后点编译,下载即可

按Shift+F8可以打开烧录配置界面,修改具体的烧录细节,例如修改Flash+Ram的分配比例,烧录的目标文件等

下载完开始运行,会发现板子上的LED并不会闪烁,没错,看原理图,板子上的两颗用户LED并没有连接到任何GPIO引脚,而是悬空着的,需要我们手动连接下

这个GPIO例子里是切换开关PA0,那只需要用一个线连接PA0跟板子上的LED1,然后就会看到LED闪烁了

 

Arduino:

官方有在github上维护一个Arduino版本:openwch/arduino_core_ch32: Core library for CH32duino

只需要在Arduino的首选项里添加开发板路径:https://github.com/openwch/board_manager_files/raw/main/package_ch32v_index.json

然后在开发板里搜WCH,就能看到,下载,网络不好可能会下很久

安装完后,选CH32V30X的开发板

然后写个例子,编译后烧录就可以开始运行了。

Aruduino没有地方可以修改Flash+Ram分配比例的,可以通过WCH-LinkUtility修改,修改完会保存到芯片里,下次就不用在修改了,在Arduino烧录的时候也会自动识别。

注意,同样需要先装WCH-Link驱动,点烧录的时候才能识别到板子

复制代码
#define LED_BUILTIN PA0
// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(115200);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  // turn the LED on (HIGH is the voltage level)
  Serial.println("ON");
  delay(100);                      // wait for a second
  digitalWrite(LED_BUILTIN, LOW);   // turn the LED off by making the voltage LOW
  Serial.println("OFF");
  delay(1000);                      // wait for a second
}
复制代码

Arduino有一点需要注意,现在的版本不是所有引脚都能识别的,测试了下,官方貌似只增加了板子上的Arduino兼容引脚支持(红框部分),可能需要自己去拓展其他引脚

比如PB8就行,PB7就不行

 

RT-Thread:

没啥好说的,就是这个默认的烧录工具不知道为何总是烧录失败,编译后用WCH-LinkUtility烧录即可。

D:\RT-ThreadStudio\workspace\CH32V307\Debug\rtthread.bin

 

MicroPython:

CH32V307有4种Flash+Ram分配模式,要运行mpy,至少需要96K RAM

要使用mpy有两种方法

一种是用网友移植的(完成度较低)

另一种是用RT-Thread里带的(需要Flash大于256K,RAM大于96K。调整上面的4中分配模式,要么Flash空间不足无法烧录,要么RAM太低无法正常运行)

这里说下网友移植的,参考:【沁恒微CH32V307评估板试用体验】C语言开发太南了?那就试试micropython@CH32V307吧 - RISC-V MCU技术社区 - 电子技术论坛 - 广受欢迎的专业电子论坛!

github地址:r4d10n/micropython-wch-ch32v307: MicroPython for WCH CH32V307

这里推荐直接在github的CodeSpace里编译就行,不用拉到本地,省事点。

1.下载WCH的开发工具:MRS_Toolchain_Linux_x64_V1.92.1.tar.xz

➜ /opt/wch $ wget http://file-oss.mounriver.com/tools/MRS_Toolchain_Linux_x64_V1.92.1.tar.xz
➜ /opt/wch $ tar -xvf MRS_Toolchain_Linux_x64_V1.92.1.tar.xz

2.在Makefile里修改工具的地址为上面解压后的目录:

$ nano /workspaces/micropython-wch-ch32v307/ports/wch/Makefile
# 把下面这2个地址修改为上面解压后的地址
TOOLCHAIN_ROOT = /opt/wch/MRS_Toolchain_Linux_x64_V1.92.1/RISC-V_Embedded_GCC/bin/
OPENOCD_ROOT   = /opt/wch/MRS_Toolchain_Linux_x64_V1.92.1/OpenOCD/bin/

3.编译:

$ cd ports/wch
$ make -j`nproc`

编译完成后,会在build目录下生成一个elf文件

➜ .../micropython-wch-ch32v307/ports/wch/build (master) $ ls
CH32V307EVT.elf 

这个文件我们还无法直接烧录到开发板,因为开发工具的烧录目标都是.hex或.bin的,这里还需要用riscv-none-embed-objcopy转换一下:

➜ .../micropython-wch-ch32v307/ports/wch/build (master) $ /opt/wch/MRS_Toolchain_Linux_x64_V1.92.1/RISC-V_Embedded_GCC/bin/riscv-n
one-embed-objcopy -O ihex CH32V307EVT.elf CH32V307EVT.hex

4.烧录:

将上面生成的CH32V307EVT.hex下载下来,并用WCH-LinkUtility烧录

 5.随便打开一个串口工具或mpy开发工具,这里以VSCode里的RT-Thread MicroPython插件为例,写入以下代码并运行:

复制代码
import time
from machine import Pin

pa0 = Pin(Pin.board.PA0, Pin.OUT)

while True:
    pa0.on() # 关灯
    time.sleep(1)
    pa0.off() # 开灯
    time.sleep(1)
复制代码

 

posted @ 2025-02-15 13:45  JeasonBoy  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示