OpenEdv-开源电子网

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

STM32F103RC的TIM3与TIM8是否存在冲突

[复制链接]

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2016-11-8
在线时间
23 小时
发表于 2016-11-30 19:02:46 | 显示全部楼层 |阅读模式
1金钱
想利用STM32F103RC实现24路PWM输出,但是最终结果只能实现22路,TIM3的CH3和CH4出现的波形不正常,看起来像是跟TIM8的CH2N和CH3N叠加后的波形(但实际上TIM8上四个输出通道的极性都是High)。只有在关闭TIM8的CH3和CH4后,TIM3的所有输出波形才恢复正常。是我配置有问题吗,还是这本来就是个BUG?

TIM3 部分复用(         CH1~CH4 分别对应的IO为: PB4~PB5,PB0~PB1)
        GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3,ENABLE);

TIM8没有复用(CH1~CH4分别对应的IO为: PC6~PC9)
        TIM_GenerateEvent(TIM8, TIM_EventSource_Update);
        TIM_CtrlPWMOutputs(TIM8,ENABLE);
        TIM_Cmd(TIM8, ENABLE);



定时器配置也基本相同(如下):
        TIM_TimeBaseStructure.TIM_Period = 20;
        TIM_TimeBaseStructure.TIM_Prescaler = 0;
        TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
        TIM_TimeBaseInit(TIM8, &TIM_TimeBaseStructure);
        TIM_PrescalerConfig(TIM8,0x8C9F,TIM_PSCReloadMode_Immediate);
        TIM_ARRPreloadConfig(TIM8, ENABLE);


通道设置基本都一样(如下):
        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
        TIM_OCInitStructure.TIM_Pulse = 10;
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
        TIM_OC4Init(TIM8, &TIM_OCInitStructure);


就是不知道问题出在了哪里?

最佳答案

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

论坛上已经有过类似的帖子了。 添加下面三行代码可解决问题: TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable; TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset ; TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCNIdleState_Reset;
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2016-11-8
在线时间
23 小时
 楼主| 发表于 2016-11-30 19:02:47 | 显示全部楼层
本帖最后由 canic 于 2016-11-30 19:17 编辑

论坛上已经有过类似的帖子了。
添加下面三行代码可解决问题:
        TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable;
        TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset ;
        TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCNIdleState_Reset;

回复

使用道具 举报

5

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2016-11-29
在线时间
24 小时
发表于 2016-12-1 15:44:07 | 显示全部楼层
学了!
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2022-3-4
在线时间
2 小时
发表于 2022-3-4 17:07:50 | 显示全部楼层
你好,请问高级定时器1有这三行代码,我用的芯片stm32f103zet6,高级定时器8也按照这样修改,定时器1可以产生互补的PWM,定时器8输出不了的原因。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-28 03:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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