分享一个串口2程序,还有和大家说下我被坑的经历!

2019-08-17 02:52发布

因为需要用到串口2,所以今天在调试一下!一开始以为很简单,也都自己改着!后来改了几次都没出结果,于是上了论坛查下!

串口2有几点需要注意的(其他吧友也说过啦,我再说一下),如下:
第一,串口2的时钟是在    RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);
          而串口1的时钟是        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);       

第二点,我们在修改历程经常张冠李戴,比如说
                                                                             NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;
                                                                             void USART2_IRQHandler(void)   

                                                                            int fputc(int ch, FILE *f)
                                                                           {      
                                                                            while((USART2->SR&0X40)==0);//循环发送,直到发送完毕   
                                                                            USART2->DR = (u8) ch;      
                                                                              return ch;
                                                                            }
忘改这忘改呐!!!!!

不过我这些还好都有做到,但是还是一直得不到实验现象!我看了几乎论坛中所有关于USART2的帖子,最终从原子哥的一句话得到了答案!!!
注意看下PA2,PA3有没有连接其他外设!然后我马上去翻看板子的原理图:

日狗啊,原来他板子吧PA2连接到了LED灯去了,我心里瞬间一万个草泥马飞过去,LED哪里不能接,你接我亲爱的串口2,简直是浪费!!!!
不想吐槽了!

才怪!不过确实也懂得更多东西,不仅是串口2,顺带蓝牙的程序,GSM的也看一下,学到的还是挺多了!!

希望大家下次再检查程序的同时也要主要自己的硬件连接,不要像我一样被这个小东西卡了1个多小时!








友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
嗷大喵
1楼-- · 2019-08-17 04:59
顶一下
舒考南
2楼-- · 2019-08-17 09:13
那应该怎么改
mack13013
3楼-- · 2019-08-17 14:43
所以说,寄存器在某些方面是有优势的,开仓见麻豆,纠缠到细节就非要寄存器模式不可。

另外,如果PA2被连接到了LED上,你可以将USART2_TX   USART2_RX映射到PD5  PD6上。

一周热门 更多>