STM32duino的定时器输入捕获及PWM频率修改

STM32duino-bootloader:STM32的开源Bootloader深入解析 STM32duino-bootloader项目是一个实现了STM32微控制器的USB DFU bootloader的开源项目,它为STM32的固件远程更新提供了一种可行的解决方案。这个项目展示了如何在STM32平台上实现一个功能强大的bootloader,其中包含了如何使用STM32的硬件特性,如何处理USB通信,以及如何编程STM32的内部闪存。如果你需要为你的STM32项目开发一个bootloader,这个项目无疑是一个很好的参考。对于固件更新,重要的一步是将新的固件写入STM32的内部闪存。 阅读详情

一、以TIMER2和TIMER3的输入捕获为例

 Timer2.attachCompare1Interrupt(handler_channel_1);
  Timer2.attachCompare2Interrupt(handler_channel_2);
  Timer2.attachCompare3Interrupt(handler_channel_3);
  Timer2.attachCompare4Interrupt(handler_channel_4);
  TIMER2_BASE->CR1 = TIMER_CR1_CEN;
  TIMER2_BASE->CR2 = 0;
  TIMER2_BASE->SMCR = 0;
  TIMER2_BASE->DIER = TIMER_DIER_CC1IE | TIMER_DIER_CC2IE | TIMER_DIER_CC3IE | TIMER_DIER_CC4IE;
  TIMER2_BASE->EGR = 0;
  TIMER2_BASE->CCMR1 = 0b100000001; //Register is set like this due to a bug in the define table (30-09-2017)
  TIMER2_BASE->CCMR2 = 0b100000001; //Register is set like this due to a bug in the define table (30-09-2017)
  TIMER2_BASE->CCER = TIMER_CCER_CC1E | TIMER_CCER_CC2E | TIMER_CCER_CC3E | TIMER_CCER_CC4E;
  TIMER2_BASE->PSC = 71;
  TIMER2_BASE->ARR = 0xFFFF;
  TIMER2_BASE->DCR = 0;

  Timer3.attachCompare1Interrupt(handler_channel_5);
  Timer3.attachCompare2Interrupt(handler_channel_6);
  TIMER3_BASE->CR1 = TIMER_CR1_CEN;
  TIMER3_BASE->CR2 = 0;
  TIMER3_BASE->SMCR = 0;
  TIMER3_BASE->DIER = TIMER_DIER_CC1IE | TIMER_DIER_CC2IE;
  TIMER3_BASE->EGR = 0;
  TIMER3_BASE->CCMR1 = 0b100000001; //Register is set like this due to a bug in the define table (30-09-2017)
  TIMER3_BASE->CCMR2 = 0;
  TIMER3_BASE->CCER = TIMER_CCER_CC1E | TIMER_CCER_CC2E;
  TIMER3_BASE->PSC = 71;
  TIMER3_BASE->ARR = 0xFFFF;
  TIMER3_BASE->DCR = 0;

以上内容摘自Brokking.net的YMFC-32,链接Brokking.net - My personal project page.

STM32 for Arduino - Connecting an RC receiver via input capture mode: https://youtu.be/JFSFbSg0l2M
STM32 for Arduino - Electronic Speed Controller (ESC) - STM32F103C8T6: https://youtu.be/Nju9rvZOjVQ

无法科学上网可以搜优酷或B站,有老邵翻译的视频

二、以TIMER4的PWM输出频率调整为例

#define Prescale 2
#define Overflow 7200
int highduty = 0;//PWM输出占空比,本例中最大值为7200


void setup() {
  Serial.begin(57600);
  Timer4.setPrescaleFactor(Prescale);
  Timer4.setOverflow(Overflow);
  pinMode(PB6, PWM);
  pinMode(PB7, PWM);

}

void loop() {
    pwmWrite(PB7, highduty);
    pwmWrite(PB6, highduty);
 
}

STM32duino实战:从Arduino到Blue Pill的引脚配置与代码移植指南 在嵌入式开发中,引脚配置是连接软件逻辑与硬件功能的基础。GPIO(通用输入输出)引脚的不同工作模式,如推挽输出、开漏输出、上拉/下拉输入及模拟输入,决定了其驱动能力、电平特性与信号读取方式。理解这些模式的原理,是进行精准外设控制的前提。在工程实践中,正确的引脚模式选择直接影响ADC采样精度、PWM输出稳定性及数字通信可靠性。对于从Arduino生态过渡到STM32的开发者,尤其是使用STM32F103C8T6(Blue Pill)配合Arduino IDE(STM32duino)的场景,常会遇到代码移植后硬 阅读详情

相关推荐

STM32仿生蝴蝶DIY:从PWM控制到舵机驱动的嵌入式入门实践

PWM(脉宽调制)是嵌入式系统中控制执行器(如舵机、电机)的核心技术,通过调节信号的占空比来精确控制角度或速度。其原理基于微控制器的定时器模块,能高效地将数字指令转化为模拟量输出,在机器人、自动化领域价值显著。舵机作为典型的PWM驱动执行器,广泛应用于需要精确角度定位的场景,例如机器人关节、航模控制等。本文以STM32微控制器为平台,结合PWM控制与舵机驱动技术,详细讲解如何构建一个仿生蝴蝶扑翼机构,涵盖硬件选型、软件配置、运动算法及系统调试的全过程,为嵌入式初学者和创客提供了一个完整的机电一体化项目实践案

weixin_33675507的博客 481

Arduino借助STM32Duino开发STM32教程-(2023年8月)

最详细的arduino开发Stm32配置教程

m0_46236949的博客 1万+

STM32F103C8T6的Arduino核心怎么选?STM32duino vs Arduino_STM32,实测避坑指南

本文深度对比了STM32F103C8T6开发板的两种Arduino核心——STM32duino与Arduino_STM32,从安装配置、外设兼容性到性能测试进行全面分析。实测显示STM32duino在安装便捷性、代码效率和官方支持方面更具优势,特别适合新手入门和高性能需求场景,而Arduino_STM32则更适合老项目维护。

weixin_27869497的博客 197

STM32duino:【玩STM32】STM32Duino的引脚映射,ADC,PWM等介绍

基于迷你强的STM32duino文章,感觉非常有价值,这小单片机做Arduino实在太强了,甩AVR的几条街,结合Maple Mini研究了一下,总结下面基础资料: 0、编程语法参考 http://docs.leaflabs.com/static.leaflabs.com/pub/leaflabs/maple-docs/latest/language.html 1、引脚对应关...

Android/Linux的专栏 1万+

Arduino IDE 2.3.2 配置 STM32F1/F4 开发板:3步完成核心支持包安装与验证

本文详细介绍了如何在Arduino IDE 2.3.2中配置STM32F1/F4开发板,包括核心支持包的安装、开发板设置及Blink示例验证。通过简化的三步流程,开发者可以快速搭建STM32开发环境,并利用Arduino IDE的丰富库资源和跨平台优势,实现高效的程序烧录与调试。

weixin_30471561的博客 375

STM32F103C8T6性能碾压Arduino?保姆级配置Arduino IDE开发环境全攻略

本文详细介绍了STM32F103C8T6开发板在性能上如何碾压Arduino,并提供了保姆级的Arduino IDE开发环境配置全攻略。通过硬件参数对比、Bootloader烧写指南和性能测试,展示了STM32在PWM输出、ADC采样等方面的显著优势,适合创客和学生群体进行性价比升级。

weixin_30838873的博客 390

STM32duino——用ArduinoIDE玩STM32(一): 刷入Bootloader,实现免串口下载

STM32duino——用ArduinoIDE玩STM32(一): 刷入Bootloader,实现免串口下载写在前面:为什么我们需要STM32duino?准备工作刷入Bootloader安装相关支持第一个测试程序注意事项参考文献 写在前面:为什么我们需要STM32duino? 同样的价格,更高的性能 性能简单对比: STM32F103C8T6 vs Arduino Nano 主频: 72MHz vs 8MHz SRAM:

gucongtian的博客 1万+

STM32duino:使用Arduino框架玩转STM32——配置开发环境

本文将介绍如何通过在Arduino框架下使用STM32duino库,配置开发环境并开始使用STM32微控制器进行编程。我们将涵盖STM32duino的安装、开发板支持、库管理以及示例代码的编写。首先,我们需要安装Arduino IDE,它是一个开源的集成开发环境,用于编写和上传代码到STM32微控制器。在Arduino IDE中,我们需要安装STM32duino库以支持STM32微控制器。安装完STM32duino库后,我们需要选择正确的开发板。步骤2:安装STM32duino库。步骤4:编写示例代码。

2301_79326616的博客 1281

STM32输出PWM信号(库函数版本)

什么是PWM信号? 官方解释:PWM信号一般指脉冲宽度调制。脉冲宽度调制是一种模拟控制方式,根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。 相信大家都会很努力的看完它吧。作为一个学习糟糕的大学生,我一般都不看这种官方的解释,我认为的PWM信号就是一种占空比可调的方波,什么又是占空比呢?不知道就去百度吧。懒得百度我也

Eevey的博客 6559

使用STM32的PWM输出功能:实现Arduino STM32F103C8T6上的PWM控制

我们将详细讨论如何配置STM32的定时器和通道,以及如何编写相应的代码来生成所需的PWM信号。我们首先配置了定时器和PWM输出通道,然后编写了相应的代码来生成PWM信号。在上述代码中,我们首先使能了GPIOA的时钟,并配置了相应的引脚(PA0)为复用推挽输出模式。然后,我们配置了定时器2的通道1为PWM模式,并设置了脉冲宽度(占空比)为499。首先,我们需要配置STM32的定时器来生成PWM信号。在上述代码中,我们首先使能了定时器2的时钟,并配置了定时器的基本参数,如预分频器、计数模式、周期和时钟分频。

HwfvTest的博客 1750

SQL实现数据仓库ETL:分层设计、增量抽取与性能优化实践

在数据仓库建设过程中,ETL(抽取、转换、加载)是数据流转的核心环节。传统观点常将ETL与专业工具或大数据框架绑定,但在中小规模数据场景下,基于SQL的ETL方案凭借低门槛、高可维护性和直观的排错体验,成为高效且务实的选择。本文从ETL的基础概念出发,阐述数据仓库分层(ODS、DWD、DWS、ADS)中每层ETL的定位与职责,重点剖析增量抽取策略(时间戳、主键、日志)下的SQL实现方式,以及数据清洗、去重和格式化的常见写法。同时,结合真实项目经验,分享慢SQL优化技巧、任务调度依赖设计、幂等性保障和常见问题

weixin_33290540的博客 345

stm32定时器之pwm输出

stm32定时器之pwm输出 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验; 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮

qfkw001的博客 1425

数字IC后端项目典型问题之后端实战项目问题记录

数字IC后端培训教程之数字后端实战项目问题debug及解决方案记录

weixin_37584728的博客 1711

STM32duino Servo 库完全指南:单定时器软件 PWM 驱动多达 12 路舵机的实现原理与实战

> 本文以 Arduino_Core_STM32 仓库中的 [Servo 库文档](https://link.gitcode.com/i/7376a7ceb1454589261508f702ec5d21) 为核心骨架,结合 [libraries/Servo](https://link.gitcode.com/i/b63481ef1cf5a0e2dcc0b831a4aaed01) 目录下的完整源码、

gitblog_01168的博客 657

电子货架标签应用浅析(ESL)

​【 关注与分享,是对原创最大的鼓励 】 年底了,会断续介绍几个主要的BLE的应用及市场情况,这篇文章介绍的是电子货架标签, ESL (Electronic Shelf Label)。 文章将从应用简介,市场规模,产业链,头部玩家及系统框架进行介绍。只对技术感兴趣的可以直接拉到底。 ESL简介 ESL,是一种显示产品,其主要是替代传统的纸质标签,应用于大型商超,...

iotthings的博客 4691

英特尔® NUC迷你电脑实现无人值守自动开机配置指南

本文详细介绍了如何配置英特尔® NUC迷你电脑实现无人值守自动开机功能。从BIOS设置到操作系统级配置,涵盖硬件兼容性确认、电源恢复功能设置及常见问题解决,帮助用户轻松实现设备断电后自动恢复运行,适用于家庭服务器、企业终端等多种场景。

weixin_42638178的博客 472

STM32 PWM蓝牙无线调光实战:从原理到物联网应用

PWM(脉冲宽度调制)是一种通过调节脉冲占空比来控制平均电压的数字信号技术,其核心原理是利用定时器快速切换高低电平来模拟模拟电压输出。在嵌入式系统中,PWM技术能够实现对电机转速、LED亮度等设备的精确控制,具有功耗低、控制精度高的技术价值。结合蓝牙模块的无线通信能力,PWM技术可广泛应用于智能家居照明控制、物联网设备遥控、机器人运动控制等场景。本文以STM32微控制器和HC-05蓝牙模块为例,详细解析如何通过手机APP无线调节PWM占空比来实现LED亮度控制,为嵌入式开发者和物联网爱好者提供一个完整的软硬

weixin_33816300的博客 513

YT8531 PHY芯片硬件设计与MDIO/RGMII实战指南

以太网PHY芯片是FPGA系统实现网络通信的物理层核心,其关键在于标准接口(如MDIO管理总线和RGMII数据接口)的正确实现与协同。MDIO作为IEEE 802.3定义的低速配置通道,负责寄存器级控制与状态监控;RGMII则通过双沿采样精简引脚,在千兆速率下兼顾性能与PCB布线可行性。技术价值体现在电压兼容性(支持1.8V/2.5V/3.3V)、可编程时序调节(RX_DELAY/TX_DELAY)及多级环回测试能力,显著提升国产FPGA平台(如Xilinx Zynq)的工程鲁棒性。典型应用场景涵盖嵌入式网

weixin_42453228的博客 1335

Arduino_Core_STM32 官方文档导航指南:从安装入门到深度定制 STM32 Arduino 开发

> 本文基于 Arduino_Core_STM32 仓库官方文档站点入口([docs/index.md](https://link.gitcode.com/i/18a0ac50f64216eeb44cb4980cee75e9))展开,梳理该项目的完整文档体系:包括 Arduino IDE 2 的安装与选板流程、支持板卡目录、Arduino API 参考、库生态、板卡变体定制、HAL 配置、CMak

gitblog_00836的博客 457

智慧矿山无人机空地一体化解决方案

未来,随着技术的不断进步和应用场景的不断拓展,智慧矿山无人机空地一体化解决方案将在矿业领域发挥更加重要的作用,为矿山的可持续发展提供更加有力的保障。该系统能够实现矿山的全方位、全天候监测与管理,提升矿山生产效率,降低安全风险,并为矿山的可持续发展提供有力支持。智慧矿山无人机空地一体化解决方案是当前矿业领域技术创新的重要方向,旨在通过集成无人机技术、物联网、大数据、人工智能等先进技术,实现矿山的智能化、高效化和安全化运营。在矿山爆破、挖掘等危险作业中,无人机可进行远程监控和指挥,降低人员安全风险。

专注多旋翼、复合翼无人机技术研究,从事低空经济行业。 1109

【CUDA Runtime】第一个“Hello World“程序

CUDA(Compute Unified Device Architecture)是 NVIDIA 提供的一个并行计算平台和编程模型,旨在通过利用 GPU 的强大计算能力来加速计算密集型应用。对于许多开发者而言,开始学习 CUDA 编程的第一步通常是编写一个简单的“Hello World”程序。尽管 CUDA 的实际应用远远超出一个简单的例子,但这个初步的示例能帮助开发者快速入门,理解基本的 CUDA 编程流程。

m0_62599305的博客 1504

STM32实战避坑指南:从下载失败到稳定运行的硬核真相

STM32不是抽象的ARM Cortex-M芯片,而是由总线矩阵、外设互联与存储映射构成的物理可配置系统。其稳定性高度依赖电源设计、时钟树配置、外设初始化顺序和链接脚本内存布局四大底层机制。理解VDD/VDDA独立滤波、APB/AHB总线带宽差异、SWD电平兼容性及`.data`段SRAM对齐等关键约束,是解决‘No target connected’、ILI9341读ID异常(如0xA1A1)、USB枚举失败、超声波测距不准等高频问题的技术前提。本文聚焦真实工程断层,覆盖从开发板上电到7×24小时稳定运行

weixin_34355559的博客 363

ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C 解决方案

本文主要介绍了ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject解决方案,希望能对使用Numpy的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 1万+

MicroMod STM32处理器板开发实战:从Arduino生态到STM32F405RG深度应用

在嵌入式系统开发中,模块化设计是提升开发效率和灵活性的关键趋势。其核心原理在于将核心处理器与功能接口分离,通过标准化接口实现快速组合与迭代。这种设计理念在工程实践中具有重要价值,尤其适用于需要快速原型验证、多场景应用切换以及对性能有特定要求的项目。MicroMod生态系统正是这一理念的典型代表,它通过M.2接口标准,允许开发者在同一块载板上灵活更换不同核心的处理器模块。本文聚焦于新加入该生态的STM32处理器板,其核心为高性能的ARM Cortex-M4内核STM32F405RG。我们将深入探讨如何在这一模

weixin_34384681的博客 435

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

STM32+SimpleFOC驱动直流无刷电机开环控制实战指南

直流无刷电机(BLDC)凭借高效率、低噪声和长寿命,广泛用于航模、机器人及工业驱动领域。然而,要让电机平稳旋转,涉及三相全桥驱动、PWM调制和换相逻辑等基础概念,初学者往往被复杂的FOC算法劝退。开环控制作为一种不依赖位置传感器的简易驱动方式,通过预设顺序为三相绕组通电产生旋转磁场,是快速验证电机硬件、理解无刷驱动原理的捷径。SimpleFOC作为轻量级电机控制框架,在STM32平台上封装了SVPWM、坐标变换等底层实现,帮助开发者聚焦控制逻辑。本文以STM32F103搭配SimpleFOC为例,从硬件接线

weixin_33795806的博客 305

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

STM32入门到进阶:内核架构、型号选型与开发实战指南

微控制器(MCU)是将CPU、存储与外设集成于单芯片的嵌入式核心器件,基于ARM Cortex-M内核的32位MCU凭借高性价比与完善生态成为主流。其原理在于内核负责运算与控制,片上外设实现通信、采集与驱动,通过时钟树与中断系统协调工作。技术价值体现在实时性、低功耗与可扩展性上,广泛应用于工业控制、物联网节点与消费电子。开发中常需应对HardFault定位、ADC采样精度、CAN通信及芯片包安装等问题。本文围绕STM32,系统讲解内核架构、型号选型、环境搭建与外设编程,帮助读者建立完整的嵌入式开发思路。

weixin_33766168的博客 452

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

下一篇: 用opencv将png文件转换为jpg文件
TerminatorRoot
博客等级 码龄9年 18粉丝 10原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值