STM32高级定时器用于普通定时,定时周期变长
来源:互联网 发布:淘宝开放平台开发者 编辑:程序博客网 时间:2024/06/14 19:24
最近在用stm32定时器控制步进电机,由于普通定时器不够用,只能把TIM1当普通定时器用,我随手就把普通定时器的代码搬过去。
void cs_Timer_Init(void) //TIM1 us级 { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; /* Time base configuration */ TIM_TimeBaseStructure.TIM_Period = 1000; TIM_TimeBaseStructure.TIM_Prescaler = 71; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); TIM_ClearITPendingBit(TIM1, TIM_IT_Update); TIM_ITConfig(TIM1, TIM_IT_Update , ENABLE); }编译下载后,发现步进电机转的很慢,和原先预计的不一样,第一反应是怀疑拷贝过来的代码有问题,核对了一边发现没问题,用逻辑分析仪测试了,发现真是定时器慢了,在检查代码,发现 TIM_TimeBaseInitTypeDef 结构体中的一个参数 TIM_RepetitionCounter 一直没用,查查资料,这个值是计数值满溢出几次才进入中断,就试着把这个值也初始化为0,发现步进电机变快了,测量波形,定时器OK。
void cs_Timer_Init(void) //TIM1 us级 { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; /* Time base configuration */ TIM_TimeBaseStructure.TIM_Period = 1000; TIM_TimeBaseStructure.TIM_Prescaler = 71; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_RepetitionCounter = 0; //修改此处 TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); TIM_ClearITPendingBit(TIM1, TIM_IT_Update); TIM_ITConfig(TIM1, TIM_IT_Update , ENABLE); }
阅读全文
0 0
- STM32高级定时器用于普通定时,定时周期变长
- STM32高级定时器用于普通定时,定时周期变长
- STM32学习之普通定时器是否能定时1us?
- STM32定时器定时计算公式
- STM32-通用定时器基本定时功能
- STM32 定时器 定时时间的计算
- STM32 定时器 定时时间的计算
- STM32--通用定时器基本定时功能
- STM32通用定时器---基本定时学习
- STM32 定时器 定时时间的计算
- STM32 定时器 定时时间的计算
- STM32-通用定时器基本定时功能
- stm32定时器实现60秒定时秒表
- STM32-通用定时器基本定时功能
- stm32 基本定时器最简单定时配置
- STM32 定时器 定时时间的计算
- STM32-通用定时器基本定时功能
- STM32-通用定时器基本定时功能
- java中文乱码解决之道(六)-----javaWeb中的编码解码
- 洛谷P2756 飞行员配对方案问题
- 【Python学习之路】My second journey
- MySQL测试题
- ssm整合记录
- STM32高级定时器用于普通定时,定时周期变长
- MonGoDB学习笔记
- 安装scrapy
- Java 使用POI实现Excel表格的导入导出
- 树莓派Android Things物联网开发:树莓派3上手就是这么简单
- leetcode-75-sort colors
- “软链接”和“硬链接”的区别
- 洛谷P1129 [ZJOI2007]矩阵游戏
- 解决微软Edge浏览器和IE浏览器下载无反应的问题