OpenEdv-开源电子网

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

关于stm32F207输出PWM的问题?

[复制链接]

34

主题

173

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1091
金钱
1091
注册时间
2017-3-10
在线时间
172 小时
发表于 2021-12-22 18:22:21 | 显示全部楼层 |阅读模式
11金钱
stm32F207的TIM1_ETR能输出PWM么?我配置了没有输出怎么回事TIM1_Ch1N有波形
  1. GPIO_InitTypeDef GPIO_InitStructure;
  2.         TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  3.         TIM_OCInitTypeDef  TIM_OCInitStructure;
  4.         TIM_BDTRInitTypeDef TIM_BDTRInitStructure;

  5.         TIM_DeInit(TIM1);//初始化TIM1寄存器
  6.         RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);
  7.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1 , ENABLE);  //使能GPIO外设和AFIO复用功能模块时钟
  8.        
  9.         GPIO_PinAFConfig(GPIOE, GPIO_PinSource7, GPIO_AF_TIM1);
  10.         GPIO_PinAFConfig(GPIOE, GPIO_PinSource8, GPIO_AF_TIM1);//完全重映射 连接 TIM1 引脚到 AF1   

  11.         /*Configure GPIO pins : PE7 PE8 */
  12.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_8;//TIM1_ETR,TIM1_CH1N,
  13.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  14.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  15.         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  16.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  17.        
  18.         GPIO_Init(GPIOE, &GPIO_InitStructure);//初始化GPIO


  19.        //初始化TIM1
  20.         TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值
  21.         TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值
  22.         TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_tim
  23.         TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式
  24.         TIM_TimeBaseStructure.TIM_RepetitionCounter = 0x0;
  25.         TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位
  26.        
  27.         //初始化TIM1 Channel1 PWM模式         
  28.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //选择定时器模式:TIM脉冲宽度调制模式1
  29.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能
  30.         TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
  31.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高
  32.         TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCPolarity_High; //互补端的极性
  33.         TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
  34.         TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;
  35.         TIM_OCInitStructure.TIM_Pulse = arr/2;
  36.         TIM_OC1Init(TIM1, &TIM_OCInitStructure);  //初始化外设TIM1 OC1
  37.        

  38.         TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable);
  39.   TIM_BDTRInitStructure.TIM_OSSRState = TIM_OSSRState_Enable;
  40.   TIM_BDTRInitStructure.TIM_OSSIState = TIM_OSSIState_Enable;
  41.   TIM_BDTRInitStructure.TIM_LOCKLevel = TIM_LOCKLevel_OFF;
  42.   TIM_BDTRInitStructure.TIM_DeadTime = 0;  //这里调整死区大小0-0xff
  43.   TIM_BDTRInitStructure.TIM_Break = TIM_Break_Disable;
  44.   TIM_BDTRInitStructure.TIM_BreakPolarity = TIM_BreakPolarity_High;
  45.   TIM_BDTRInitStructure.TIM_AutomaticOutput = TIM_AutomaticOutput_Enable;
  46.   TIM_BDTRConfig(TIM1, &TIM_BDTRInitStructure);
  47.     //TIM_OC1NPolarityConfig(TIM1, TIM_OCNPolarity_High);
  48.     //TIM_OC1PolarityConfig(TIM1,TIM_OCPolarity_Low);
  49.    
  50.     //TIM_CCPreloadControl(TIM1, ENABLE);
  51.   TIM_Cmd(TIM1, ENABLE);//使能TIM1
  52.   TIM_CtrlPWMOutputs(TIM1, ENABLE);//设置PMW主输出        
复制代码


最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

890

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1481
金钱
1481
注册时间
2020-8-19
在线时间
336 小时
发表于 2021-12-22 18:22:22 | 显示全部楼层
回复

使用道具 举报

2

主题

369

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4241
金钱
4241
注册时间
2020-7-24
在线时间
714 小时
发表于 2021-12-22 18:26:12 | 显示全部楼层
ETR用于外部时钟输入的,定时器使用外部时钟源,一般是用于脉冲计数的
回复

使用道具 举报

34

主题

173

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1091
金钱
1091
注册时间
2017-3-10
在线时间
172 小时
 楼主| 发表于 2021-12-23 09:45:54 | 显示全部楼层
GJJ1999 发表于 2021-12-22 18:26
ETR用于外部时钟输入的,定时器使用外部时钟源,一般是用于脉冲计数的

那只有用它模拟PWM输出了噢。
回复

使用道具 举报

34

主题

173

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1091
金钱
1091
注册时间
2017-3-10
在线时间
172 小时
 楼主| 发表于 2021-12-23 09:46:25 | 显示全部楼层

了解了,现在只有用作普通IO模拟PWM输出了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 02:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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