、、、、
这道题目我感觉不难,题目我就不贴链接了,如果以后空闲了在贴、、、、、、
对于这道题目,我感觉很不友好的是:
- PA2作为PWM波输出引脚(上一次是输入捕获),然后竟然要求要串口来修改,但是串口1有没办法直接使用,应该说这板子只能用串口2,当然忽略杜邦线把PA10与PA9短接,直接用串口1
- 既然不能使用传统方式输出PWM波,那么就可以直接中断拉高拉低就可以了,方式很多,况且实现了功能,谁管你是怎么实现的呢,或许方法比较笨,但是在比赛的时候实现功能就是好程序
、、、、、
错误
我来说说我的错误,其实USART2的接收完全没问题,但是我犯了几个错误:
- 接收数据的数组没有初始化个数,应该直接定义数组的大小,导致数组中有几位一直错误;
- 我使用的串口调试助手一直在发送新行(默认勾选),然后数据一直错误,难受,花费的时间很多;如下图:调试助手界面
最后我调试发现,在配置USART2时得使能时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
但是只要加上这个时钟使能PA2就不能输出PWM波,有点不好弄
一些体会
这道题一开始看到题目的时候,我有点不好分出状态(应该是我没有分清楚状态的缘故吧),好像都是在一个运行状态里面进行多分支执行;
- 写程序时我尽量减少程序重复执行的没用地方,加上分时扫描的方式进行写程序,这样可以节省很多CPU时间
- 由于题目中涉及到PWM波是:双通道互不影响、频率固定占空比可调;这样的要求,我们就可以想到使用PWM1或者PWM2模式来产生PWM波,因为这样很容易实现。
网友评论