打印

STM32不能输出PWM波形 求助!调了整整一天

[复制链接]
1380|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
不晚|  楼主 | 2020-4-25 11:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

单片机型号:stm32f103rct6 我用定时器3的pc7口进行输出PWM波形来控制L2898N 但是代码调了好几遍就是不能输出PWM波形 有没有大佬给我解答一下,这是为什么?代码如下:
void PWM_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;//定义结构体
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC  | RCC_APB2Periph_AFIO, ENABLE);//使能GPIO外设和AFIO复用功能模块时钟
        GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE); //选择Timer3全部重映像   
        //选择定时器3的通道2作为PWM的输出引脚   GPIOC.7
        
        TIM_DeInit(TIM3);
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; //TIM_CH2
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽功能
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化引脚
        
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;//定义初始化结构体
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //使能定时器3时钟
        //初始化TIM3
        TIM_TimeBaseStructure.TIM_Period = 9999; //自动重装载寄存器的值
        TIM_TimeBaseStructure.TIM_Prescaler =143; //TIMX预分频的值
        TIM_TimeBaseStructure.TIM_ClockDivision = 0; //时钟分割
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上计数
        TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据以上功能对定时器进行初始化
        
        TIM_OCInitTypeDef  TIM_OCInitStructure;//定义结构体
        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;//选择定时器模式,TIM脉冲宽度调制模式2
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;//输出
        TIM_OCInitStructure.TIM_Pulse = 0;
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
        TIM_OC2Init(TIM3, &TIM_OCInitStructure);//根据结构体信息进行初始化
        TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);  //使能定时器TIM2在CCR2上的预装载值
        TIM_ARRPreloadConfig(TIM3,ENABLE);
        TIM_Cmd(TIM3, ENABLE);  //使能定时器TIM3
}

使用特权

评论回复

相关帖子

沙发
airwill| | 2020-4-25 11:39 | 只看该作者
初看程序没有啥问题,   借助调试器, 验证一下内部寄存器的情况, 会不会寄存器被别的代码改掉了,
或者端口信号连接不良

使用特权

评论回复
板凳
人中狼| | 2020-4-25 17:11 | 只看该作者
PWM的占空比设置了没

使用特权

评论回复
地板
yueguang3048| | 2020-4-30 11:57 | 只看该作者
人中狼 发表于 2020-4-25 17:11
PWM的占空比设置了没

TIM_OCInitStructure.TIM_Pulse = 0;估计他忘记填写了

使用特权

评论回复
5
ningling_21| | 2020-4-30 13:52 | 只看该作者
程序问题

使用特权

评论回复
6
不晚|  楼主 | 2020-9-8 23:12 | 只看该作者
感谢各位大佬,解决了,忘记登陆了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

99

帖子

2

粉丝