OpenEdv-开源电子网

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

STM32F0 TIM1 PWM CH1 CH4没波形输出,程序上哪里有问题?

[复制链接]

1

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2019-11-14
在线时间
15 小时
发表于 2021-11-18 00:19:20 | 显示全部楼层 |阅读模式
        TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
        TIM_OCInitTypeDef TIM_OCInitStructure;
        GPIO_InitTypeDef GPIO_InitStructure;
       
        //PWM
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1 , ENABLE);
        RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOA, ENABLE);
       

        GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_8|GPIO_Pin_11;//PUL 频率                 
        GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF;  //
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;//定义管脚的模式  
        GPIO_Init(GPIOA, &GPIO_InitStructure);  
       
        GPIO_PinAFConfig(GPIOA,  GPIO_Pin_8, GPIO_AF_2);//配置PA8 复用成TIM1-CH1
        GPIO_PinAFConfig(GPIOA, GPIO_Pin_11, GPIO_AF_2);//配置PA11复用成TIM1-CH4       
       
        TIM_DeInit(TIM1);
        TIM_TimeBaseStructure.TIM_Period    = 20;//装载值
        TIM_TimeBaseStructure.TIM_Prescaler = 10;                        
        TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
        TIM_TimeBaseStructure.TIM_RepetitionCounter=0;//重复计数寄存器(TIMx_RCR),TIM1和TIM8才有
        TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
       
       
        TIM_OCInitStructure.TIM_OCMode       = TIM_OCMode_PWM1;              //PWM2模式
        TIM_OCInitStructure.TIM_OutputState  = TIM_OutputState_Enable;  //信号输出到对应的输出引脚
        TIM_OCInitStructure.TIM_OutputNState = TIM_OutputState_Disable;  //互补信号输出到对应的输出引脚
        TIM_OCInitStructure.TIM_Pulse                  = 10;                                           //脉冲宽度
        TIM_OCInitStructure.TIM_OCPolarity   = TIM_OCPolarity_High;     //互补输出高电平有效
        TIM_OCInitStructure.TIM_OCNPolarity  = TIM_OCNPolarity_High;    //互补输出高电平有效
        TIM_OCInitStructure.TIM_OCIdleState  = TIM_OCIdleState_Set;          //输出空闲状态为1
        TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCNIdleState_Reset;  //互补输出空闲状态为0
        TIM_OC1Init(TIM1,&TIM_OCInitStructure);                                                   //OC1通道初始化
        TIM_OC4Init(TIM1,&TIM_OCInitStructure);                                                   //OC4通道初始化
       
        TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable);
        TIM_OC4PreloadConfig(TIM1, TIM_OCPreload_Enable);
       
        TIM_ARRPreloadConfig(TIM1, ENABLE);//允许自动重装载寄存器(ARR)
       
        TIM_Cmd(TIM1, ENABLE);
        TIM_CtrlPWMOutputs(TIM1,ENABLE); //使能PWM输出       
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

14

主题

821

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2036
金钱
2036
注册时间
2021-7-17
在线时间
636 小时
发表于 2021-11-18 10:09:43 | 显示全部楼层
回复 支持 反对

使用道具 举报

0

主题

668

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1926
金钱
1926
注册时间
2021-8-13
在线时间
262 小时
发表于 2021-11-18 10:15:09 | 显示全部楼层
帮顶            
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2019-11-14
在线时间
15 小时
 楼主| 发表于 2021-12-14 16:52:13 | 显示全部楼层
      GPIO_PinAFConfig(GPIOA,  GPIO_Pin_8, GPIO_AF_2);//配置PA8 复用成TIM1-CH1
        GPIO_PinAFConfig(GPIOA, GPIO_Pin_11, GPIO_AF_2);//配置PA11复用成TIM1-CH4  

是这里的问题 不应该是 GPIO_Pin_8 GPIO_Pin_11
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2014-12-23
在线时间
3 小时
发表于 2022-12-19 11:47:20 | 显示全部楼层
TXRX 发表于 2021-12-14 16:52
GPIO_PinAFConfig(GPIOA,  GPIO_Pin_8, GPIO_AF_2);//配置PA8 复用成TIM1-CH1
        GPIO_PinAFCo ...

那是什么问题?应该怎么改?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 20:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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