本文主要是介绍定时器1的PWM通道(PA8)发不出PWM波,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天遇到一个很郁闷的问题,项目要用到PA8,PA9,PA10三个引脚作为PWM输出,对应的是定时器的ch1,ch2,ch3。PA9和PA10是作为串口1的收发,因此避免用到串口1,选择用串口3.定时器1的初始化如下,没有什么问题。
串口3的定义如下
它俩在单个定义方面是没有问题的,放在mian函数中,问题来了
先这样定义,软件仿真一下PWM波形
可以看到PA8,PA9,PA10都有波形,串口3也可以正常发送,原以为结束了,结果下载到单片机上没反应,找了大半天原因,示波器一测,PA8没波形,PA9和PA10却有,第一反应代码不可能错因为通道配置都一样,也没有占用一个引脚的情况。好家伙,芯片坏了,搞硬件,结果硬件没坏,返回来在搞软件,最后找到原因,PA8有一个UART1_CK功能,参考手册也没具体说明,估计是冲突了。
解决方法很简单
先定义定时器1再定义串口,问题就解决了
这次给我一个教训,软件仿真成功并不能代表程序在单片机上是成功的。
这篇关于定时器1的PWM通道(PA8)发不出PWM波的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!