8.STM32F407之HAL库——PWM笔记

这篇具有很好参考价值的文章主要介绍了8.STM32F407之HAL库——PWM笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、PWM简介

  脉冲宽度调制(Pulse width modulation,PWM)技术。
  是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单来说就是对脉冲宽度的控制。
  在单片机上就是通过控制引脚电平的周期性通断,来产生规律的矩形波。并且周期和脉冲的宽度都是可调的。
  占空比:是指在一个脉冲循环内,通电时间相对于总时间所占的比例。(高电平时间/一个周期的时间)
  占空比就是对脉冲宽度的描述。

二、PWM相关寄存器

  脉冲宽度调制模式可以生成一个信号
    TIMx_ARR 寄存器值决定信号频率
    TIMx_CCRx 寄存器值决定占空比
    TIMx_CCMRx 寄存器中的 OCxM 位决定PWM模式,110表示模式1,111表示模式2。
      MODE1,小于比较值时候为有效电平
      MODE2,大于比较值时候为有效电平
    TIMx_CR1 寄存器中的 OPM 位,设置为 1,可选择单脉冲模式。

三、STM32CubeMX配置

  STM32的PWM功能是基于定时器的,这是因为产生PWM波需要计时(计数),其中包括PWM波的周期,以及产生不同占空比的高电平所需要的不同时间。
  先使能TIM14定时器
stm32f407 pwm,# F407使用HAL库搭配STM32CUBE学习笔记,stm32,单片机,arm
  单脉冲模式:计数器可以在一个激励信号的触发下启动,并可在一段可编程的延时后产生一个脉宽可编程的脉冲。
  

  复用PF9引脚为定时器14通道1
stm32f407 pwm,# F407使用HAL库搭配STM32CUBE学习笔记,stm32,单片机,arm

  设置PF9的标签
stm32f407 pwm,# F407使用HAL库搭配STM32CUBE学习笔记,stm32,单片机,arm

  使能NVIC
stm32f407 pwm,# F407使用HAL库搭配STM32CUBE学习笔记,stm32,单片机,arm

  和普通定时器一样计算定时时间,产生周期性信号并自动重装载。
stm32f407 pwm,# F407使用HAL库搭配STM32CUBE学习笔记,stm32,单片机,arm
  PWM模式:MODE1,小于比较值时候为有效电平。MODE2,大于比较值时候为有效电平
  Pulse:设置比较值。有效电平所占的计数,可以调节占空比
  如果enable,任何写入TIMx_CCRx事件到来,都不会打断当前计数周期,只能等到计完数了(更新事件),才把TIMx_CCRx传送至当前计数寄存器。如果disable,任何写入TIMx_CCRx事件到来,都会打断当前计数周期,TIMx_CCRx的值传送至当前计数寄存器。
  CH polarity:通道极性,如果是HIGH,说明高电平是有效电平(输出高电平时候表示有效电平)。
stm32f407 pwm,# F407使用HAL库搭配STM32CUBE学习笔记,stm32,单片机,arm

  该程序实现的是,使用TIM14的通道1调节占空比实现LED的闪烁。调节不同的占空比可以改变LED的闪烁。

四、所用HAL库函数

	 //在初始化部分使用:启动PWM
	HAL_TIM_PWM_Start(&htim14,TIM_CHANNEL_1);  //启动PWM
	//在需要调节占空比的时候使用,改变占空比
	__HAL_TIM_SetCompare(&htim14,TIM_CHANNEL_1,9900);
	

五、参考资料

《STM32F4xx中文参考手册》
《STM32F4开发指南-HAL库版本_V1.2》文章来源地址https://www.toymoban.com/news/detail-641058.html

到了这里,关于8.STM32F407之HAL库——PWM笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32F407 ADC+DMA采集压力变送器数据(HAL库)】

    之前项目中需要对麦克传感器的mpm480隔爆压力变送器(4-20ma输出)的数据进行实时采集,使用STM32F407作为控制器,使用信号转换模块将压力变送器4-20ma的输出转换为0-3.3v的信号量,输入到STM32F407板子的ADC1的通道10,并使用DMA2通道0数据流0将采集的多个值从外设直接存入存储器

    2024年02月16日
    浏览(69)
  • stm32f407单片机上通过HAL库实现can总线数据的收发

      最近在使用can总线,由于这个以前接触的比较少,所以调试代码的时候直接是下载的正点原子的例程,在这个基础上修改调试的。现在将调试中遇到的问题,总结一下,避免以后踩坑。目前写了一个查询方式的,一个中断方式的。项目代码下载地址: https://download.csdn.n

    2024年02月09日
    浏览(54)
  • STM32F407移植OpenHarmony笔记1

    参考文档: OpenAtom OpenHarmony width=device-width,initial-scale=1.0 https://docs.openharmony.cn/pages/v3.2/zh-cn/device-dev/get-code/gettools-acquire.md/ 搭建环境 安装linux系统: Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-91-generic x86_64) 下载源代码:我选择的是V3.2.4版本 https://repo.huaweicloud.com/openharmony/os/3.2.4/code-v3.2.4-Rele

    2024年01月25日
    浏览(56)
  • STM32F407单片机HAL库CAN2不能接收数据解决方法

      最近在使用stm32F407的片子调试can通信,直接在正点原子的代码上修改调试,调试can1的时候,基本没啥问题,收发都正常,使用查询模式和中断模式都可以。但是当修改到can2的时候,可以正常发送数据,但是中断函数始终进不去。折腾了一两个小时终于搞定了。下面将解

    2024年02月16日
    浏览(46)
  • STM32F407 --USART使用

    目录 1. 串口配置--普通模式 2. 实现数据的传输主函数 1)单引号双引号的应用数组传输 2)将调试信息用串口打印传送到电脑上 1. 串口配置--普通模式 F407使用的M4内核与F103使用的M3内核不一样,导致在使用配置上有区别。需要在F103配置的基础上专门将GPIO的PIN配置成复用功能

    2024年02月16日
    浏览(59)
  • 正点原子stm32F407学习笔记5——串口通信实验

    上位机给开发板发送数据,开发板将收到的数据发回给上位机 串口设置的一般步骤可以总结为如下几个步骤: 串口时钟使能,GPIO 时钟使能。 设置引脚复用器映射:调用 GPIO_PinAFConfig 函数。 GPIO 初始化设置:要设置模式为复用功能。 串口参数初始化:设置波特率,字长,奇

    2024年02月06日
    浏览(48)
  • STM32F407系列硬件I2C笔记

    STM32F407系列有3个硬件I2C: I2C1:该接口位于GPIOB引脚上,包括PB6(I2C1_SCL)和PB7(I2C1_SDA)。 I2C2:该接口位于GPIOB引脚上,包括PB10(I2C2_SCL)和PB11(I2C2_SDA)。 I2C3:该接口位于GPIOA和GPIOC引脚上,包括PA8(I2C3_SCL)和PC9(I2C3_SDA)。   硬件I2C的速度比软件I2C更快,硬件I2C通常可以

    2024年02月04日
    浏览(53)
  • 野火霸天虎 STM32F407 学习笔记_1 stm32介绍;调试方法介绍

    博主开始探索嵌入式以来,其实很早就开始玩 stm32 了。但是学了一段时间之后总是感觉还是很没有头绪,不知道在学什么。前前后后分别尝试了江协科技、正点原子、野火霸天虎三次 stm32 的课程学习。江协科技的 stm32f103c8t6 课程看了一段时间,感觉对一些外设的调用方法有

    2024年02月06日
    浏览(48)
  • 【STM32F407学习笔记】中断优先级管理与外部中断

    计算机系统中中断占有极其重要的地位,在嵌入式系统中更是如此。中断机制能让计算机有效合理的发挥效能和提高效率。 涉及外设 :EXIT外部中断,NVIC内嵌向量中断控制器。 计算机在执行程序的过程中,当出现异常情况或特殊情况时,计算机停止现在程序的运行,转向对

    2024年02月02日
    浏览(55)
  • 从STM32F407到AT32F407(一)

    雅特力公司的MCU有着性能超群,价格优越的巨大优势,缺点是相关资料少一些,我们可以充分利用ST的现有资源来开发它。 我用雅特力的STM32F437开发板,使用原子 stm32f407的开发板自带程序,测试串口程序,原设定串口波特率为115200,但是输出乱码,波特率改成230400,串口输

    2024年02月02日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包