实验16 修改波特率,校验位,停止位实验
1. 实验目的
通过列表控件,选择修改串口屏工程的波特率,校验位,停止位
通过协议解析器接收上位机串口助手发来的ascii码数据显示在串口屏上
使用发送函数外发字符串数据显示在上位机串口助手里面
2. 实验工具
任意型号串口屏,本例程串口屏型号为(SANY-WQ-S43-01-C)
电脑端串口调试助手,本例程使用 SSCOM V5.13.1 串口助手
Usb转串口工具,用于串口屏和电脑串口助手通讯
3. 界面布局
4. 控件介绍
控件名称 |
属性 |
功能 |
---|---|---|
List_stop |
可见 列表 |
列出停止位可选项,值改变事件中写入修改脚本 |
List_check |
可见 列表 |
列出校验位可选项,值改变事件中写入修改脚本 |
List_baud |
可见 列表 |
列出波特率可选项,值改变事件中写入修改脚本 |
Text_baud |
可见 文本 |
显示当前波特率,列表修改时直接赋值 |
Text_check |
可见 文本 |
显示当前校验位,列表修改时直接赋值 |
Text_stop |
可见 文本 |
显示当前停止位,列表修改时直接赋值 |
Log7 |
可见 日志 |
显示协议解析器接受到的数据,配合协议解析器使用 |
Text10 |
可见 文本 |
输入并显示外发的字符串 |
Button_clear |
可见 按钮 |
按钮事件写入脚本清空日志内容 |
Button_send |
可见 按钮 |
按钮事件写入脚本外发字符串 |
Com |
不可见 协议解析器 |
处理接收到的数据,配合日志控件将数据显示出来 |
5. 逻辑实现
5.1 设置停止位
点击页面上停止位文本控件,调用列表控件,列表值改变事件脚本对工程停止位作出修改
文本控件脚本:
list_stop.x = 15;//显示列表框
列表脚本:
//设置停止位
text_stop.txt = list_stop.getItem(list_stop.sel);//将选项的内容赋值给文本控件
if(list_stop.sel == 0)
sys_stopbits = 1;//停止位的读写值为1表示停止位为1,此表示为系统变量固定表示
else if(list_stop.sel == 1)
sys_stopbits = 3;//停止位的读写值为3表示停止位为1.5,此表示为系统变量固定表示
else if(list_stop.sel == 2)
sys_stopbits = 2;//停止位的读写值为2表示停止位为2,此表示为系统变量固定表示
list_stop.x = -132;//隐藏列表框
5.2 设置校验位
点击页面上校验位文本控件,调用列表控件,列表值改变事件脚本对工程校验位作出修改
文本控件脚本:
list_check.x = 15;//显示列表框
列表脚本
//设置工程校验位
text_check.txt = list_check.getItem(list_check.sel);//将列表选中项的值赋值给文本控件
sys_parity = list_check.sel;//设置系统校验位,校验位读取值0表示无校验 1表示odd校验 2表示even校验,此处与列表序号一致
list_check.x = -132;//隐藏列表框
5.3 设置波特率
点击页面上波特率文本控件,调用列表控件,列表值改变事件脚本对工程波特率作出修改
文本控件脚本:
list_baud.x = 15; //显示列表框
列表脚本:
//设置工程波特率
text_baud.txt = list_baud.getItem(list_baud.sel);//将列表先选中值赋值给文本控件
sys_baud = stringToInt(text_baud.txt); //设置系统波特率
list_baud.x = -132; //隐藏列表框
5.4 协议解析器
将接受到的数据打印在日志控件显示,用于测试工程波特率,校验位,停止位是否修改正确
脚本:
//将串口屏收到的数据打印在日志控件显示
//com.rxbuf:协议解析器用来缓存接收数据的数组
//com.rslen:com.rxbuf长度
log7.addString(bytesToAscii(com.rxBuf,0,com.rxLen));//将接收到的数据转成ascii字符串打印出来.
5.6 通过串口发送字符串数据
Text10文本控件右侧属性栏kbld属性,可以直接调用键盘控件此处无需脚本,发送按钮button_send脚本如下
uartSend(text10.txt);//通过串口发送text10字符串文本
6. 实验结果
将工程和串口助手得波特率修改为19200,校验位修改为0dd 停止位设置为2
用usb转串口将屏与电脑连接,串口屏发送 HELLO SANY 上位机串口助手发送HELLO
串口助手和串口屏接收正常
串口助手接收和发送
串口屏接收和发送