
因为STM32F103的高级定时器重复计数寄存器(RCR)的有效位只有8位,而我需要输出超过256个PWM脉冲,且保证每个脉冲之间必须连续。我目前设想的实现方案为:假设我需要输出260个脉冲 1、关闭单脉冲模式,将RCR寄存器写入最高值255,软件引发一次更新事件,使RCR的值生效,然后清除标志位并打开更新中断。 2、将RCR的值设置为4,RCR的值只有在下一次更新事件后生效。使能计数器,计数器在输出256个脉冲后更新并进入更新中断 3、在2的更新后RCR的新值(4)生效,在更新中断中开启单脉冲模式,使计数器在输出4个脉冲后停止计数。 但现在的问题是,通过逻辑分析仪分析,最终输出的脉冲数量仍为256,通过debug查看,程序运行后RCR计数器已被设置为4,单脉冲模式被置位,计数器失能。也就是说,最后4个脉冲还没开始输出计数器就已经失能了。因此猜想是不是因为在2的更新中断中,使能单脉冲的同时会使计数器失能,导致最后4个脉冲无法输出? |
stm32编码器模式计数问题
关于ASM330LHH TR调试中的问题
STM32会存在单个IO口坏掉的情况吗?
STM32的DCode bus是连接到bus matrix的吗?参考手册描述和图片是不符吗?
stm32ide怎么正确的导出项目
STM32F105RBT6 2025年 ROSH REACH 报告
STM32CubeMX 使用"FW_F1 V1.8.6"生成FreeRTOS代码缺少"freertos_mpool.h"?
你好,我的setting里面设置都没有问题。但是显示failed download cortexm3
STM32F103C8出現找不到'STM32100B_EVAL/stm32100b_eval.h' file not found
stm32f407无法配置定时器2为全部dma
你的猜测是有道理的。
单脉冲模式下,启动计数器发生下次更新时会停止计数。所以,你这里可以考虑根据更新中断
将计数器重新启动下;
或者换个方式,比方使用DMA方式一次性地输出256个脉冲;