LaunchPad可以通过串口接收由计算机发出的数据。接收串口数据需要使用Serial.read()函数,用法是:
调用该函数,每次都会返回1字节的数据,该返回值是从当前串口读到的数据。
上传下面程序(见表4-10)到LaunchPad,程序上传成功后,打开串口监视器,如图4-19所示。在还没有输入任何内容的时候,显示窗口出现很多乱码。在“Send”按钮左侧的文本框输入要发送的信息,如“Hello”,然后点击“Send”按钮,则会看到除了输出“Hello”外还会输出很多乱码。
表4-10 串口输入示例1
图4-19 串口输出信息
图4-20 结合Serial.availabe()函数的效果(www.xing528.com)
在使用串口时,MCU会在RAM中开辟一段大小为64 B的空间,串口接收到的数据都会被暂时存放在该空间中,这个存储空间被称为串口缓存区。如果缓存区中有数据时,调用Serial.read()函数将从缓存区中取出1个字节数据;当缓存区中没有可读数据时,Serial.read()函数会返回int型值-1,而-1对应的char型数据便是该乱码。修改表4-10中程序第8行“char ch=Serial.read();”为“int ch=Serial.read();”,重新上传程序,再次运行观察现象。
通常在使用串口读数据时,需要搭配使用Serial.available()函数(见图4-20),该函数的返回值表示当前缓存区中接收到的数据字节数。Serial.available()函数可以搭配if或者while语句来使用,首先检测缓存区中是否有可读数据,如果有数据,再读取;如果没有数据,则跳过读取或等待读取。如:
或者
上传表4-11所示程序到LaunchPad。
表4-11 串口输入示例2
需要注意的是,在串口监视器下方有两个下拉菜单,一个是设置结束符,另一个是设置波特率。如果已设置了结束符,则在发送数据结束后,自动发送一组已设定的结束符,如回车符和换行符。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。