野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10940|回复: 4

步进电机驱动器代码定时器初始化

[复制链接]
发表于 2017-4-19 09:14:23 | 显示全部楼层 |阅读模式
火哥的步进电机驱动器代码中,初始化定时器产生PWM脉冲信号,为什么要先按默认值用TIM_TimeBaseStructInit(&TIM_TimeBaseStructure)初始化一遍,不可以先设置好,周期和分频因子这些参数后再初始化吗?
代码如下:
    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
    TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
    // 自动重装载寄存器的值,累计TIM_Period+1个周期后产生一个更新或者中断
    TIM_TimeBaseStructure.TIM_Period=9;      //设置输出的PWM脉冲为100KHz
    // 驱动CNT计数器的时钟 = Fck_int/(psc+1)
    TIM_TimeBaseStructure.TIM_Prescaler= 71;     
    // 时钟分频因子 ,配置死区时间时需要用到
    TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;        
    // 计数器计数模式,设置为向上计数
    TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;        
    // 重复计数器的值,最大值为255
    //TIM_TimeBaseStructure.TIM_RepetitionCounter=0;   
    // 初始化定时器
    TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);


回复

使用道具 举报

 楼主| 发表于 2017-4-19 09:14:52 | 显示全部楼层
还是想不明白@fire @flyleaf
回复 支持 反对

使用道具 举报

发表于 2017-4-19 09:26:19 | 显示全部楼层
不用那个函数初始化一下,有时有些结构体成员你没有赋值,那么可能就会导致错误,用那个函数可以给结构体赋予默认值
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-19 10:25:50 | 显示全部楼层
flyleaf 发表于 2017-4-19 09:26
不用那个函数初始化一下,有时有些结构体成员你没有赋值,那么可能就会导致错误,用那个函数可以给结构体赋 ...

明白了,谢谢
回复 支持 反对

使用道具 举报

发表于 2017-10-8 11:24:11 | 显示全部楼层
能不能看看你的代码?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 11:31 , Processed in 0.043397 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表