OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 17166|回复: 44

通用定时器主从模式产生准确脉冲个数

[复制链接]

8

主题

47

帖子

0

精华

高级会员

Rank: 4

积分
649
金钱
649
注册时间
2015-11-7
在线时间
192 小时
发表于 2016-2-1 17:46:52 | 显示全部楼层 |阅读模式
int main()
{         
        TIM_OPMGATE_Init();
        while(1)
        {       
                Motor_Control(500,10); //500us,10个脉冲
        }
}

void TIM_OPMGATE_Init()
{       
        TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
        TIM_OCInitTypeDef TIM_OCInitStruct;
        GPIO_InitTypeDef  GPIO_InitStruct;
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC, ENABLE);//使能PC,PA端口时钟
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2|RCC_APB1Periph_TIM3,ENABLE);//使能定时器23的时钟
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//使能复用IO时钟       
        GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE);       
        GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
        GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;                       
        GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA,&GPIO_InitStruct);       
        GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6;
        GPIO_Init(GPIOC,&GPIO_InitStruct);
       
       //TIM2工作在单脉冲下
        TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;//向上计数模式
        TIM_TimeBaseInitStruct.TIM_Prescaler = 7199;//预分频值,每100us计数一次
        TIM_TimeBaseInitStruct.TIM_Period = 99; //重装值,决定单脉冲周期
        TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStruct);       
       
        TIM_SelectOnePulseMode(TIM2,TIM_OPMode_Single);//设置TIM2在单脉冲模式,且是单一的脉冲,在下一个更新事件停止          
        TIM_SelectOutputTrigger(TIM2,TIM_TRGOSource_OC1Ref); //OC1REF signal is used as the trigger output (TRGO).单一模式不需要设置
       
        TIM_OC1PreloadConfig(TIM2,TIM_OCPreload_Enable);//使能定时器2的通道1预装载寄存器
        TIM_OCInitStruct.TIM_OCMode = TIM_OCMode_PWM2;//在向上计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为有效电平
        TIM_OCInitStruct.TIM_OutputState = TIM_OutputState_Enable;//OC1输出使能
        TIM_OCInitStruct.TIM_OCPolarity = TIM_OCPolarity_High;//有效电平为高
        TIM_OCInitStruct.TIM_Pulse = 20;//比较捕获1的预装载值,决定单脉冲占空比,这个20就是低电平延续的来源
        TIM_OC1Init(TIM2,&TIM_OCInitStruct);               
        TIM_Cmd(TIM2,DISABLE); //Enable the TIM Counter
       
        //TIM3工作在从模式门控模式下
        TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;//向上计数模式
        TIM_TimeBaseInitStruct.TIM_Prescaler = 719;//预分频值,10us计数一次
        TIM_TimeBaseInitStruct.TIM_Period = 29;//重装值,决定PWM周期
        TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStruct);
       
        TIM_SelectSlaveMode(TIM3, TIM_SlaveMode_Gated);//TIM3为门控模式       
        TIM_SelectMasterSlaveMode(TIM3,TIM_MasterSlaveMode_Enable);//使能TIM3的主从模式       
        TIM_SelectInputTrigger(TIM3,TIM_TS_ITR1);//内部触发,TIM_TS_ITR1对应TIM2

        TIM_OC1PreloadConfig(TIM3,TIM_OCPreload_Enable);//使能定时器3的通道1预装载寄存器
        TIM_OCInitStruct.TIM_OCMode = TIM_OCMode_PWM2;//在向上计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为有效电平
        TIM_OCInitStruct.TIM_OutputState = TIM_OutputState_Enable;//OC1输出使能
        TIM_OCInitStruct.TIM_OCPolarity = TIM_OCPolarity_High;//有效电平为高
        TIM_OCInitStruct.TIM_Pulse = 15;//比较捕获1的预装载值,占空比为50%
        TIM_OC1Init(TIM3,&TIM_OCInitStruct);
        TIM_Cmd(TIM3,ENABLE);//使能TIM3
}

/*********************************************************
名称:Motor_Control(u16 cycle, u16 pulse_num)
说明:生成指定个数脉冲,每个脉冲周期为cycle毫秒,脉冲个数生成的个数
      和单脉冲高电平时间有关系,脉冲个数就由高电平时间来确定
参数cycle:为TIM3一个脉冲周期,单位(us)
参数pulse_num:为脉冲个数,决定步进电机步数
返回值:无
*********************************************************/
void Motor_Control(u16 cycle, u16 pulse_num)
{
  u16 arr3 = 0;
        u32 time = 0;
  if(pulse_num)
  {
                time = cycle * pulse_num / 100;//预分频为720,100us计数一次
                arr3 = cycle / 10;             //预分频为72,10us计数一次
                TIM_SetAutoreload(TIM2, time + 19);//低电平周期加高电平周期
                TIM_SetAutoreload(TIM3, arr3 - 1);
                TIM_SetCompare1(TIM3,arr3 / 2); //设置PWM占空比为50%
                TIM_Cmd(TIM2,ENABLE);//使能TIM2
  }
}

指定脉冲个数.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

47

帖子

0

精华

高级会员

Rank: 4

积分
649
金钱
649
注册时间
2015-11-7
在线时间
192 小时
 楼主| 发表于 2017-8-8 11:25:08 | 显示全部楼层
主从模式.zip (320.24 KB, 下载次数: 968)
回复 支持 反对

使用道具 举报

8

主题

47

帖子

0

精华

高级会员

Rank: 4

积分
649
金钱
649
注册时间
2015-11-7
在线时间
192 小时
 楼主| 发表于 2017-7-20 11:02:46 | 显示全部楼层
Mashimaro 发表于 2017-7-20 10:27
楼主这样应该算下降沿触发吧?那上升沿触发该怎么改呢

单脉冲的有效电平触发
回复 支持 1 反对 0

使用道具 举报

8

主题

47

帖子

0

精华

高级会员

Rank: 4

积分
649
金钱
649
注册时间
2015-11-7
在线时间
192 小时
 楼主| 发表于 2017-8-8 11:23:23 | 显示全部楼层
只等下雪 发表于 2017-8-8 11:12
很感谢楼主的解答,以及给我发了工程。
我根据你的代码,自己修改了俩程序,一个和你的基本一模一样,仿 ...

上面的回复有内部触发连接图,触发连接不是随便设置的
回复 支持 1 反对 0

使用道具 举报

4

主题

35

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
351
金钱
351
注册时间
2013-4-23
在线时间
98 小时
发表于 2016-2-2 23:03:09 | 显示全部楼层
请教,一直没搞明白,这样用法时,PA0和PC6需要连接在一起吗?
回复 支持 反对

使用道具 举报

8

主题

47

帖子

0

精华

高级会员

Rank: 4

积分
649
金钱
649
注册时间
2015-11-7
在线时间
192 小时
 楼主| 发表于 2016-2-2 23:29:51 | 显示全部楼层
dalianlwd 发表于 2016-2-2 23:03
请教,一直没搞明白,这样用法时,PA0和PC6需要连接在一起吗?

不要,实际用到的只是PC6产生的脉冲
回复 支持 反对

使用道具 举报

53

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
433
金钱
433
注册时间
2013-4-10
在线时间
83 小时
发表于 2016-2-3 11:34:08 | 显示全部楼层
制定脉冲个数和频率有了,有点不满足啊,呵呵,能否再传授一下脉冲频率的加减速时间怎么处理!
回复 支持 反对

使用道具 举报

8

主题

47

帖子

0

精华

高级会员

Rank: 4

积分
649
金钱
649
注册时间
2015-11-7
在线时间
192 小时
 楼主| 发表于 2016-2-3 12:44:41 | 显示全部楼层
gaoxiaohu110 发表于 2016-2-3 11:34
制定脉冲个数和频率有了,有点不满足啊,呵呵,能否再传授一下脉冲频率的加减速时间怎么处理!

脉冲频率的加减速时间什么意思
回复 支持 反对

使用道具 举报

53

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
433
金钱
433
注册时间
2013-4-10
在线时间
83 小时
发表于 2016-2-3 19:58:36 | 显示全部楼层
星迹 发表于 2016-2-3 12:44
脉冲频率的加减速时间什么意思

频率上升 和下降 和下降 时间  可以自由设置,假如没有这个缓冲时间,应用在伺服系统上,会对机械的冲击很大。有了这个加减速时间,会缓起缓停,对机械冲击会减小很多。不知道这么解释能明白否!
就是频率从0到最大频率的加速,和  从最大频率到0的减速!
打铁还需自身硬@ing
回复 支持 反对

使用道具 举报

8

主题

47

帖子

0

精华

高级会员

Rank: 4

积分
649
金钱
649
注册时间
2015-11-7
在线时间
192 小时
 楼主| 发表于 2016-2-4 10:01:43 | 显示全部楼层
星迹 发表于 2016-2-3 12:44
脉冲频率的加减速时间什么意思

没学得那么深,还请多多指教
回复 支持 反对

使用道具 举报

82

主题

194

帖子

0

精华

高级会员

Rank: 4

积分
596
金钱
596
注册时间
2015-10-16
在线时间
72 小时
发表于 2016-5-15 16:53:29 | 显示全部楼层
本帖最后由 liuxiangyong 于 2016-5-15 16:57 编辑

请教,这里TIM_SelectInputTrigger(TIM3,TIM_TS_ITR1);为什么不可以是TIM_TS_ITR0,我看了总共有4个,那种在用时怎么确定选TIM_TS_ITR0还1还是2,3呢?还有为什么我用你的程序PC6可以看到波形,PA0没有,你看下这样算正确吗
捕获.PNG
回复 支持 反对

使用道具 举报

82

主题

194

帖子

0

精华

高级会员

Rank: 4

积分
596
金钱
596
注册时间
2015-10-16
在线时间
72 小时
发表于 2016-5-15 17:18:33 | 显示全部楼层
请问下,这里定时器2是不是只能使用TIM_CH1_ETR这个特定通道?如果我用TIM_CH2不可以吗,仿真没有波形输出?
回复 支持 反对

使用道具 举报

1

主题

13

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2016-4-27
在线时间
10 小时
发表于 2016-7-15 20:43:52 | 显示全部楼层
楼主,能不能发一份完整的程序,最近需要用,谢谢了。929222083@qq.com
回复 支持 反对

使用道具 举报

0

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2015-10-15
在线时间
39 小时
发表于 2016-12-7 03:44:26 | 显示全部楼层
终于见到一个比较详细的程序了,非常感谢,不过用门控主从模式控制起来感觉定时器不怎么够用
回复 支持 反对

使用道具 举报

8

主题

47

帖子

0

精华

高级会员

Rank: 4

积分
649
金钱
649
注册时间
2015-11-7
在线时间
192 小时
 楼主| 发表于 2016-12-7 19:27:51 | 显示全部楼层
liuxiangyong 发表于 2016-5-15 17:18
请问下,这里定时器2是不是只能使用TIM_CH1_ETR这个特定通道?如果我用TIM_CH2不可以吗,仿真没有波形输出 ...

timer.PNG
回复 支持 反对

使用道具 举报

5

主题

11

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2017-1-3
在线时间
4 小时
发表于 2017-3-24 19:00:06 | 显示全部楼层
请教你个问题   单脉冲主从模式使用时,主定时器用单脉冲模式不需要其他的信号触发就能输出吗??
回复 支持 反对

使用道具 举报

8

主题

47

帖子

0

精华

高级会员

Rank: 4

积分
649
金钱
649
注册时间
2015-11-7
在线时间
192 小时
 楼主| 发表于 2017-5-20 17:08:19 | 显示全部楼层
Xprince 发表于 2017-3-24 19:00
请教你个问题   单脉冲主从模式使用时,主定时器用单脉冲模式不需要其他的信号触发就能输出吗??

单脉冲触发输出
回复 支持 反对

使用道具 举报

6

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2017-6-18
在线时间
26 小时
发表于 2017-6-24 16:16:05 | 显示全部楼层
大虾 请教个问题,我的main函数有个if判断语句,满足条件我就输出一个脉冲波(时间可以自己设定),定时器单脉冲模式可以做到吗?应该怎么办呢
回复 支持 反对

使用道具 举报

8

主题

47

帖子

0

精华

高级会员

Rank: 4

积分
649
金钱
649
注册时间
2015-11-7
在线时间
192 小时
 楼主| 发表于 2017-6-24 22:05:29 | 显示全部楼层
Rainday 发表于 2017-6-24 16:16
大虾 请教个问题,我的main函数有个if判断语句,满足条件我就输出一个脉冲波(时间可以自己设定),定时器 ...

主函数改参数不就行了吗
回复 支持 反对

使用道具 举报

6

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2017-6-18
在线时间
26 小时
发表于 2017-6-25 16:28:27 | 显示全部楼层
星迹 发表于 2017-6-24 22:05
主函数改参数不就行了吗

我不用主从定时器模式只需要一个定时器,参考你的代码,把TIM3给删去了TIM2按你的代码配置单脉冲模式,开启定时器输出是连续的PWM波
回复 支持 反对

使用道具 举报

6

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-11-7
在线时间
41 小时
发表于 2017-6-27 15:19:00 | 显示全部楼层
楼主能交流一下吗?参考你的代码修改的程序但有点问题
回复 支持 反对

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2017-6-27 16:01:20 | 显示全部楼层
本帖最后由 275891381 于 2017-6-27 16:08 编辑
liuxiangyong 发表于 2016-5-15 16:53
请教,这里TIM_SelectInputTrigger(TIM3,TIM_TS_ITR1);为什么不可以是TIM_TS_ITR0,我看了总共有4个,那种 ...

主定时器:输出通道随便选择  用这个函数TIM_SelectOutputTrigger(TIM2,TIM_TRGOSource_OC2Ref);开启
从定时器:响应通道随便选择 ,只要初始化了就会工作,4个通道都初始化就会4个通道都有反应
映射隧道:通过这个函数选择触发隧道  TIM_SelectInputTrigger(TIM3,TIM_TS_ITR1)
111.png

回复 支持 反对

使用道具 举报

5

主题

10

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2017-7-20
在线时间
12 小时
发表于 2017-7-20 10:27:59 | 显示全部楼层
楼主这样应该算下降沿触发吧?那上升沿触发该怎么改呢
回复 支持 反对

使用道具 举报

5

主题

10

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2017-7-20
在线时间
12 小时
发表于 2017-7-20 15:32:41 | 显示全部楼层
星迹 发表于 2017-7-20 11:02
单脉冲的有效电平触发

为什么TIM3工作在pwm1模式时输出看不到波形呢
回复 支持 反对

使用道具 举报

7

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
165
金钱
165
注册时间
2016-3-1
在线时间
42 小时
发表于 2017-8-6 15:43:34 | 显示全部楼层
单脉冲触发输出 主定时器的单脉冲没有看到单脉冲在那输入(触发)啊是软件自己设置的吗 还有我如果用四路pwm那不是得用四个定时器
回复 支持 反对

使用道具 举报

8

主题

47

帖子

0

精华

高级会员

Rank: 4

积分
649
金钱
649
注册时间
2015-11-7
在线时间
192 小时
 楼主| 发表于 2017-8-6 20:54:08 | 显示全部楼层
小卒0x9527 发表于 2017-8-6 15:43
单脉冲触发输出 主定时器的单脉冲没有看到单脉冲在那输入(触发)啊是软件自己设置的吗 还有我如果用四路pw ...

定时器2使能,你可以用高级定时器啊
回复 支持 反对

使用道具 举报

2

主题

15

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2017-7-28
在线时间
12 小时
发表于 2017-8-7 14:29:16 | 显示全部楼层
楼主您好,我用你的代码,只有PA0有波形,PC6没反应,不知道您是否可以发个工程啊?1562019770@qq.com   
另外,我是新手,想请教个问题,1.   就是单脉冲输出和一路的PWM 有什么区别吗?   2. 按照您的代码,波形会一直输出下去吧,怎么输出500个脉冲就停下来呢楼主好人,提前感谢您。

波形.png
回复 支持 反对

使用道具 举报

8

主题

47

帖子

0

精华

高级会员

Rank: 4

积分
649
金钱
649
注册时间
2015-11-7
在线时间
192 小时
 楼主| 发表于 2017-8-7 18:10:40 | 显示全部楼层
只等下雪 发表于 2017-8-7 14:29
楼主您好,我用你的代码,只有PA0有波形,PC6没反应,不知道您是否可以发个工程啊?   
另外,我是新手, ...

单单一路pwm不能控制脉冲个数,单脉冲可以控制从模式下脉冲个数。Motor_Control(500,10);执行一次就会输出500脉冲,不执行就不会输出。
回复 支持 反对

使用道具 举报

2

主题

15

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2017-7-28
在线时间
12 小时
发表于 2017-8-8 11:12:08 | 显示全部楼层
星迹 发表于 2017-8-7 18:10
单单一路pwm不能控制脉冲个数,单脉冲可以控制从模式下脉冲个数。Motor_Control(500,10);执行一次就会输 ...

很感谢楼主的解答,以及给我发了工程。
我根据你的代码,自己修改了俩程序,一个和你的基本一模一样,仿真成功了,另一个把TIM2和TIM3主从模式换了一下,就怎么都不成功了。我也找不到问题。我把工程都发您邮箱了,希望有空的时候指导一下。谢谢。辛苦。
回复 支持 反对

使用道具 举报

8

主题

47

帖子

0

精华

高级会员

Rank: 4

积分
649
金钱
649
注册时间
2015-11-7
在线时间
192 小时
 楼主| 发表于 2017-8-8 11:29:10 | 显示全部楼层
本帖最后由 星迹 于 2017-8-8 11:32 编辑

发个图片总是失败,不发了吧
回复 支持 反对

使用道具 举报

2

主题

15

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2017-7-28
在线时间
12 小时
发表于 2017-8-8 13:39:22 | 显示全部楼层
星迹 发表于 2017-8-8 11:23
上面的回复有内部触发连接图,触发连接不是随便设置的

嗯嗯。我修改代码的时候已经注意到了,当TIM3作为单脉冲,TIM2输出pwm波的时候,采用TIM_TS_ITR2触发。我来回对比了很多遍,我感觉都需要配置的都改了,可是总不出波形。
回复 支持 反对

使用道具 举报

8

主题

47

帖子

0

精华

高级会员

Rank: 4

积分
649
金钱
649
注册时间
2015-11-7
在线时间
192 小时
 楼主| 发表于 2017-8-8 15:58:07 | 显示全部楼层
只等下雪 发表于 2017-8-8 13:39
嗯嗯。我修改代码的时候已经注意到了,当TIM3作为单脉冲,TIM2输出pwm波的时候,采用TIM_TS_ITR2触发。我 ...

那你再看看吧,我好久没搞这个了,我的那个帖子高级定时器可以用
回复 支持 反对

使用道具 举报

2

主题

15

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2017-7-28
在线时间
12 小时
发表于 2017-8-8 16:01:59 | 显示全部楼层
星迹 发表于 2017-8-8 15:58
那你再看看吧,我好久没搞这个了,我的那个帖子高级定时器可以用

嗯嗯。谢谢了
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2017-8-9
在线时间
0 小时
发表于 2017-8-9 23:52:07 | 显示全部楼层
只等下雪 发表于 2017-8-7 14:29
楼主您好,我用你的代码,只有PA0有波形,PC6没反应,不知道您是否可以发个工程啊?   
另外,我是新手, ...

我用的是STM32F103C8T 没有PC6引脚,然后自己改了引脚发现只有PA0 有输出,另外一个引脚没有输出PWM波,想请教下是什么原因?我也顺便想求个原工程 710759296@qq.com
回复 支持 反对

使用道具 举报

2

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2017-7-12
在线时间
29 小时
发表于 2017-8-11 09:40:27 | 显示全部楼层

大神,logic analyzer怎么设置才能出现两个波形?我只实现了一个波形。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2017-8-28
在线时间
0 小时
发表于 2017-8-30 15:13:07 | 显示全部楼层
Rainday 发表于 2017-6-24 16:16
大虾 请教个问题,我的main函数有个if判断语句,满足条件我就输出一个脉冲波(时间可以自己设定),定时器 ...

你好,请问你问的这个问题解决了吗?请教下怎么解决的?
回复 支持 反对

使用道具 举报

6

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2017-6-18
在线时间
26 小时
发表于 2017-9-1 11:29:02 | 显示全部楼层
李婷 发表于 2017-8-30 15:13
你好,请问你问的这个问题解决了吗?请教下怎么解决的?

http://www.openedv.com/forum.php ... mp;page=1#pid582886
参考这个,他给我的那个程序确实是单次脉冲的配置,需要多少个自己改
回复 支持 反对

使用道具 举报

6

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
297
金钱
297
注册时间
2017-6-10
在线时间
39 小时
发表于 2017-10-18 13:21:19 | 显示全部楼层
可以的,挺实用的示例性代码
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2017-9-12
在线时间
5 小时
发表于 2017-10-29 00:21:10 | 显示全部楼层
你好大哥,我是一名在校本科生,想请教一下为什么把从定时器单个脉冲周期改大了以后会有如图所示的问题啊,实在是不太懂
QQ截图20171029001808.png
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2017-11-7
在线时间
17 小时
发表于 2017-11-7 15:55:13 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2018-5-26
在线时间
0 小时
发表于 2018-5-26 11:56:05 | 显示全部楼层
楼主好。我在F407上配置TIM3为门控模式没有效果,仍是连续的PWM波,定时器内部主从关系配置正确,是不是与F1的配置有区别,需要怎么修改
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2019-11-8
在线时间
15 小时
发表于 2020-4-22 21:54:51 | 显示全部楼层
                time = cycle * pulse_num / 100;//预分频为7200,100us计数一次
                arr3 = cycle / 10;             //预分频为720,10us计数一次
除以100
除以10
没看懂
回复 支持 反对

使用道具 举报

4

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2017-11-26
在线时间
32 小时
发表于 2020-8-23 10:07:52 | 显示全部楼层
你好,这个可以实现单脉冲发送, 脉冲宽度1us,?
能不能发一份完整的程序,最近需要用,谢谢了。1143620194@qq.com
回复 支持 反对

使用道具 举报

4

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2017-11-26
在线时间
32 小时
发表于 2020-8-23 10:56:36 | 显示全部楼层
Rainday 发表于 2017-9-1 11:29
http://www.openedv.com/forum.php?mod=viewthread&tid=104491&page=1#pid582886
参考这个,他给我的那 ...

你好,我刚刚接触定时器,看的不是太懂,您能否把你的工程发给我看看,谢谢
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2018-3-31
在线时间
7 小时
发表于 2021-8-1 14:13:32 | 显示全部楼层
主从程序里,哪一个脚是PWM输出口,PC6和PA0示波器打了都没有波形啊
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-1 02:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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