自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

转载 内部HSI实时校准实现思路

为补偿应用中的温度影响,用户可使用运行时校准程序,进一步微调 CH32VF系列微控制器的振荡器的输出频率,提高 HSI 的频率精度,这对UART/USB/CAN等异步通信是至关重要的。程序中配置RCT使之以512HZ的频率运行,同时配置定时器的计数频率为2048HZ(配置如此,但是时钟源为HSI)。等待RTC计数器的值增加512后同时读出定时器的计数器的增加的数值(不想死等可以开启RCT闹钟中断中处理),将此值与512对比既可计算偏差,从而计算出应该微调进RCC_CTLR寄存器中的HSITRIM的数值。

2023-12-25 15:11:44 192

转载 USBFS—关于CH32系列USBFS的上传和接收机制

当在第1步之后、第3步之前被高优先级中断打断时,如果那个高优先级的中断里也对value操作,无论怎么修改,退出后,返回这里,t0依然是进入中断前的t0值,也就是高优先级中断里的操作只修改了value,但是没有办法修改t0,所以执行第三步的时候,高优先级中断里的修改就相当于没有起作用。OUT完成中断,初始化的时候,设置的ACK,所以OUT数据来时,会进入OUT完成中断,翻转toggle,读取数据,然后还可以控制是否NAK,一般默认保持ACK。配置了端点使能,设置DMA地址,长度、控制寄存器。

2023-12-25 15:07:46 369

转载 CH32V20x_30x系列用户选择字区域应用与操作

注意剩余空间在使用时,和上述一致,若[7:0]为数据,则[15:8]为数据的反码。此外,在对剩余空间进行操作时,需要将用户选择字信息结构部分的内容保存重新写入。CH32V20x系列、V30x系列用户选择字区域大小为128字节,除却用户选择字信息结构用到的16字节,还剩余112字节可作为他用,用来存储相关数据等。注意该操作需要对FLASH进行解锁。

2023-11-17 15:07:41 148

转载 关于CH32V系列MCU FLASH地址的分配

其次,在程序中使用分配好的FLASH1和FLASH2,如下图,将两个数组分别放到FLASH1区域和FLASH2区域。然后打印查看对应的地址和数据,发现没有问题,说明操作成功。最后可通过编译器查看分配空间是否合理,如下,分配合理。

2023-10-25 10:15:52 207 1

转载 CH32--用芯片的UID给固件加密

说明:至于1中的实现方式可以通过编写一个上位机来自动生成密钥并保存到芯片存储介质中,至于算法肯定是越复杂越好,同时至于密钥的存储区未使用的部分最好都填充完,以免被解密者利用。程序开头读取芯片的UID-----采用同样的加密算法对UID进行运算-----读取保存的数据-----一致则执行用户代码,不一致则清楚固件。获取芯片UID-----自定义加密算法-----生成加密数据(密钥)-----保存到芯片内部/外部存储芯片中。简易加密方案,虽然简易,不过对于一般的小型产品还是能够在一定程度上起到保密效果的。

2023-10-24 15:51:36 342

转载 ADC多通道转换的时候数据错位的解决方法

对于两种情况因为ADC时循环转换的,采样结束后虽然都没有再次触发ADC,但是实际上ADC仍然在转换,当处理完数据后再次启动采样的时候这个时候的ADC数据具体对于哪一个通道其实是随机的,但是程序还是会把缓存中的数据取出来,这样数据就错位了。关闭ADC,这样在下次启动ADC的时候数据就是对齐通道的了。在测试ADC 采集两路及以上ADC的信号时,几路轮流采样,打印数据的时候发现数据错位。笔者的配置是:ADC循环转换,DMA单次传输(传输指定的数据量,触发中断会就不再启动DMA传输了)。启动ADC的DMA传输。

2023-10-24 15:46:07 813

转载 ADC按键电路实现

在程序设计以及硬件电路设计中,通常使用GPIO连接按键,通过检测外部按键按下的高低电平实现按键的检测。当我们需要多个按键且GPIO资源不够的时候,我们可以利用MCU的ADC功能,实现对按键的检测。当没有按键按下时,ADC检测IO口电压为3.3V。

2023-10-24 15:37:14 933

转载 CH32X035 模拟IIC驱动EEPROM

在CH32X035的GPIO模式配置选项中,并没有开漏输出的配置模式,如下图。在使用GPIO模拟IIC时,可在初始化时将其配置成推挽输出模式,在需要时切换对应的输入输出模式,以下是CH32X035 GPIO模拟IIC的实现例程。

2023-10-24 09:52:19 244

转载 CH643-RGB驱动方案介绍

相较于传统的SPI或者PWM驱动芯片灯珠,PIOC无需占用CPU资源,只需加载RAM数据就可完成灯效数据的发送。驱灯数量取决于灯带灯珠数量,每个灯珠自带芯片,CH643通过PIOC单线控制,驱灯数量理论可达1000+CH643芯片直接IO驱动普通共阴灯珠,无需外部MOS,外围精简,驱动总电流在250mA左右。1、全内置方案IO驱动,IO直驱普通灯珠,无需MOS,性价比高;硬件设计时,不使用的SEG引脚可以作为IO使用,可灵活设计。2、外置PMOS方案驱动普通灯珠,电流更大,性能更强;

2023-10-19 17:30:18 110

转载 启动文件—RISC-V通用MCU启动文件解释

weak是弱声明,此处把所有的中断函数都写了死循环,1: j 1b的意思就是死循环,如果在其它.c文件中有声明则以.c中的函数内容为准,这就是weak的作用,把.c中没有声明的函数都写为死循环。_data_lma是变量初始数据存在FLASH中的地址,_data_vma是变量在代码运行过程中RAM的编译地址,_edata是RAM中的data段的结束地址,这三个都是从ld文件中得到的。_sbss是bss的起始地址,_ebss是结束地址,都是RAM的地址。data段的特点是1:静态变量,2:非0,有数据。

2023-10-12 11:21:48 416

转载 TIM-有感BLDC转速解析

由上图可得,当这6个状态监测完成的时候,相当于转子旋转了90°的机械角度,此时旋转磁场转过90°,且电流仅变化了一次。故同理可得,当电机旋转完一圈时,电机会监测出4*6=24个霍尔状态,即电流发生了4次变化。假设电机为4对极电机,且霍尔传感器120°分布。由:电机4对极,即由4*6=24个霍尔状态,电机转动一圈会产生24个霍尔状态,发生24次换相。50ms内霍尔中断进入了24次,即电机转了360°,转速即为1200r/min。当霍尔信号每变化一次的时候,就会产生一次霍尔触发中断,也就是我们常说的换相。

2023-10-12 11:18:05 515

转载 MRS_关于HardFault问题查找思路

MCAUSE:反映当前的异常种类或中断的编号,mcause[31]=1 表示为中断,mcause[31]=0 表示为异常。本文仅分析mcause[31]=0的情况。表一异常编码MEPC:机器模式异常指针寄存器,标准定义退出异常或中断后微处理器的返回地址保存在MEPC中。所以当发生异常或中断后,硬件自动更新MEPC 值为当前遇到异常时的指令PC 值,或中断前下一条预执行的指令PC值。

2023-09-26 11:24:31 152

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除