双通道输出PWM波

2018-01-25  本文已影响0人  你的优先级最高

、、、、

这道题目我感觉不难,题目我就不贴链接了,如果以后空闲了在贴、、、、、、
对于这道题目,我感觉很不友好的是:

  1. PA2作为PWM波输出引脚(上一次是输入捕获),然后竟然要求要串口来修改,但是串口1有没办法直接使用,应该说这板子只能用串口2,当然忽略杜邦线把PA10与PA9短接,直接用串口1
  2. 既然不能使用传统方式输出PWM波,那么就可以直接中断拉高拉低就可以了,方式很多,况且实现了功能,谁管你是怎么实现的呢,或许方法比较笨,但是在比赛的时候实现功能就是好程序
    、、、、、

错误

我来说说我的错误,其实USART2的接收完全没问题,但是我犯了几个错误:

  1. 接收数据的数组没有初始化个数,应该直接定义数组的大小,导致数组中有几位一直错误;
  2. 我使用的串口调试助手一直在发送新行(默认勾选),然后数据一直错误,难受,花费的时间很多;如下图:调试助手界面
调试助手界面

最后我调试发现,在配置USART2时得使能时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
但是只要加上这个时钟使能PA2就不能输出PWM波,有点不好弄

一些体会

这道题一开始看到题目的时候,我有点不好分出状态(应该是我没有分清楚状态的缘故吧),好像都是在一个运行状态里面进行多分支执行;

  1. 写程序时我尽量减少程序重复执行的没用地方,加上分时扫描的方式进行写程序,这样可以节省很多CPU时间
  2. 由于题目中涉及到PWM波是:双通道互不影响、频率固定占空比可调;这样的要求,我们就可以想到使用PWM1或者PWM2模式来产生PWM波,因为这样很容易实现。
上一篇下一篇

猜你喜欢

热点阅读