标题:
(成功)STM32 PWM输出实验 占空比和频率实时可调
[打印本页]
作者:
WBxykl
时间:
2017-7-3 20:17
标题:
(成功)STM32 PWM输出实验 占空比和频率实时可调
输出占空比和频率实时可调的PWM波!
实验目的:
学习定时器的PWM功能
硬件资源:
1,DS0(连接在PB5)
2,定时器3(TIM3),使用TIM3的通道2(CH2),开启部分重映射,将TIM3_CH2输出到PB5.
从而实现PWM输出控制DS0亮度.
实验现象:
本实验,DS0由暗到亮,再由亮到暗,再由暗到亮,依次循环.
注意事项:
无.
单片机源程序如下:
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "timer.h"
int main(void)
{
u16 pwmval=6429; // 7143*90%=6428.7
u8 flag=1;
delay_init(); //延时函数初始化
//NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
//uart_init(115200); //串口初始化为115200
//LED_Init(); //LED端口初始化
TIM3_PWM_Init(7143,71);//预分频72:72000000÷(71+1)=1000000 自动重装载值由140Hz频率计算得到:1000000÷140=7142.86
while(1)
{
if(flag==0)
{
TIM_SetCompare2(TIM3,pwmval);
delay_ms(500); //90%的占空比延时0.5秒
flag=1;
}
if(flag==1)
{
if(pwmval>714) // 7143*10%=714.3
{
pwmval=pwmval-27; // 占空比变化范围:7143*0.8=5714.4
// 变化时间段的时间分割1500ms÷7ms=214.285(段)
// 每个计数周期对应占空比变化基数
TIM_SetCompare2(TIM3,pwmval);
delay_ms(7); // 频率140HZ等于周期0.007秒
}
if(pwmval<714)
{
pwmval=6429;
flag=0;
}
}
}
}
复制代码
所有资料51hei提供下载:
(成功) PWM输出实验 2017.4.20.7z
(185.82 KB, 下载次数: 389)
2022-1-11 06:41 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
ahai
时间:
2018-5-18 22:37
学习中,感谢分享!
作者:
justchen
时间:
2019-10-23 13:38
学习,看看.感谢分享!
作者:
Armind
时间:
2019-10-23 22:36
学习中,感谢分享
作者:
Armind
时间:
2019-10-23 22:36
谢谢楼主分享
作者:
狗肉天涯
时间:
2019-11-5 15:52
感谢楼主分享
作者:
whwitp
时间:
2020-4-22 14:03
学习PWM输出实验 占空比和频率实时可调,看看.感谢分享!
作者:
goyhuan
时间:
2020-12-11 17:07
频率调节没有吧!
作者:
cyrs
时间:
2021-1-27 18:05
STM32 PWM输出实验 占空比和频率实时可调 是不是电压可调呢
作者:
GlenXu
时间:
2021-2-22 21:13
感谢楼主分享,必定认真学习!
作者:
yuyuff
时间:
2022-1-10 22:02
什么东西,不能用
作者:
liuxiaolin20000
时间:
2022-1-15 22:08
这个和正点原子代码差不多啊
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1