STM32的单脉冲模式实现精确个数脉冲

2023-11-19

我们在做嵌入式产品的开发过程中,有时需要输出指定数目的脉冲。实现它的方法较多,这里介绍一种利用 STM32定时器的单脉冲模式来实现的方法。


STM32定时器的单脉冲输出功能,其实是定时器输出比较功能的一个特殊应用。即让定时器在某个事件触发后的一段时间产生指定脉宽的单脉冲信号。


计数器的启动通常可由从模式控制器控制,可由比较输出模式或PWM输出模式来产生波形。通过置位OPM@TIMx_CR1来在下一个更新事件时关闭计数器来实现单脉冲输出。



STM32定时器里有个重复计数器TIMx_RCR,当它的值是个非0值N时,计数器不再每次溢出【上溢或下溢】时都产生更新事件,而是当发生第N+1次溢出时才产生更新事件。如果RCR=0的话,就是每次溢出都产生更新事件。

那么,当把单脉冲输出模式与RCR寄存器配合使用时,就不难生成指定数目的脉冲个数。此时脉冲个数为TIMx_RCR的值加1。


在上面原理的基础上,通过使用STM32定时器的主从模式还可以方便地实现周期性地输出指定数目的脉冲。


假如按上图所示,TIM2与TIM1主从连接,实现周期性的输出5个脉冲。

TIM2 配置为 触发模式,触发TIM1的计数;

TIMER1 配置为 单脉冲输出模式;TIM1_RCR=4;




关于上述内容的更多细节可以点击左下方的”阅读原文”去下载AN4776,相关应用的参考固件代码,可以去www.st.com/stm32 搜索X-CUBE-TIMCOOKER下载。整个固件包解压后的工程目录如下所示,其中就有上面提到的两种应用的参考工程代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32的单脉冲模式实现精确个数脉冲 的相关文章

  • CMSIS 库是否应该包含在版本控制中? [复制]

    这个问题在这里已经有答案了 通常 我曾经在版本控制中包含芯片供应商 ST 提供的设备特定标头和源以及 CMSIS Core 标头 数量不多 也没有更新的习惯 我使用STM32微控制器 但我不使用立方体框架 or the 标准外设库 最近 我
  • 优化 ARM Cortex M3 代码

    我有一个 C 函数 它尝试将帧缓冲区复制到 FSMC RAM 这些函数将游戏循环的帧速率降低至 10FPS 我想知道如何分析反汇编的函数 我应该计算每个指令周期吗 我想知道CPU把时间花在哪里 在哪个部分 我确信该算法也是一个问题 因为它的
  • 138-基于stm32单片机汽车多功能仪表盘显示系统Proteus仿真+源程序

    资料编号 138 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 DHT11传感器 ds1302时钟 LED灯 蜂鸣器 电位器 制作一个基于stm32单片机汽车多功能仪表盘显示系统Proteus仿真 2 通过DHT1
  • rt-thread studio中新建5.0不能用

    文章目录 一 版本对比 二 文件和文件夹打斜杠 在使用RT Thread studio创建新工程5 0版本的时候 结果发现新建完成之后程序不能正常运行 但是创建4 10版本的时候却能运行 那肯定是新版本出现了BUG 一 版本对比 首先对比了
  • STM32F103

    提示 来源正点原子 参考STM32F103 战舰开发指南V1 3PDF资料 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 提示 这里可以添加本文要记录的大概内容 开发环境硬件普中科技 接线图在g
  • STM32超声波——HC_SR04

    文章目录 一 超声波图片 二 时序图 三 超声波流程 四 单位换算 五 取余计算 六 换算距离 七 超声波代码 一 超声波图片 测量距离 2cm 400cm 二 时序图 1 以下时序图要先提供一个至少10us的脉冲触发信号 告诉单片机我准备
  • HAL库学习

    CMSIS简介 CMSIS Cortex Microcontroller Software Interface Standard 微控制器软件接口标准 由ARM和其合作的芯片厂商 ST NXP 软件工具厂商 KEIL IAR 共同制定的标准
  • 解决KEIL编译慢问题

    两种方案 使用v6版本的ARM Compiler 如果v6版本编译不过 必须使用v5版本的 则可以勾选掉Browse Information选项 提升很明显 1分多钟能优化到几秒 看代码量 但是这个有个弊端 在KEIL中会影响函数跳转 建议
  • VS Code 有没有办法导入 Makefile 项目?

    正如标题所说 我可以从现有的 Makefile 自动填充 c cpp properties json 吗 Edit 对于其他尝试导入 makefile 的人 我找到了一组脚本 它们完全可以实现我想要实现的目标 即通过 VS Code 管理
  • 跟着野火学FreeRTOS:第一段(任务定义,切换以及临界段)

    在裸机系统中 系统的主体就是 C P U CPU CP U 按照预先设定的程序逻辑在 m a i n
  • 1.69寸SPI接口240*280TFT液晶显示模块使用中碰到的问题

    1 69寸SPI接口240 280TFT液晶显示模块使用中碰到的问题说明并记录一下 在网上买了1 69寸液晶显示模块 使用spi接口 分辨率240 280 给的参考程序是GPIO模拟的SPI接口 打算先移植到FreeRtos测试 再慢慢使用
  • STM32 暂停调试器时冻结外设

    当到达断点或用户暂停代码执行时 调试器可以停止 Cortex 中代码的执行 但是 当皮质停止在暂停状态下执行代码时 调试器是否会冻结其他外设 例如 DMA UART 和定时器 您只能保留时间 r 取决于外围设备 我在进入主函数时调用以下代码
  • STM32的HAL中实现单按、长按和双按功能

    我正在尝试实现单击 双击和长按功能来执行不同的功能 到目前为止 我已经理解了单击和长按的逻辑 但我不知道如何检测双击 至于代码 我使用计数器实现了单击和长按 但代码仅停留在第一个 if 条件上 bool single press false
  • STM32F207 I2C 测试失败

    我正在使用 STM32F207 微控制器在 STM3220G EVAL 板上学习嵌入式开发 我尝试通过连接同一芯片上的两个 I2C2 和 I2C3 模块并发送 接收字符来测试 I2C 接口 这是我当前编写的代码 使用 mdk arm 5 i
  • STM32H5 Nucleo-144 board开箱

    文章目录 开发板资料下载 目标 点亮LD1 绿 LD2 黄 和LD3 红 三个LED灯 开箱过程 博主使用的是STM32CubeMX配置生成代码 具体操作如下 打开STM32CubeMX File gt New project 选择开发板型
  • 特殊寄存器

    特殊寄存器 文章目录 前言 一 背景 二 2 1 2 2 总结 前言 前期疑问 STM32特殊寄存器到底是什么 特殊寄存器怎么查看和调试代码 本文目标 记录和理解特殊寄存器 一 背景 最近在看ucosIII文章是 里面提到特殊寄存器 这就进
  • STM32F0、ST-link v2、OpenOCD 0.9.0:打开失败

    我在用着发射台 http www ti com ww en launchpad about htmlgcc arm none eabi 4 9 2015q2 为 STM32F0 进行编译 现在我想使用该集合中的 arm none eabi
  • HAL_Delay() 陷入无限循环

    我被 HAL Delay 函数困住了 当我调用此函数 HAL Delay 时 控制陷入无限循环 在寻找问题的过程中 我发现了这个 http www openstm32 org forumthread2145 threadId2146 htt
  • 使用 STM32 USB 设备库将闪存作为大容量存储设备

    我的板上有这个闪存IC 它连接到我的STM32F04 ARM处理器 处理器的USB端口可供用户使用 我希望我的闪存在通过 USB 连接到 PC 时被检测为存储设备 作为第一步 我在程序中将 USB 类定义为 MSC 效果很好 因为当我将主板
  • 当端点和 PMA 地址均更改时,CubeMX 生成的 USB HID 设备发送错误数据

    我正在调试我正在创建的复合设备的问题 并在新生成的仅 CubeMX 代码中重新创建了该问题 以使其更容易解决 我添加了少量代码main 让我发送 USB HID 鼠标点击 并在按下蓝色按钮时使 LED 闪烁 uint8 t click re

随机推荐

  • AI推荐的初级算法工程师学习路线

    学习算法是一项长期而且不断更新的工作 以下是一份初学者从入门到达到任职初级算法工程师要求的学习内容大纲 供您参考 1 编程语言 首先学习至少一门主流编程语言 如Python C Java等等 2 数据结构 学习数据结构是学习算法的基础 建议
  • CentOS 防火墙配置 80端口

    看了好几个页面内容都有错 下面是正确方法 sbin iptables I INPUT p tcp dport 80 j ACCEPT sbin iptables I INPUT p tcp dport 22 j ACCEPT 然后保存 et
  • 【STM32】标准库 串口下载以及STLINK

    STM32的串口下载 打开FlyMcu 接线就像之前那样接 USART1串口通信 必须是1 其他的不支持串口通信 编译之后就会生成HEX文件 而且上面的按钮Select也可以选择生成的位置 搜索串口 选择 然后波特率选择115200 在联机
  • 【tvm官网教程01】设计和架构-1

    tvm官网教程01 设计和架构 1 目的 1 编译流 1 1 关键数据结构 1 2 Transformations 1 2 1 变换的分类 1 2 2 relay transform 1 2 2 1 子函数 1 2 2 2 overall问
  • Consul服务注册与发现

    目录 一 Consul简介 一 官网 二 特点 二 安装并运行Consul 一 官网安装说明 二 下载 三 使用开发模式启动 三 服务提供者 四 服务消费者 五 三个注册中心异同点 一 CAP理论 二 AP架构 三 CP架构 一 Consu
  • 带有两个/三个未知数的算数-几何均值不等式的证明及其思路解析

    这是一篇学习手记 注 尽管文中大量使用了 一个显然的想法 自然而然 我们会想 等词语 我们也必须承认 这些伟大成果的证明需要天才的思路和不断的尝试 因此 第一次学习理解不了是很有可能的 比如我 基础 带有两个未知数的算数 几何均值不等式的证
  • MySQL同时In俩个字段,In多个字段,Mybatis多个In查询问题,Mysql多个IN查询多出数据问题,Mysql多个IN查询 数据准确问题

    背景 今天产品验收的时候 导入了大量数据 发现造价项目某个查询列表数据多出了几条数据 看了Mybatis查询 才发现是同时使用了多个IN查询导致的问题 入参是对象列表 In值是分开循环赋值的 问题就出在这里 需要根据两个字段去查询多个值 这
  • Barcode Reader Toolkit for Windows v8.3.3.3正式发布!

    Barcode Reader Toolkit for Windows 是一个工具包 允许开发人员在其应用程序中添加条形码检测 该工具包将图像文件或内存位图作为输入 并返回有关每个条形码的信息 包括值 类型和位置 所有主要的线性 1 D 条形
  • 1流明等于多少lux_要想投影仪画质清晰,投影仪流明和对比度不得不看

    在选购投影机的时候 大家都会根据预算 尽可能选择画质清晰的投影机 一般来说会根据使用场景的不同 从XGA到1080P甚至4K的分辨率 那么 投影机的画质清晰效果只和分辨率有关么 其实不是 一款画质效果好的投影机 和投影机的流明和对比度也是息
  • Vue—实现动画、过度效果

    动画效果
  • UnityLuaMvvM Lua 带通知的Mode类

    实现数据更新UI自动刷新的核心代码 欢迎关注https gitee com xiongks UnityMVVM mode function modeType local obj obj modeType modeType obj filds
  • extends OverWrite

    extends 扩展延伸 继承 用这个方法对class有了进一步的汇总 减少了对具有相同属性的类重复enter的工作量 使函数模块化更高 注 构造函数内的属性和方法能继承 package Extends 定义一个父类public class
  • 远程桌面连接技术【包含出现问题的解决手段】

    远程桌面连接技术 文章目录 远程桌面连接技术 前言 定义 远程连接的方法 远程桌面协议 RDP 由于我没有两台电脑 这里用虚拟机演示 1 为两台计算机设置相同的网段的 IP 地址 2 远程计算机的设置 2 1 在电脑中找到 远程桌面连接 2
  • 【单片机】keil和Proteus使用教程

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 kei
  • I/O流之进步认识、InputStream以及FileInputStream

    File类 用于描述一个文件或者文件夹的 通过File对象 我们可以读取文件或者文件夹的属性数据 如果我们需要读取文件的内容数据 那么我们需要使用IO流技术 IO流 Input Output IO流解决问题 解决设备与设备之间的数据传输问题
  • Windows 10安装WSA(WindowsSubsystemForAndroid)

    0 Win10安装好了仍然不能用 Win10安装好了仍然不能用 Win10安装好了仍然不能用 抱着试一试的心态装了一下 果然不行 随手记录下 1 首先 直接在应用商店里下载WSA是会报错的 所以要从微软商店把这个包下载下来 打开https
  • 下载 arm-linux-gcc

    https releases linaro org components toolchain binaries latest 4 arm linux gnueabihf 如果你使用的是ubuntu系统 你可以使用apt方式来安装arm li
  • mybatis plus中update_time字段未自动更新

    参考 MyBatis Plus官方文档 mybatis plus对于create time update time这样的数据库字段提供了自动插入功能 不用每次都手动进行更新 使用指南 加 TableField注解 自定义实现类TimeMet
  • 抗击疫情,AI可以做些什么?

    目前 新冠疫情的发展 可以说无时无刻不在牵动着大家的心 在这样的历史背景下 作为人工智能 数据科学领域的从业者 我们不妨来探讨一下 AI在遏制类似的疾病传播中 可以起到什么样的作用 当然 单纯靠AI技术确实无法让病毒停止传播 在一定时期内
  • STM32的单脉冲模式实现精确个数脉冲

    我们在做嵌入式产品的开发过程中 有时需要输出指定数目的脉冲 实现它的方法较多 这里介绍一种利用 STM32定时器的单脉冲模式来实现的方法 STM32定时器的单脉冲输出功能 其实是定时器输出比较功能的一个特殊应用 即让定时器在某个事件触发后的