STM32F103C8T6 PWM 设置

博主在从ZET6转到C8T6芯片时遇到PWM配置问题,发现PC13无法用于TIM功能。通过查阅手册和参考教程,了解到PC13不具备TIM功能,因此改用小电机+驱动模块。在配置TIM2时,发现PWM值设置与预期相反,通过修改TIM_OCMode解决了这个问题。最终实现了PWM管脚定义,并分享了修改TIM配置的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一开始学32是用战舰版ZET6学的,但后面做项目嘛,144pin的芯片也太大了,就改用c8t6了,好在也都是f103系列的,配置都差不多,所以正点原子配套的参考手册还能用

现在直说PWM的配置吧,战舰版里例程是PB5,及控制LED灯的明亮程度;
可c8t6没有啊,我原本想既然这样,不然我用PC13(这个是市面上c8t6最小系统的默认LED灯),结果查了手册,发现PC13根本没有TIM功能,更别撤做PWM了,在这里插入图片描述
(别问我TEMPER_RTC是啥意思,搜了一下是做入侵检测功能,不懂不懂,手里里也没提,不管了)

所以没办法,手头正好有个小电机+驱动模块,稍微接了接,
在这里插入图片描述
看图,省了一个PWM管脚,就用一个算了,另一个接地,现在的目的就是做pwm的管脚定义了,

转载原子论坛里大神的文章:
http://www.openedv.com/forum.php?mod=viewthread&tid=287896&highlight=TIM2%2BA2

看完的照着改,肯定也能出来,重映像嘛!!,讲的很详细了;

但,这时候我发现了一个问题,导致还需要小小的改动:
及,在这里插入图片描述
按这个配置下来,TIM2_PWM_Init(1000,0);
pwm输出:
TIM_SetCompare3(TIM2,0); 电压为3.3 最大
TIM_SetCompare3(TIM2,1000) ; 电压为0

这样很不习惯,毕竟大家都喜欢PWM值越大,电压越大嘛,所以还需要改动一下。

转载大神的文章:
https://blog.csdn.net/gtkknd/article/details/39296151#

看完了,大体就懂了是个什么意思,其实很好改,
在这里插入图片描述
直接改成TIM_OCMode_PWM2——>TIM_OCMode_PWM1就好了,千万别同时改动TIM_OCInitStructure.TIM_OCPolarity参数,我当时一开始改成了TIM_OCPolarity_Down,结果反而不能动了,发呆了好半天。

好了,大体就这些,细致的东西还是得看原子的视频或者论坛资料,多看看参考手册,从寄存器角度多去理解会更好一点,(尽量理解就好)

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值