随笔分类 - 32位MCU学习
摘要:对于MCU本身来说,当开启硬件流控时,RTS、CTS初始化配置时: RTS建议配置为复用推挽输出,CTS建议配置配置为浮空输入或带上拉输入,如下图 如上图, 对于MCU来说: RTS为输出信号,用于表示MCU串口是否准备好接收数据,若输出信号为低电平,则说明MCU串口可以接收数据,请求发送数据。当接
阅读全文
摘要:CH32X035 运放OPA和比较器CMP的应用 一、关于CH32X035介绍 CH32X035内置USB和PD PHY,20KB RAM,62KB FLASH,支持USB Host主机和USB Device设备功能、USB PD及Type-C快充功能,内置可编程协议I/O控制器,提供了OPA运放、
阅读全文
摘要:1、关于DHT11产品介绍 DHT11是一款数字温湿度传感器,单线制串行接口,信号传输距离可达20米以上。湿度测量范围为20—90%RH,精度为±5%RH;温度测量范围为0-50℃,精度为±2℃。通常应用在湿度调节器、暖通空调、测试及检测设备等应用领域。 2、关于DHT11应用连接 DHT11具有4
阅读全文
摘要:关于CAN采样点介绍: 采样点,是读取总线电平并解释各位的值的一个时间点。采集点位于相位缓冲段1之后,具体位置如下图: CAN通信中,当延迟或干扰较大时,且采样点位置不一样时,就容易产生通信错误,建议各节点的采样点应该设置为一致,尤其在CAN组网应用中。 CAN采样点一般设置在75%—80%之间,具
阅读全文
摘要:关于CAN通信波特率,计算公式如下: 以EVT例程为例,系统主频设置为96MHz,APB1总线时钟2分频,则为48MHz,CAN具体配置如下: 其中: CAN_SJW_1tq是指SYNC_SE段,固定位1Tq; CAN_BS1_6tq是指BS1段,设置为6tq,实际写入TS1[3:0]的值为5 CA
阅读全文
摘要:关于在CH32V307 EVT RT-Thread例程基础上配置修改使用FPU操作流程 CH32V307 EVT下载链接: https://www.wch.cn/downloads/CH32V307EVT_ZIP.html 1、首先需要注意对MRS进行配置,具体配置方式可参考下贴: https://
阅读全文
摘要:目前嵌入式当中OLED常用驱屏方式有两种:SPI或IIC。以速度来讲,SPI速度相较于IIC会快上一些,硬件IIC相较于模拟IIC速度又会快上一些。此外还有模拟SPI的,但该种用法我遇到较少,本文就硬件SPI驱动OLED屏幕做一个简单的刷新率测试。 测试硬件平台:CH32V307VCT6+杜邦线连接
阅读全文
摘要:在MRS开发环境下,针对CH32V系列MCU FLASH分配,具体方法如下:比如开辟一段空间,存放数组等数据,首先在ld文件中修改FLASH分配,如下图: .consumer_flash1 : { . = ALIGN(4); }AT>FLASH1 .consumer_flash2 : { . = A
阅读全文
摘要:SPI与SDIO两种操作方式读写SD卡速度测试 目前嵌入式应用中,若要用到SD卡,一般有两种操作方式可选: 一种是SPI操作SD卡的方式; 一种是SDIO操作SD卡的方式。 一般是SPI操作SD卡方式使用较多,因为一般正常的MCU都带有SPI接口,但SDIO接口一般存在于大容量MCU中,中小容量的M
阅读全文
摘要:该功能需要配合EVT对应例程以及对应WCH-LinkUtility工具使用,WCH-LinkUtility下载链接如下: https://www.wch.cn/downloads/WCH-LinkUtility_ZIP.html 该功能目前仅支持以下型号MCU,如下图,且需要配合WCH-LinkE使
阅读全文
摘要:关于CAN工作模式切换 CH32的CAN有3种工作模式:初始化模式、睡眠模式和正常模式3种模式。只能在初始化模式下修改CAN_BTIMR 的 SILM 和 LBKM位配置来选择一种测试模式,测试模式有3种:静默模式,环回模式,静默环回模式。若要切换工作模式,需要对寄存器CAN_CTLR 中的 SLE
阅读全文
摘要:1、关于串口波特率的计算 波特率计算公式如下: TX/RX波特率=FCLK/(16*USARTDIV) USARTDIV=DIV_Mantissa+(DIVFraction/16) 以USART1波特率115200为例,FCLK为72M,则USARTDIV值为39.0625,即 39.0625=DI
阅读全文
摘要:目前使用片选方式时,一般使用软件方式,通过操作GPIO拉高或拉低。 片选信号线处于空闲时应保持高电平,且在需要进行数据传输时,应能够被SPI主机片选引脚拉低。 当使用硬件方式时,除了需要在结构体中配置为硬件模式,还应将片选引脚配置为复用推挽模式,并调用SPI_SSOutputCmd函数,开启对应SP
阅读全文
摘要:1、关于硬件IIC卡死在EV5事件解决方法 主机使用I2C_GenerateSTART()函数发送START条件后,主机必须等待事件5(启动条件已在I2C总线上正确释放),关于事件5,主要是对是否发送起始位(STAR1寄存器位0)、主从模式以及总线是忙还是空闲(STAR2寄存器位0、位1)进行判断,
阅读全文
摘要:1、关于SysTick CH32F103/203: CH32F103 /203 SysTick和STM32F103一样为Cortex-M3内核,是一个24位的向下递减计数器,计数器每计数一次的时间为1/SYSCLK(系统主频)。当SysTick重装载数寄存器的值递减到0的时候,产生一次中断。 CH3
阅读全文
摘要:__attribute__配合使用参数介绍 1、aligned 指定对象的对齐格式(以字节为单位),如: struct S { short b[3]; } __attribute__ ((aligned (8))); typedef int int32_t __attribute__ ((align
阅读全文
摘要:1、关于DACCH32V307的数字/模拟转换模块(DAC),包含 2 个可配置 8/12 位数字输入转换 2 路模拟电压输出的转换器。内置三角波、噪声波形发生器,支持多种事件触发转换,DMA 功能等。 2、关于DAC DMA使用关于DMA功能,手册介绍如下: 即使用DAC DMA的时候,必须使用定
阅读全文
摘要:第一种情况:将数组或某一函数单独放在FLASH某个位置,具体配置如下图。 .text1 : { . = ALIGN(4); *(.text1) *(.text1.*) . = ALIGN(4); } >FLASH1 AT>FLASH1 __attribute__((section(".text1")
阅读全文
摘要:关于使用定时器计算外部脉冲的方式,除却使用输入捕获方式之外,还可以使用定时器的ETR计数方式。如下图,首先关于定时器的时钟输入来源,可以分为4类,如下图: 当使用选择外部时钟源模式2时,可在外部时钟输入引脚的每一个上升沿或者下降沿计数,如下图介绍: 关于使用ETR计数功能的初始化配置程序,具体如下:
阅读全文
摘要:修改ld文件,如下图: . = ORIGIN(RAM) + 0x100; *(.TEST) 将变量加入__attribute__((section(".TEST")))声明,如下图 编译后的效果如图所示
阅读全文