零基础制作两轮自平衡小车


layout: wiki

title: 串口通讯实验

作者:Songyimiao

当我们在学习一款MCU的时候,最经典的实验莫过于LED实验了,会操作LED就基本等于学会操作I/O口了。

那么,在学会操作I/O之后,面对那么多的片上外设我们又应该先学什么呢?有些朋友会说用到什么就学什么,听起来这也不无道理呀。

但对于喵呜来说,会把学习串口的操作放在第二位。在程序运行的时候我们可以通过操作LED亮灭来显示代码的执行的状态,但有时候我们还想把某些中间量或者其他程序状态信息打印出来显示在电脑上,那么这时串口的作用就可想而知了。

串口的初始化,无非就是对串口工作方式的初始化,比如对波特率、时钟源、帧信息的设定。

下面我们基于MWbalanced主控板做一个自收自发的串口实验。

初始化串口1,将波特率设为115200。我们可以利用STC-ISP这个软件自动生成对应的串口初始化代码,把主要精力投入到研究算法上去。

STC-ISP这个功能真是懒人利器。

接着,我们写一个串口发送函数。

有了发送函数,再写一个接收函数。

然后,主函数里面简单写三句自收自发的语句,就是单片机收到什么信息就把什么信息发回去。我们用的是在主函数里循环查询,并没有用到串口中断。

把程序下载到控制板上,然后随便找个串口助手什么的,打开串口然后发个数据,就可以看到自收自发的想象啦。

串口通讯实验代码传送门: