本帖最后由 nashui_sx 于 2019-7-15 09:06 编辑
修正一个错误,输出比较的时候,两个定时器共用CH1_Flag造成干扰,前面分别加上定时器标记 TIM1_CH1_Flag,别的还未发现错误,已经重新上传
//每个功能都在
stm32f103zet6上测试通过
// 1普通定时 2输入捕获 3输出比较 4PWM 5单脉冲输出
//TIMx_Time_Init TIMx_InputCapture_Init TIMx_OutputCompare_Init TIMx_Pwm_Init TIMx_OnePulseOutput_Init
//基本定时器TIM6,7只有1定时的功能,剩余的4个功能分别用高级TIM1 通用TIM2进行测试,便于大家移植
在time.h 中切换功能
#define TIMx_Time_Init_Test 0
#define TIMx_InputCapture_Init_Test 0
#define TIMx_OutputCompare_Init_Test 0
#define TIMx_Pwm_Init_Test 0
#define TIMx_OnePulseOutput_Init_Test 0
定时器5种模式实验.rar
(314.4 KB, 下载次数: 1166)
4 天前 上传
点击文件名下载附件
具体细节参考程序内部说明
例如输出比较可以产生特殊波形
增加两个定时器功能:6标志量触发单脉冲输出 7定时器主从模式产生准确脉冲个数
添加2功能 定时器5种模式实验.rar
(315.12 KB, 下载次数: 1104)
4 天前 上传
点击文件名下载附件
1普通定时 : 基本定时
2输入捕获 :一个通道捕获高电平,测量占空比,一个通道测量两个上升沿间隔测量周期
3输出比较 :一个定时器可以产生4中周期不同占空比的pwm,还可以翻转任意io实现任意引脚输出pwm
(还可以实现一个定时器实现4种基本定时,大家自己扩展吧)
4PWM :一个定时器产生一种周期的4种占空比pwm
5单脉冲输出:通道2检测到上升沿后,通道1延时设定时间后输出一个设定时间的高电平脉冲
6标志量触发单脉冲输出
7定时器主从模式产生准确脉冲个数
8 TIM计数模式c8t6做的
TIM 计数模式.rar
(3.28 MB, 下载次数: 675)
2017-12-5 20:12 上传
点击文件名下载附件
TIM1在43楼
单脉冲输出的现象:
试了一下,似乎是板子的问题,换了一块可以了
if(count == 10000)
{
Update_Flag=0;
TIM_SetCounter(TIM2, 0);
}
这个是添加的代码
为啥用清零记住上次的,这次的减去上次的不就是变化量了
真要10000重新计数 你把Update_TIM_Period 改成10000 就是计数10000次进中断了
删除Update_Flag++;//标记溢出次数 不需要溢出处理了反正10000就清零
Get_MaiChong
改为
u32 Get_MaiChong(void)
{
return TIM_GetCounter(TIM2);
}
哦哦 谢谢 大神帮助
一周热门 更多>