STM32-HAL库04-PWM输出

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

STM32-HAL库04-PWM输出

所用材料:
STM32F103C6T6(最小系统板)
STM32cubemx(HAL库软件)
MD5(编程软件)
示波器(DS100)

本节所学内容:
通过TIM2定时器输出500HZ频率的PWM波;
修改部分参数实现PWM波频率的改变;

第一步-新建工程
1.选择MCU-F103C6Tx
STM32-HAL库04-PWM输出
第二步-SYS设置
将DEBUG选线设置为Serial Wire
STM32-HAL库04-PWM输出
第三步-RCC设置
选择高速外部时钟
STM32-HAL库04-PWM输出
第四步-PWM配置

  1. Timers-TIM2-Channel1-(PWM Generation CH1)
  2. Parameter Settings-Counter Settings-Prescale-(71)
  3. Parameter Settings-Counter Settings-Counter Period-(1999)
  4. Parameter Settings-Counter Settings-auto reload preload-Enable
  5. Parameter Settings-PWM Generation CH1-Pluse-(1000)

其中Prescale为预分频值,Counter Period为计数值,两者共同决定PWM波的频率,而Pluse用于确定PWM波的占空比,具体公式如下:

/*--------------------------------------------------
PWM波频率:F=72M/[(ARR+1)*(PSC+1)]
占空比:	  Q=Pluse/(ARR+1)
本文中为输出500HZ频率的占空比为50%的PWM波,故PSC取值为71,
ARR取值为1999,Pluse取值为1000.
--------------------------------------------------*/

STM32-HAL库04-PWM输出

第五步-时钟配置
STM32-HAL库04-PWM输出
第六步-文件配置
STM32-HAL库04-PWM输出
STM32-HAL库04-PWM输出
第七步-程序编写

  1. 打开MDK5
  2. 烧录程序设置:魔术棒-DEBUG(选择STlink)-Settings-Flash Download-勾选Reset and run
    STM32-HAL库04-PWM输出
  3. 实现输出500HZ的PWM波
    在main.c中添加如下程序:
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);

其中主函数具体如下:

int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */
  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();
  MX_TIM2_Init();
  /* USER CODE BEGIN 2 */
	HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);
  /* USER CODE END 2 */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}
  1. 实现修改参数输出目标频率的PWM波

通过修改参数PSC或ARR可以改变PWM波的频率:目标5000HZ,改ARR,PSC不变

__HAL_TIM_SET_AUTORELOAD(&htim2, 199);						//可以改变arr以改变频率

通过修改参数Pluse可以改变PWM波的占空比:目标为40%

__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_1, 80); //修改占空比比较值,一直保持占空比50%	

其中主函数如下:文章来源地址https://www.toymoban.com/news/detail-400982.html

int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */
  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();
  MX_TIM2_Init();
  /* USER CODE BEGIN 2 */
	HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);
	HAL_Delay(500);
	__HAL_TIM_SET_AUTORELOAD(&htim2, 199);						//可以改变arr以改变频率
	__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_1, 80); //修改占空比比较值,一直保持占空比50%	
  /* USER CODE END 2 */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

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

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

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

相关文章

  • 用STM32CubeMX配置输出PWM信号控制多路舵机(HAL)

    (1)编程平台:Keil5 (2)CubeMX (1)本此使用最小核心板STM32F103C8T6为例 (2)一个舵机:SG90或者MG996等均可 (3)ST-link 下载器 (4)杜邦线若干         舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制脉冲部分,总间隔为2ms。以180度角度

    2023年04月09日
    浏览(32)
  • STM32-HAL库08-TIM的输出比较模式(输出PWM的另一种方式)

    STM32F103C6T6最小系统板 STM32CUBEMX(HAL库软件) MDK5 示波器或者逻辑分析仪 通过定时器TIM的输出比较模式得到预定频率与占空比的PWM波形;其中定时器输出比较模式与PWM模式的区别在于!!! PWM模式在同一个TIM下所有输出口的频率一致不能单独控制单个的频率 ,而输出比较模式

    2024年02月03日
    浏览(46)
  • STM32 HAL库 Timer(定时器)+DMA输出PWM底层配置过程学习

    本文使用的芯片型号是STM32G030,写本文的目前是想记录学习下Timer借助DMA生成可变占空比PWM时的底层配置过程。 使用TIM1,配置就只改了图上的配置,系统时钟用的16M,分频选择15(16-1),自动重装载寄存器ARR选择999(1000-1),那么生成的就是1kHz的PWM,这里为什么要减1,因为这俩是

    2024年04月09日
    浏览(55)
  • STM32 HAL库 通用定时器介绍及相关应用例程 定时器中断 输出PWM (点亮LED呼吸灯、输出PWM、输入捕获) CubeMX

    (部分图引自于ATK) 前情提要(基本定时器) 点此进入 通用定时器类别 通用定时器和基本定时器相比大致的工作方式是相似的,不过通用定时器比基本定时器多了一些很好用的功能,比如: 外部输入捕获 输出比较 输出PWM 时钟源 CubeMX为我们提供了配置时钟的非常方便的工

    2024年04月15日
    浏览(74)
  • STM32 HAL库 STM32CubeMX -- PWM(呼吸灯)

    PWM (Pulse Width Modulation)就是对外输出脉宽(即占空比)可调的方波信号,简称脉宽调制; 信号频率由自动重装寄存器ARR 的值决定,占空比由比较寄存器CCR 的值决定。 PWM模式1 : 在向上计数时 ,一旦TIMx_CNTTIMx_CCR1时通道1为有效电平,否则为无效电平; 在向下计数时 ,一旦

    2024年02月01日
    浏览(45)
  • STM32 互补PWM 带死区 HAL

      DT_time=DT_data/F DT_time:死区时间 DT_data:写入到单片机里的值 F:定时器主频 例如:Timer1主频64MHz,死区时间1us 1us=DT_data/64M DT_data=64 将64写入sBreakDeadTimeConfig.DeadTime即可将死区设置为1us  

    2024年02月15日
    浏览(35)
  • 【STM32】HAL库配置PWM功能

    在STM32中HAL库使用PWM功能需要配置什么函数 HAL_TIM_PWM_Init() :初始化PWM定时器。 HAL_TIM_PWM_ConfigChannel() :配置PWM输出通道的参数,如通道号、极性、占空比等。 HAL_TIM_PWM_Start() :开始PWM输出。 HAL_TIM_PWM_Stop() :停止PWM输出。 同时,还需要配置GPIO引脚的功能,将其配置为对应的

    2024年02月05日
    浏览(33)
  • STM32 HAL 检测PWM频率/占空比

    配置的系统时钟是100M,Timer的时钟也是100M Timer 的频率为:100M 分频 1000 = 0.1MHz 也就是定时器 每10us 计一个数 打开TIM4_CH2引脚中断 在 main.c 中开启中断 TIM4_CH2引脚中断回调 占空比%: TempPIpre *100 / TempPIpul 周期T: TempPIpul * 10us 频率f: 1 / T

    2024年02月13日
    浏览(32)
  • stm32HAL库学习笔记----pwm驱动舵机

    目录 一、目标 二、准备 三、原理 四、cubemx 五、程序 实现stm32驱动舵机旋转0°,45°,90°,135°,180°等角度。 stm32f103(c8t6),舵机(SG90 9g),杜邦线 接线:舵机红线-----------5V(mcu)            舵机棕线-----------GND(mcu)            舵机黄线-----------PA1(视情况而定

    2023年04月26日
    浏览(30)
  • STM32CubeIDE---HAL库PWM使用速记

    理论分析:HAL库函数之呼吸灯——PWM波 - 简书 (jianshu.com) 预分频系数 PSC 自动重装载值 ARR 捕获/比较寄存器值 CCR 频率计算:定时器频率 / (PSC+1) / (ARR+1) 占空比计算:CCRx / ARR 此外有效电平是可以设置的。 HAL_TIM_PWM_Start要放在定时器结构体初始化后、PWM设置前。 __HAL_TIM_SET_COM

    2024年02月15日
    浏览(29)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包