人生似水岂无涯,浮云吹作雪,世味煮成茶...

CH32V003F4P6开发板上手笔记

2022年11月11日 15:32    0 人评论    693 人阅读

概述

CH32V003 系列是基于青稞 RISC-V2A 内核设计的工业级通用微控制器,支持 48MHz 系统主频,具有宽压、单线调试、低功耗、超小封装等特点。CH32V003 系列内置 1 组 DMA 控制器、1 组 10 位模数转换 ADC、1 组运放比较器、多组定时器以及标准通讯接口 USART、IIC、SPI 等。

avatar

产品特点

青稞32位RISC-V2A处理器,支持2级中断嵌套
最高48MHz系统主频
2KB SRAM,16KB Flash
供电电压:3.3/5V
多种低功耗模式:睡眠、待机
上/下电复位、可编程电压检测器
1组1路通用DMA控制器
1组运放比较器
1组10位ADC
1个16位高级定时器和1个16位通用定时器
2个看门狗定时器和1个32位系统时基定时器
1个USART接口、1组IIC接口、1组SPI接口
18个I/O口,映像一个外部中断
64位芯片唯一ID
串行单线调试接口
封装形式:TSSOP20、QFN20、SOP16、SOP8

准备工作

准备硬件

1、CH32V003EVT 开发板

avatar

CH32V003EVT 开发板的资源如下:

(1)主控 MCU :CH32V003F4P6

(2)MCU I/O 口 : 主控 MCU 的 I/O 引出接口

(3)电源开关 S2 :用于切断或连接外部 5V 供电或 USB 供电

(4)USB 接口:只供电,不具 USB 功能

(5)按键 S1 :复位按键,用于外部手动复位主 MCU,需配置用户选择字寄存器的 RST_MODE 位为 非 11b,开启复位功能。

(6)LED 通过 LED 排针(P4)连接主芯片 IO 口

(7)DEBUG 接口: 用于下载、仿真调试,为单线通信,仅需 SWDIO 连接 PD1

(8)PA1 和 PA2 作为晶振引脚使用,故 R4、R5 电阻默认没有焊接,P1 排针引出 PA1 和 PA2 引脚功 能不能使用,如需将 PA1 和 PA2 引脚作为普通 IO 使用,需自行焊接,同时需将 Y1、C7、C8 去掉。

2、WCH-Link仿真调试器

WCH-Link模块可用于沁恒RISC-V架构MCU在线调试和下载,也可用于带有SWD接口的ARM 内核MCU的在线调试和下载。同时带有1路串口,方便调试输出。

avatar

准备软件资料

1、下载产品手册:CH32V003DS0.PDFCH32V003RM.PDF

2、下载CH32V003评估板说明及参考应用例程:CH32V003EVT.ZIP

avatar

PUB 文件夹:提供了评估板说明书、评估板原理图。

EXAM 文件夹:提供了 CH32V00x 控制器的软件开发驱动及相应示例,按外设分类。每类外设文件夹 内包含了一个或多个功能应用例程文件夹。

3、下载集成开发环境(IDE):MounRiver Studio(MRS)

下载后解压,双击 MounRiver_Studio_Setup_V182.exe(目前版本是V182)文件进行安装即可。

运行测试例程

这里以GPIO示例为例记录编译烧录的过程。

1、打开工程

双击 EVT\EXAM\GPIO\GPIO_Toggle目录下的 GPIO_Toggle.wvproj 工程文件,打开示例工程。

2、编译

通过工具栏按钮编译或按 Shift + F7 进行编译,编译正常会显示:

14:20:23 **** Build of configuration obj for project GPIO_Toggle ****
make -j16 all 
   text	   data	    bss	    dec	    hex	filename
   3404	     40	    264	   3708	    e7c	GPIO_Toggle.elf

14:20:25 Build Finished. 0 errors, 0 warnings. (took 1s.479ms)

在 EVT\EXAM\GPIO\GPIO_Toggle\obj 目录下可以看到生成的 GPIO_Toggle.hex 文件。

3、烧录

1)首先进行烧录配置

打开IDE菜单 Flash -> Config,Operations选择第 3 项(为解除芯片读保护),Target Mode项中点击Query,可以看到识别出来了 WCH-LinkRV烧录器,其他选项默认:

avatar

2)接线

下载、仿真调试,为单线通信,仅需 SWDIO 连接 PD1,开发板和 WCH-Link之间的接线如下:

PD1 -> SWDIO
GND -> GND
VCC -> 3V3

3)下载

点击工具栏 Flash -> Download 或者按 F8 或进行烧录固件, 烧录固件过程无错误输出信息如下:

------------ Begin flash process of "obj\GPIO_Toggle.hex" ------------ 
14:24:44:231 >> Current project vendor is WCH, debugger is WCH-Link

14:24:44:231 >> Attempt to open device and upgrade firmware if necessary...
14:24:44:233 >> WCH-Link no need to upgrade. Already the latest version.

14:24:44:261 >> Starting to Send Chip Type...
14:24:44:322 >> Send Chip Type Success

14:24:44:323 >> Starting to Check Read-Protect Status...
14:24:44:323 >> Read-Protect Status Currently Disabled

14:24:44:323 >> Starting to Erase All...
14:24:44:330 >> Erase All Success

14:24:44:391 >> Starting to Download & Verify...
14:24:44:820 >> Download & Verify Success

14:24:44:820 >> Starting to Reset...
14:24:44:836 >> Reset Success

14:24:44:836 >> Starting to Close Link...
14:24:44:836 >> Close Link Success
---------------------------------End ---------------------------------
Operation Finished (took 0s.606ms)

4、上电测试

先看看 main.c 文件,里面的 main 函数中每执行一次while循环,延时250ms 后改变 PD0 的输出状态:

int main(void)
{
    u8 i = 0;

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    Delay_Init();
    USART_Printf_Init(115200);
    printf("SystemClk:%d\r\n", SystemCoreClock);

    printf("GPIO Toggle TEST\r\n");
    GPIO_Toggle_INIT();

    while(1)
    {
        Delay_Ms(250);
        GPIO_WriteBit(GPIOD, GPIO_Pin_0, (i == 0) ? (i = Bit_SET) : (i = Bit_RESET));
    }
}

可以通过排线将开发板上的 PD0 和 LED1 连接起来,重新上电(USB 接口供电),就可以看到LED1 灯闪烁了。


如果文章对您有所帮助, 请随意打赏! 您的支持将鼓励我写出更好的文章!

发表评论 已发布 0