基于STM32进行PWM和DAC练习

本文详细介绍了基于STM32的PWM脉冲宽度调制和DAC数字模拟转换实践。首先,阐述了PWM的基本概念,并展示了如何在STM32F103开发板上实现不同占空比的PWM输出。接着,讲解了DAC的功能,通过实例演示如何生成2kHz正弦波形,并解决输出功率小的问题。最后,通过将数字音频文件转换为模拟信号输出,实现了音频播放功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、PWM脉冲宽度调制波的输出

1.PWM简介

PWM (Pulse Width Modulation) 脉冲宽度调制,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控 制的一种非常有效的技术,其控制简单、灵活和动态响应好等优点而成 为电力电子技术最广泛应用的控制方式。

简单来说,PWM波形就是对外输出脉宽(即占空比)可调的方波信号,我们可以调整它的占空比来得到不同的信号。

2.硬件方面

利用野火STM32F103指南者开发板进行实验,利用示波器进行观察,示波器的探头接在开发板PA8或者PB13上。

3.软件代码

利用野火大学堂提供的代码进行改编
在这里插入图片描述使用TIM—通用定时器的代码进行实验

部分主要代码:

/*--------------------输出比较结构体初始化-------------------*/	
	// 占空比配置
	uint16_t CCR1_Val = 5;
	uint16_t CCR2_Val = 4;
	uint16_t CCR3_Val = 3;
	uint16_t CCR4_Val = 2;
	
	TIM_OCInitTypeDef  TIM_OCInitStructure;
	// 配置为PWM模式1
	TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
	// 输出使能
	TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
	// 输出通道电平极性配置	
	TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值