STM32F103定时器TIM2复用输出pwm异常

在使用STM32的PB3端口进行PWM输出时,遇到一个问题:仅在调试模式下正常,上下电后无法正常工作。原因是PB3是JTAG的JTDO引脚,在默认配置下会与PWM功能冲突。解决方案是禁用JTAG功能,通过配置GPIO_Remap_SWJ_JTAGDisable使能SWD并禁用JTAG,确保PWM在上下电后仍能正常输出。

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

       由于工作需要,要求做一个PWM端口控制输出电压大小。这本是很简单的事,但却碰到一个小问题,纠结了半天时间。。现记录下来供人参考。

       想要使用这个PB3输出,就要使用部分remap模式1或者all remap,但是配置过程中发现只有debug时可以输出正常波形,重新上电后却不能正常输出,最后发现是这个PB3本身引脚默认的功能比较特别:JTDO,不是普通IO,而是JTAG的复用功能引脚,除此之外还有:JNTRST、JTDI。

                

       因此,当我用SWD调试时,这三个引脚就作为普通IO,这样我的PWM输出也正常,重新上下电后又默认为JTDO输出。

解决方法:禁用JTAG功能

    在使能remap后,加上禁用JTAG功能的配置:

    GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2, ENABLE);                 
    GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);  //使能SWD 禁用JTAG

    如此,重新上下电后,PWM正常输出。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值