打印

请教PWM产生固定频率方波的问题

[复制链接]
2236|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mcuatmel|  楼主 | 2012-8-5 16:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想分别用TIM1 CH3和TIM4 CH2输出125KHz方波,TIM1的不知怎么写,TIM4的写了下,但没有输出,请指点下!
TIM4的初始化程序如下:
/**************************TIM4***************************************/
TIM_TimeBaseStructure.TIM_Prescaler = 35;         //时钟36分频,1us一个计数
TIM_TimeBaseStructure.TIM_ClockDivision = 0;      //时钟分割
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//模式
TIM_TimeBaseStructure.TIM_Period = 7;             //8us
TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);   //基本初始化
/* PWM1 Mode configuration: Channel2 */
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = 4;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OC2Init(TIM4, &TIM_OCInitStructure);
TIM_OC2PreloadConfig(TIM4, TIM_OCPreload_Enable);
TIM_ARRPreloadConfig(TIM4, ENABLE);
/* TIM4 enable counter */
TIM_Cmd(TIM4, ENABLE);
沙发
mcuatmel|  楼主 | 2012-8-5 16:31 | 只看该作者
搞定了TIM4,不好意思,我用的是重映射引脚,加上如下这句就可以了
GPIO_PinRemapConfig(GPIO_Remap_TIM4,ENABLE);
还差TIM1的了。

使用特权

评论回复
板凳
figo20042005| | 2012-8-5 21:05 | 只看该作者
看看,学习下

使用特权

评论回复
地板
mcuatmel|  楼主 | 2012-8-6 10:06 | 只看该作者
这是我TIM1的初始化部分:也用的是重映射,用PE13引脚
        TIM1_TimeBaseInitStruct.TIM1_Prescaler = 35;  // 1us resolution
        TIM1_TimeBaseInitStruct.TIM1_CounterMode = TIM1_CounterMode_Up;
        TIM1_TimeBaseInitStruct.TIM1_Period = 7;  // 8us->125K
        TIM1_TimeBaseInitStruct.TIM1_ClockDivision = 0;
        TIM1_TimeBaseInitStruct.TIM1_RepetitionCounter = 0;
        TIM1_TimeBaseInit(&TIM1_TimeBaseInitStruct);
       
        TIM1_OCInitStructure.TIM1_OCMode = TIM1_OCMode_PWM1;
        TIM1_OCInitStructure.TIM1_OutputState = TIM1_OutputState_Enable;
        TIM1_OCInitStructure.TIM1_OutputNState = TIM1_OutputNState_Disable;
        TIM1_OCInitStructure.TIM1_Pulse = 4;
        TIM1_OCInitStructure.TIM1_OCPolarity = TIM1_OCPolarity_High;
        TIM1_OCInitStructure.TIM1_OCNPolarity = TIM1_OCNPolarity_Low;
        TIM1_OCInitStructure.TIM1_OCIdleState = TIM1_OCIdleState_Set;
        TIM1_OCInitStructure.TIM1_OCNIdleState = TIM1_OCIdleState_Reset;
       
        TIM1_OC3Init(&TIM1_OCInitStructure);
        TIM1_OC3PreloadConfig(TIM1_OCPreload_Enable);
        TIM1_ARRPreloadConfig(ENABLE);       
        TIM1_Cmd(ENABLE);
但是不好用,还没有波形出现。请指点!

使用特权

评论回复
5
捡漏王子| | 2012-8-6 10:17 | 只看该作者
用的是哪一个版本的库?

使用特权

评论回复
6
mcuatmel|  楼主 | 2012-8-6 11:03 | 只看该作者
这个是IAR下面的。

使用特权

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

本版积分规则

512

主题

1456

帖子

2

粉丝