标题:
stm32定时器中断实验-库函数版本源码
[打印本页]
作者:
heaven123
时间:
2018-8-10 10:53
标题:
stm32定时器中断实验-库函数版本源码
本实验将实现如下功能:本实验DS0用来指示程序运行,400ms为一个周期。DS1用于定时器中断取反,指示定时器中断状态,1000ms为一个周期。下载完后,可以看到DS0快闪,DS1慢闪。
stm32单片机源程序如下:
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "timer.h"
extern int flag;
int main(void)
{
u16 led0pwmval=300;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
delay_init(168); //初始化延时函数
LED_Init(); //初始化LED端口
uart_init(115200);
TIM3_Int_Init(5000-1,8400-1); //定时器时钟84M,分频系数8400,所以84M/8400=10Khz的计数频率,计数5000次为500ms
TIM14_PWM_Init(500-1,8400-1); //84M/84=1Mhz的计数频率,重装载值500,所以PWM频率为 1M/500=2Khz
TIM13_PWM_Init(500-1,8400-1);
// while(1)
// {
// TIM14_PWM_Init(500-1,84-1); //84M/84=1Mhz的计数频率,重装载值500,所以PWM频率为 1M/500=2Khz.
// while(1) //实现比较值从0-300递增,到300后从300-0递减,循环
// {
// delay_ms(10);
// led0pwmval--;//dir==1 led0pwmval递增
// if(led0pwmval==0)
// led0pwmval=300;
// TIM_SetCompare1(TIM14,led0pwmval); //修改比较值,修改占空比
// }
// };
while(1)
{
if(flag==0){
TIM_SetCompare1(TIM14,led0pwmval); //修改比较值,修改占空比
}
else TIM_SetCompare1(TIM14,500); //修改比较值,修改占空比
if(flag==0){
TIM_SetCompare1(TIM13,led0pwmval); //修改比较值,修改占空比
}
else TIM_SetCompare1(TIM13,500); //修改比较值,修改占空比
// LED1=!LED1;
// delay_ms(200);
}
}
复制代码
所有资料51hei提供下载:
旋转编码器.rar
(488.25 KB, 下载次数: 17)
2018-8-10 15:57 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1