OpenEdv-开源电子网

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

无法输出PWM波

[复制链接]

3

主题

9

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2018-6-11
在线时间
10 小时
发表于 2018-6-24 16:23:53 | 显示全部楼层 |阅读模式
10金钱
按照正点原子里面的视频修改的PWM输出实验,改成PB6输出 ,结果没有pwm输出PWM.c文件
[mw_shl_code=c,true]#include "PWM.h"




void TiM4_PWM_Init(u16 arr, u16 psc )
{       
                TIM_TimeBaseInitTypeDef TIM_Timeinit;
                TIM_OCInitTypeDef TIM_OCInitstruct;
               
                GPIO_InitTypeDef        GPIO_InitStrucyure;
///////////////     1
                RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);  //使能定时器4时钟
                RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); // 使能GPIO
//////////////         初始化io 为复用输出

                GPIO_InitStrucyure.GPIO_Mode=GPIO_Mode_AF_PP;        //改为复用推挽输出GPIO_Mode_AF_PP
                GPIO_InitStrucyure.GPIO_Pin=GPIO_Pin_6;
                GPIO_InitStrucyure.GPIO_Speed=GPIO_Speed_50MHz;
                GPIO_Init(GPIOB,&GPIO_InitStrucyure);                 //初始化io口
       

        TIM_Timeinit.TIM_ClockDivision = TIM_CKD_DIV1 ;       //
        TIM_Timeinit.TIM_CounterMode =  TIM_CounterMode_Up;                                        //计数模式
        TIM_Timeinit.TIM_Period = arr;
        TIM_Timeinit.TIM_Prescaler = psc;           //预分频系数
        TIM_TimeBaseInit(TIM4,&TIM_Timeinit);
        ////////////

       
        TIM_OCInitstruct.TIM_OCMode =   TIM_OCMode_PWM2 ;   //模式2
        TIM_OCInitstruct.TIM_OCNPolarity  =        TIM_OCPolarity_High ;        //极性输出高
        TIM_OCInitstruct.TIM_OutputNState =        TIM_OutputState_Enable ;                //               

        TIM_OC1Init(TIM4,&TIM_OCInitstruct);        //TIM_OCX   通道1 就OC1
//////////////////////////

       
        TIM_OC1PreloadConfig(TIM4,TIM_OCPreload_Enable);
        //////////////


       
        TIM_Cmd(TIM4,ENABLE);
        ////////

       
        }


[/mw_shl_code]

主函数:
[mw_shl_code=c,true]int main (void)
{
       
       
        delay_init(72);
       

       
        TiM4_PWM_Init(899, 0 ) ;
       
               
        TIM_SetCompare1(TIM4,200);
               

       



}[/mw_shl_code]


TIM_SetCompare1中无论换任何值 灯都不会亮 ,  

最佳答案

查看完整内容[请看2#楼]

找到错误了 还是粗心大意!TIM_OCInitstruct.TIM_OutputNState = TIM_OutputState_Enable ; 应该是TIM_OCInitstruct.TIM_OutputState = TIM_OutputState_Enable ; 没有那个N!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2018-6-11
在线时间
10 小时
 楼主| 发表于 2018-6-24 16:23:54 | 显示全部楼层
找到错误了  还是粗心大意!TIM_OCInitstruct.TIM_OutputNState = TIM_OutputState_Enable ;     应该是TIM_OCInitstruct.TIM_OutputState = TIM_OutputState_Enable ;        没有那个N!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-6-25 01:41:52 | 显示全部楼层
main函数要死循环啊!!C语言谁教你的。
回复

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2018-6-11
在线时间
10 小时
 楼主| 发表于 2018-6-25 08:13:40 | 显示全部楼层
正点原子 发表于 2018-6-25 01:41
main函数要死循环啊!!C语言谁教你的。

我用了的 ,上传代码时候误删了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-26 10:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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