[STM32F1] stm32f107的高级定时器TIM1无法输出PWM波

[复制链接]
876|19
手机看帖
扫描二维码
随时随地手机跟帖
chuxh|  楼主 | 2021-9-12 14:04 | 显示全部楼层 |阅读模式
stm32f107的高级定时器TIM1无法输出PWM波

使用特权

评论回复
chenjunt| | 2021-9-12 14:06 | 显示全部楼层

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
chuxh|  楼主 | 2021-9-12 14:14 | 显示全部楼层
void TIM1_CH1_PWM_Init(u16 per,u16 psc)

{

        TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;

        TIM_OCInitTypeDef TIM_OCInitStructure;

        GPIO_InitTypeDef GPIO_InitStructure;

        

        /* 开启时钟 */

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

        RCC_APB1PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);

        //RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

        

        /*  配置GPIO的模式和IO口 */

        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11;

        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//推挽输出

        GPIO_Init(GPIOA,&GPIO_InitStructure);

        //GPIO_PinRemapConfig(GPIO_FullRemap_TIM1,ENABLE);//改变指定管脚的映射        



        TIM_TimeBaseInitStructure.TIM_Period=per;   //自动装载值

        TIM_TimeBaseInitStructure.TIM_Prescaler=psc; //分频系数

        TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;

        TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up; //设置向上计数模式

        TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;

        TIM_TimeBaseInit(TIM1,&TIM_TimeBaseInitStructure);        

        

        TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;

        TIM_OCInitStructure.TIM_Pulse = 1000;

        TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_Low;

        TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;

        TIM_OC1Init(TIM1,&TIM_OCInitStructure); //输出比较通道1初始化



        TIM_OC1PreloadConfig(TIM1,TIM_OCPreload_Enable); //使能TIMx在 CCR1 上的预装载寄存器

        TIM_ARRPreloadConfig(TIM1,ENABLE);//使能预装载寄存器

        

        TIM_Cmd(TIM1,ENABLE); //使能定时器

        

        TIM_CtrlPWMOutputs(TIM1, ENABLE);  

}

使用特权

评论回复
renyaq| | 2021-9-12 14:16 | 显示全部楼层
和通用定时器TIM3配置OC步骤差不多,TIM3能够输出PWM波,可是TIM1无法输出,哪里有问题吗?

使用特权

评论回复
chuxh|  楼主 | 2021-9-12 14:19 | 显示全部楼层

搞定了,呵呵,犯了低级错误……

使用特权

评论回复
xxrs| | 2021-9-12 14:21 | 显示全部楼层
一般很奇怪的问题,可能都是由于一个很简单的错误造成的。。

使用特权

评论回复
heweibig| | 2021-9-12 14:23 | 显示全部楼层
一点波形都没有吗

使用特权

评论回复
yszong| | 2021-9-12 14:25 | 显示全部楼层
timer1挂在APB1下的,跟其他的不同。

使用特权

评论回复
happy_10| | 2021-9-12 14:27 | 显示全部楼层
自己偷懒造成的?

使用特权

评论回复
chuxh|  楼主 | 2021-9-12 14:29 | 显示全部楼层
额 配置高级定时器1时直接复制定时器3的配置函数,然后随便修改一下,结果RCC_APB1PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE)参数使用错误

使用特权

评论回复
chuxh|  楼主 | 2021-9-12 14:31 | 显示全部楼层
APB1初始化函数参数却是RCC_APB2Periph_TIM1???真是活该啊,哈哈哈。

使用特权

评论回复
dengdc| | 2021-9-12 14:33 | 显示全部楼层
一般很奇怪的问题,可能都是由于一个很简单的错误造成的。。

使用特权

评论回复
jlyuan| | 2021-9-12 14:35 | 显示全部楼层
一点波形都没有吗

使用特权

评论回复
wangzsa| | 2021-9-12 14:41 | 显示全部楼层
timer1挂在APB1下的,跟其他的不同。

使用特权

评论回复
chuxh|  楼主 | 2021-9-12 14:42 | 显示全部楼层

好的,我明天去单位试一下,多谢各位大侠了哈        

使用特权

评论回复
木木guainv| | 2021-10-9 10:03 | 显示全部楼层
可以详细描述一下现象吗

使用特权

评论回复
wakayi| | 2021-10-9 10:06 | 显示全部楼层
一点输出都没有吗

使用特权

评论回复
wowu| | 2021-10-9 10:07 | 显示全部楼层
换一个定时器试试看

使用特权

评论回复
xiaoqizi| | 2021-10-9 10:11 | 显示全部楼层
哪句代码出问题了啊

使用特权

评论回复
tpgf| | 2021-10-9 10:14 | 显示全部楼层
这个语句是定义什么的呢

使用特权

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

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

本版热帖

本版活跃用户

优质原创写原创,赢大奖

编辑推荐

  • 1 呐咯密密 得到打赏 ¥310.00
  • 2 qbwww 得到打赏 ¥215.00
  • 3 yanzhengxin1 得到打赏 ¥150.00
  • 4 full_stack 得到打赏 ¥100.00
  • 5 laocuo1142 得到打赏 ¥55.00
  • 6 zhangjiantao 得到打赏 ¥50.00
  • 7 二哲科技 得到打赏 ¥50.00
  • 8 cjseng 得到打赏 ¥50.00
  • 9 qintian0303 得到打赏 ¥25.00
  • 10 逍遥李 得到打赏 ¥20.00
在线客服 快速回复 返回顶部 返回列表