随笔分类 - 外设应用相关
摘要:使用208的MCU,当用到LSI作为Tmos的时基,受温度频偏影响较大,为了增强系统稳定性,蓝牙的库里内置了一套温度校准算法,需要用到ADC模块进行温度采样, 这样之后就会导致客户应用层ADC的采样中断,要是单次采样还可以重新配置,当是循环采样的时候,即会发生ADC模块的卡死。 【TEMPERATI
阅读全文
摘要:flash由于其有掉电保存的特性,常用于保存重要数据,本章介绍常见注意事项以及常见问题。 一,注意事项: 1,V20X,30X 在flash操作时需要注意主频别超过120M,如必须跑144M,可以在操作flash前降频处理 (代码:RCC->CFGR0 |= (uint32_t)RCC_HPRE_D
阅读全文
摘要:1.关于Systick CH32F103/203:CH32F103 /203 SysTick 和STM32F103 一样为Cortex-M3 内核,是一个24 位的向下递减计数器,计数器每计数一次的时间为1/SYSCLK(系统主频)。 CH32V10x_20x_30x&&CH32V00x&&
阅读全文
摘要:UART中的硬件流控RTS与CTS 1.RTS (Require ToSend,发送请求)为输出信号,用于指示本设备准备好可接收数据,低电平有效,低电平说明本设备可以接收数据。 2.CTS (Clear ToSend,发送允许)为输入信号,用于判断是否可以向对方发送数据,低电平有效,低电平说明本设备
阅读全文
摘要:本篇文章基于EVT中键鼠复合设备例程,分析设备唤醒主机流程原理等。 相关远程唤醒基础知识可参考USB中文网:https://www.usbzh.com/article/detail-189.html 下面介绍我们CH32单片机端的实现流程。 1、配置描述符的bmAttributres字节必须配置远程
阅读全文
摘要:因为IIC的线与结构,只要总线上任何一个器件拉低了SDA或者SCL,其他器件都无法拉高它们,看到的都是低电平。如果有器件不释放总线,则整个总线上的通讯都会被暂停,I2C总线挂死。 I2C主机一般是可编程的器件,受我们控制,如果主机主动拉低了总线,我们可以通过调试代码了解原因,也可以很方便的通过复位I
阅读全文
摘要:定时器捕获单个通道 在第一次捕获到上升沿的时候,记录下当前的计数值TIM2_IC2_ReadValue1,然后将触发变为下降沿触发。 紧接着捕获到了下降沿的时候,此刻的时间和上一次的时间之差应该为TIM2_IC2_ReadValue2 = TIM2_IC2_OverCnt * 65535 + TIM
阅读全文
摘要:经常会有客户遇到CAN例程测不起来的情况,现总结一下常见问题 问题一:串口打印send Failed 可能原因: 1,波特率不对:按照例程默认参数,经计算是96M/2/12/(1+5+6)=333K,而一般CAN设备不支持该波特率,而250K是很常用的 波特率,且大多设备都支持,所以例程可以改成25
阅读全文
摘要:一般应用中,定时器可输出4路占空比独立可调的PWM,然而4路输出的频率是一致的;但在一些特殊情况下,需要使用一个定时器输出不同频率的PWM,该如何实现呢? 原理分析 定时器三个重要参数:预分频值psc,重装载值arr,比较值ccp; 一般情况下,预分频值决定了定时器的计数频率,重装载值则确定了一个P
阅读全文
摘要:CH32系列某些小封装芯片可能会存在合封引脚,如下图。以下图8脚为例,为PD4、PD5、PD1的合封引脚,其中PD1引脚还作为SWIO下载引脚。若要使用PD4引脚作为普通IO输出高低电平,注意在进行程序配置时需要注意:(1)PD4引脚按照GPIO输出配置;(2)合封引脚PD5和PD1要配置为浮空输入
阅读全文
摘要:在很多PWM驱动项目中,通常需要设置PWM的空闲电平,而有时PWM的空闲电平又不尽人意,可能是随机的 本文主要介绍设置PWM空闲电平的方法(推荐第三种!) 方法1: 设置占空比为0xfff 或0 后即可得到想要的0或1输出。 这样空闲时就是输出占空比百分百的PWM,相当于空闲时为高电平。像上图配置的
阅读全文
摘要:工程中经常用到了STM32的闹钟中断,去唤醒停机或者待机模式下的系统,但是RTC闹钟中断与RTC秒中断一样,是RTC外设的中断,看唤醒条件: 都是外部事件,所以是需要开启EXTI映射功能,停止模式用事件中断都可以唤醒,而待机只能用事件唤醒。 一、配置 1.停止模式下配置。 RCC_APB1Perip
阅读全文
摘要:1 CAN发送邮箱 CH32共有三个CAN发送邮箱,在检测到总线空闲时交发送,但需要注意的是,有可能会发送失败,有可能因为仲裁失败从而导致失败,也有可能是其它错误,原则上bxCAN将自动重发,但bxCAN也可以配置不自动重发。正因为如此,发送邮箱中有可能同时存在多个需要发送的报文,一旦出现这种情况,
阅读全文
摘要:1、关于SysTick CH32F103/203: CH32F103/203为Cortex-M3内核,SysTick是一个24位的向下递减计数器,计数器每计数一次的时间可配置为1/时基。当SysTick重装载数寄存器的值递减到0的时候,产生一次中断。CH32F系列MCU SysTick由4个寄存器控
阅读全文
摘要:OPA轨对轨解析 运放轨对轨详细解析 通用解析:我们常说的所谓轨对轨(rail-to-rail)运算放大器,指的是放大器的输入和输出电压的摆幅非常接近或几乎等于电源电压值。更通俗一点解释就是指-放大器的输入输出电压范围可以达到电源电压。 本质解析:轨对轨(rail-to-rail)运算放大器其本质就
阅读全文
摘要:AWU CH32V00x CH32X03x 自动唤醒 事件唤醒 中断唤醒
阅读全文
摘要:1、关于AWU的介绍 AWU 模块可以实现无需外部中断的情况下自动唤醒。通过对时间基数进行编程,可周期性地从停止或待机模式下唤醒。 AWU是一个6位的自加型计数器,关于其时钟源的选择如下: CH32X035可选择内部高速时钟 HSI 的 47KHz 分频时钟作为 AWU 模块时钟源,可以在低功耗模式
阅读全文
摘要:目录批量读数据 Bulk Read批量写数据 Bulk Write批量读数据和批量写数据抓包分析批量读数据批量写数据 以CH32V307为例,EVT中的SimulateCDC为USB模拟一个CDC串口的例程; 从端点描述符可以得知,USB设备是通过端点2与主机进行数据的收发,传输方式为批量传输; 其
阅读全文