随笔分类 - CH32x芯片使用小技巧
介绍一些基于CH32x芯片的使用小技巧,例如CH32x芯片跟同类型芯片的一些资源横向对比、遇到一些常见问题的应对方法等
摘要:一 . 复位源汇总:控制器提供了3 种复位形式:电源复位、系统复位和后备区域复位。 电源复位 分为上电/掉电复位(POR/PDR复位)与 从待机模式下唤醒复位。 系统复位 NRST 引脚上的低电平信号(外部复位)窗口看门狗计数终止(WWDG 复位)独立看门狗计数终止(IWDG 复位)软件复位(SW
阅读全文
摘要:1,找到该路径下这两个文件 >复制到工程的obj文件夹下 2,cd进入到你的工程obj文件夹下,并查看是否具有第一步中的两个文件 3,执行下载命令, openocd.exe -f wch-riscv.cfg -c init -c halt -c "flash write_image 667.hex"
阅读全文
摘要:一般应用中,定时器可输出4路占空比独立可调的PWM,然而4路输出的频率是一致的;但在一些特殊情况下,需要使用一个定时器输出不同频率的PWM,该如何实现呢? 原理分析 定时器三个重要参数:预分频值psc,重装载值arr,比较值ccp; 一般情况下,预分频值决定了定时器的计数频率,重装载值则确定了一个P
阅读全文
摘要:以CH32V307为例,配置方法如下: 关于给定义的变量赋值,注意要通过FLASH编程操作写入,将值写入FLASH该位置。完成后可直接通过读取该变量获取该值。如下图: 配置代码如下: /********************************** (C) COPYRIGHT ********
阅读全文
摘要:一,首先看下例程的跳转方式,及其繁琐,在跳转前需要关所有用到的外设时钟,这样做原因也很好理解, 就是因为IAP里打开的外设时钟,APP里可能不需要,且跳转过程是不断电的,所以APP里也会保留IAP里 的配置,这样可能会增加芯片功耗,还有一些外设有特殊要求,如USB(见下下图),如果APP中也用到 了
阅读全文
摘要:根据手册,CH32V307采用青稞V4F内核,硬件除法速度明显快于V203。本文主要介绍怎么开启硬件除法加速,并测试其功能! 一,我们先测试30X不做任何处理的速度,查看汇编手册,找到除法指令,编写汇编指令 这里写了一百个同样的指令,主要想彻底减小无关语句造成的影响(查看上面汇编指令,rs2是除数,
阅读全文
摘要:人工智能发展很长时间,但可供国人用的不多,大部分国外的都需要FQ才能使用。本篇文章亦在分享一个国产的强大AI帮手,并分享如何使用它,且目前都是免费的。 一,安装VSCode 这个微软商店搜索下载安装即可 二,(英文好的或者习惯英文的忽略此步骤)安装VSCode的中文插件 商场搜索Chinese即可
阅读全文
摘要:前言:传统IAP升级都是实现了APP的整体升级,如果APP过大,就会导致升级速度过慢,升级过程中出错概率就会增加,特别适用于一些没有很高速度的 接口,但仍想实现IAP升级的客户,或者APP需要频繁升级的场合。 以307的IAP例程为例 一,修改IAP工程中的flash编程起始地址,此地址就是存这个函
阅读全文
摘要:需求:一般情况下,芯片进入待机模式,芯片引脚进入浮空态。客户希望芯片进入待机模式,维持之前的配置。 解决方法:第一步:打开AFIO时钟 第二步:根据需要保持电平的引脚,操作AFIO->EXTICR[x]AFIO-> EXTICR[1]=0;//PA3第三步:操作EXTI->EVENREXTI->EV
阅读全文
摘要:硬件乘除标准库-IQmath库-非硬件乘除的使用以下以CH32V203为测试芯片进行测试:非硬件乘除的使用MRS关闭硬件乘除法第一步:取消勾选Use wchprintfloat(-lprintfloat)取消勾选Use iqmath(-llQmath_RV32)第二步:取消勾选Multiply ex
阅读全文
摘要:如何获取芯片开发资料 方法一:按型号选择 我们更推荐采用按型号选择的方法,获取所对应型号芯片的开发资料,这能有效降低错误使用资料的风险! 沁恒官网首页的产品中心,点击青稞 RISC-V 通用系列,可跳转至 CH32V 系列单片机的产品选型表。 以 CH32V203C8T6 为例,点击红色方框中的芯片
阅读全文
摘要:本篇文章介绍如何使用CH32来实现USB虚拟串口打印功能,代替传统中的串口打印。 相比传统串口优势点: 1,速度快,一包大概也就几十us,而传统的大概要用到几ms。 2,节省了一个USB转串口芯片的成本。 3,在没有USB转串口工具的情况下,可以很方便调试。 下面就介绍怎么配置 USB-FS口 一,
阅读全文
摘要:本篇文章针对V系列芯片介绍从RAM中启动代码的方法,以及一些常见操作注意事项! (精 髓 是 最 后 的 代 码) 操作流程: (1)需要配置BOOT为RAM启动(BOOT0接VCC,BOOT1接VCC)(2)需要修改ld文件,使得编译器编译的代码位置为RAM,如下图,修改了FLASH的起始地址 (
阅读全文
摘要:下图为CH32V305/307和CH32F205/207时钟树框图,在此,以CH32V307VCT6芯片,外置25MHz晶振为例,简述图中PREDIV与PLLMUL的配置方法,最终实现144MHz系统主频。 外置晶振信号可直接输入PREDIV1与PLLMUL,也可先通过PREDIV2与PLL2MUL
阅读全文
摘要:本文主要介绍怎么利用UID进行固件加密! 一,CH32系列每个芯片都有唯一的身份标识: 二,读取方式: 以8/16/32位进行读访问下面地址都是可以的 三,利用UID加密 所谓:"道高一尺魔高一丈",只有不断的更新加密技术以增加解密成本或许在一定程度上能够遏制不正规解密行为在,下面就先介绍一下UID
阅读全文
摘要:在ram和flash资源足够的芯片中,我们通常通过跑操作系统来实现多任务,但此方法有个弊端,那就是对ram要求高,那么对于比如003这种只有2K ram的小容量芯片可能就不太够用了。 这时就需要裸机来实现多任务了,通常有两种方法如下: 在裸机中,通常都是在一个 while 循环中,通过判断相应的标志
阅读全文
摘要:本文主要实现将FLASH中的代码搬运到RAM运行 我们的CH32V2/3系列MCU有几十K,几百K的非零等待FLASH,遇到FLASH不够用的情况实在可惜。主要以V307举例,针对零等待FLASH不够用的情况。 典型应用: 1.IAP占用了几K空间,搬到RAM后,可以让IAP所占零等待FLASH大幅
阅读全文
摘要:实现思路:使用结构体的位定义,再用指针赋值 代码:typedef struct{ u32 bit0:1; u32 bit1:1; u32 bit2:1; u32 bit3:1; u32 bit4:1; u32 bit5:1; u32 bit6:1; u32 bit7:1; u32 bit8:1; u
阅读全文
摘要:CH32Fx 系列芯片是基于 Cortex-M3 内核设计的微控制器,所以与大部分 ARM 工具和软件兼容。 此外,其外设和硬件设计兼容市场上一些主流微控制器,并在性能和功能上有所增强, 方便用户快速导入,保持操作一致的基础上实现功能丰富化。下表列出了对比其他同级产品的功能异同(CL 版本:同类型产
阅读全文