易语言视频教程串口通讯实例或者视频

易语言 串口通讯 - 下载频道
- CSDN.NET
&&&&易语言 串口通讯
易语言 串口通讯
.程序集 窗口程序集1
.程序集变量 计数器, 整数型
.程序集变量 文本发送计次, 整数型
.子程序 __启动窗口_创建完毕
.子程序 _手动发送数据_被单击
端口_发送数据.停止 ()
发送预处理 ()
.如果真 (端口_发送数据.启动 () = 假)
信息框 (“发送启动失败,请查看本电脑是否有此端口!或者此端口已经打开!”, 0, )
.如果真结束
.判断开始 (组合框_发送进制.现行选中项 = 0)
.如果真 (端口_发送数据.发送数据 (字符 (到数值 (进制转换 (编辑框_手动发送内容.内容, 10, 2)))) = 假)
信息框 (“发送数据失败!”, 0, )
.如果真结束
.判断 (组合框_发送进制.现行选中项 = 1)
.如果真 (端口_发送数据.发送数据 (字符 (到数值 (进制转换 (编辑框_手动发送内容.内容, 10, 8)))) = 假)
信息框 (“发送数据失败!”, 0, )
.如果真结束
.判断 (组合框_发送进制.现行选中项 = 2)
.如果真 (端口_发送数据.发送数据 (字符 (到数值 (编辑框_手动发送内容.内容))) = 假)
信息框 (“发送数据失败!”, 0, )
.如果真结束
.判断 (组合框_发送进制.现行选中项 = 3)
.如果真 (端口_发送数据.发送数据 (字符 (到数值 (进制转换 (编辑框_手动发送内容.内容, 10, 16)))) = 假)
信息框 (“发送数据失败!”, 0, )
.如果真结束
.判断 (组合框_发送进制.现行选中项 = 4)
.如果真 (端口_发送数据.发送数据 (编辑框_手动发送内容.内容) = 假)
信息框 (“发送数据失败!”, 0, )
.如果真结束
端口_发送数据.停止 ()
.子程序 进制转换, 文本型, 公开
.参数 被转换文本, 文本型
.参数 被转换进制, 整数型
.参数 转换的进制, 整数型
.局部变量 临时文本, 文本型
.局部变量 临时数值, 长整数型
.局部变量 计次变量, 整数型
.局部变量 欲转换文本, 文本型
.如果真 (被转换进制 < 2 或 转换的进制 < 2 或 被转换进制 > 36 或 转换的进制 > 36)
' 判断两个“进制系数”是否正确
返回 (“参数错误-进制只能在2-36之间”)
.如果真结束
被转换文本 = 到大写 (到半角 (被转换文本))
' 规范参数
.计次循环首 (取文本长度 (被转换文本), 计次变量)
临时文本 = 取文本中间 (被转换文本, 计次变量, 1)
.如果真 (寻找文本 (取文本左边 (“ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 被转换进制), 临时文本, , 假) = -1)
临时文本 = “参数错误-” + 被转换文本 + “不是一个有效的” + 取文本左边 (数值到金额 (被转换进制, 真), 取文本长度 (数值到金额 (被转换进制, 真)) - 4) + “进制数!”
跳出循环 ()
.如果真结束
.如果真 (计次变量 = 取文本长度 (被转换文本))
临时文本 = “”
.如果真结束
.计次循环尾 ()
.如果真 (临时文本 ≠ “”)
返回 (临时文本)
.如果真结束
' 以上为数据处理代码
.如果真 (被转换进制 = 转换的进制)
返回 (被转换文本)
.如果真结束
.计次循环首 (取文本长度 (被转换文本), 计次变量)
' 整数转换开始
临时数值 = (寻找文本 (“ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 取文本中间 (被转换文本, 计次变量, 1), , 真) - 1) × 求次方 (被转换进制, 取文本长度 (被转换文本) - 计次变量) + 临时数值
.计次循环尾 ()
.判断循环首 (临时数值 > 转换的进制 - 1)
欲转换文本 = 取文本中间 (“ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 到数值 (到文本 (临时数值 % 转换的进制)) + 1, 1) + 欲转换文本
临时数值 = 取整 (临时数值 ÷ 转换的进制)
.判断循环尾 ()
欲转换文本 = 取文本中间 (“ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 临时数值 + 1, 1) + 欲转换文本
' 整数转换结束
返回 (欲转换文本)
.子程序 _退出_被单击
.子程序 _组合框_端口号_列表项被选择
端口_发送数据.停止 ()
端口_发送数据.端口号 = 多项选择 (组合框_端口号.现行选中项 + 1, 1, 2, 3, 4, 5, 6)
.子程序 _组合框_波特率_列表项被选择
端口_发送数据.停止 ()
端口_发送数据.波特率 = 到数值 (组合框_波特率.取项目文本 (组合框_波特率.现行选中项))
.子程序 _组合框_数据位_列表项被选择
端口_发送数据.停止 ()
端口_发送数据.数据位数 = 多项选择 (组合框_数据位.现行选中项 + 1, 6, 7, 8)
.子程序 _组合框_校验_列表项被选择
端口_发送数据.停止 ()
端口_发送数据.奇偶校验方案 = 多项选择 (组合框_校验.现行选中项 + 1, 0, 1, 2)
.子程序 _组合框_停止位_列表项被选择
端口_发送数据.停止 ()
端口_发送数据.停止位数 = 多项选择 (组合框_停止位.现行选中项 + 1, 0, 1, 2)
.子程序 发送预处理
端口_发送数据.停止 ()
端口_发送数据.波特率 = 到数值 (组合框_波特率.取项目文本 (组合框_波特率.现行选中项))
端口_发送数据.端口号 = 多项选择 (组合框_端口号.现行选中项 + 1, 1, 2, 3, 4, 5, 6)
端口_发送数据.数据位数 = 多项选择 (组合框_数据位.现行选中项 + 1, 6, 7, 8)
端口_发送数据.奇偶校验方案 = 多项选择 (组合框_校验.现行选中项 + 1, 0, 1, 2)
端口_发送数据.停止位数 = 多项选择 (组合框_停止位.现行选中项 + 1, 0, 1, 2)
.如果 (端口_发送数据.奇偶校验方案 = 0)
端口_发送数据.奇偶校验 = 假
端口_发送数据.奇偶校验 = 真
.子程序 _选择框_DTR_被单击
.如果 (选择框_DTR.选中 = 真)
端口_发送数据.信号操作 (2, 1)
端口_发送数据.信号操作 (1, 1)
.子程序 _选择框_RTS_被单击
.如果 (选择框_RTS.选中 = 真)
端口_发送数据.信号操作 (2, 2)
端口_发送数据.信号操作 (1, 2)
.子程序 _选择框_Break_被单击
.如果 (选择框_Break.选中 = 真)
端口_发送数据.信号操作 (2, 3)
端口_发送数据.信号操作 (1, 3)
.子程序 _编辑框_发送周期_内容被改变
.如果真 (选择框_时钟标志.选中 = 真)
时钟1.时钟周期 = 到数值 (编辑框_发送周期.内容)
.如果真结束
.子程序 _选择框_时钟标志_被单击
.如果 (选择框_时钟标志.选中 = 真)
组合框_发送方式.现行选中项 = 1
选择框_时钟标志.标题 = “时钟已开启”
端口_发送数据.停止 ()
发送预处理 ()
.如果真 (端口_发送数据.启动 () = 假)
信息框 (“发送启动失败,请查看本电脑是否有此端口!或者此端口已经打开!”, 0, )
.如果真结束
时钟1.时钟周期 = 到数值 (编辑框_发送周期.内容)
组合框_发送方式.现行选中项 = 0
时钟1.时钟周期 = 0
端口_发送数据.停止 ()
选择框_时钟标志.标题 = “时钟已停止”
.子程序 _组合框_发送方式_列表项被选择
.如果 (组合框_发送方式.现行选中项 = 1)
选择框_时钟标志.选中 = 真
选择框_时钟标志.标题 = “时钟已开启”
端口_发送数据.停止 ()
发送预处理 ()
.如果真 (端口_发送数据.启动 () = 假)
信息框 (“发送启动失败,请查看本电脑是否有此端口!或者此端口已经打开!”, 0, )
.如果真结束
时钟1.时钟周期 = 到数值 (编辑框_发送周期.内容)
选择框_时钟标志.选中 = 假
端口_发送数据.停止 ()
选择框_时钟标志.标题 = “时钟已停止”
时钟1.时钟周期 = 0
.子程序 _端口_发送数据_收到信号
.参数 信号类型, 整数型
.子程序 _端口_接收数据_收到信号
.参数 信号类型, 整数型
.子程序 _端口_接收数据_数据到达
.参数 数据字节值, 整数型
.如果真 (单选框_单列.选中 = 真)
' 如果是显示一列直下的形式,就需要计数及加回车
计数器 = 计数器 + 1
' 程序集变量增加一位
.如果真结束
.判断开始 (选择框_二进制接收数据.选中 = 真)
' 如果需显示2进制时
编辑框_接收数据显示处.加入文本 (选择 (单选框_单列.选中 = 真, 到文本 (计数器) + “RX:
”, “”) + 进制转换 (到文本 (数据字节值), 10, 2) + 选择 (单选框_串列.选中 = 真, #换行符, 选择 (选择框_间隔符.选中 = 真, 选择 (删全部空 (编辑框_间隔符.内容) = “”, “ ”, 编辑框_间隔符.内容), “”)))
.判断 (选择框_八进制接收数据.选中 = 真)
' 如果需显示8进制时
编辑框_接收数据显示处.加入文本 (选择 (单选框_单列.选中 = 真, 到文本 (计数器) + “RX:
”, “”) + 进制转换 (到文本 (数据字节值), 10, 8) + 选择 (单选框_单列.选中 = 真, #换行符, 选择 (选择框_间隔符.选中 = 真, 选择 (删全部空 (编辑框_间隔符.内容) = “”, “ ”, 编辑框_间隔符.内容), “”)))
.判断 (选择框_十进制接收数据.选中 = 真)
' 如果需显示10进制时
编辑框_接收数据显示处.加入文本 (选择 (单选框_单列.选中 = 真, 到文本 (计数器) + “RX:
”, “”) + 到文本 (数据字节值) + 选择 (单选框_单列.选中 = 真, #换行符, 选择 (选择框_间隔符.选中 = 真, 选择 (删全部空 (编辑框_间隔符.内容) = “”, “ ”, 编辑框_间隔符.内容), “”)))
.判断 (选择框_十六进制接收数据.选中 = 真)
' 如果需显示16进制时
编辑框_接收数据显示处.加入文本 (选择 (单选框_单列.选中 = 真, 到文本 (计数器) + “RX:
”, “”) + 进制转换 (到文本 (数据字节值), 10, 16) + 选择 (单选框_单列.选中 = 真, #换行符, 选择 (选择框_间隔符.选中 = 真, 选择 (删全部空 (编辑框_间隔符.内容) = “”, “ ”, 编辑框_间隔符.内容), “”)))
.判断 (选择框_ASCII码接收数据.选中 = 真)
' 如果需显示ASCII码时
编辑框_接收数据显示处.加入文本 (选择 (单选框_单列.选中 = 真, 到文本 (计数器) + “RX:
”, “”) + 字符 (数据字节值) + 选择 (单选框_单列.选中 = 真, #换行符, 选择 (选择框_间隔符.选中 = 真, 选择 (删全部空 (编辑框_间隔符.内容) = “”, “ ”, 编辑框_间隔符.内容), “”)))
处理事件 ()
.子程序 _时钟1_周期事件
.如果真 (删全部空 (编辑框_手动发送内容.内容) = “0” 或 删全部空 (编辑框_手动发送内容.内容) = “00”)
.如果真 (端口_发送数据.发送数据 ({ 0 }) = 假)
信息框 (“发送数据失败!”, 0, )
时钟1.时钟周期 = 0
.如果真结束
.如果真结束
.判断开始 (组合框_发送方式.现行选中项 = 0)
' 发送2进制时进行以下操作
.如果真 (端口_发送数据.发送数据 (字符 (到数值 (进制转换 (编辑框_手动发送内容.内容, 2, 10)))) = 假)
信息框 (“发送数据失败!”, 0, )
时钟1.时钟周期 = 0
.如果真结束
.判断 (组合框_发送进制.现行选中项 = 1)
' 发送8进制时进行以下操作
.如果真 (端口_发送数据.发送数据 (字符 (到数值 (进制转换 (编辑框_手动发送内容.内容, 8, 10)))) = 假)
信息框 (“发送数据失败!”, 0, )
时钟1.时钟周期 = 0
.如果真结束
.判断 (组合框_发送进制.现行选中项 = 2)
' 发送10进制时进行以下操作
.如果真 (端口_发送数据.发送数据 (字符 (到数值 (编辑框_手动发送内容.内容))) = 假)
信息框 (“发送数据失败!”, 0, )
时钟1.时钟周期 = 0
.如果真结束
.判断 (组合框_发送进制.现行选中项 = 3)
' 发送16进制时进行以下操作
.如果真 (端口_发送数据.发送数据 (字符 (到数值 (进制转换 (编辑框_手动发送内容.内容, 16, 10)))) = 假)
信息框 (“发送数据失败!”, 0, )
时钟1.时钟周期 = 0
.如果真结束
.判断 (组合框_发送进制.现行选中项 = 4)
.如果真 (端口_发送数据.发送数据 (编辑框_手动发送内容.内容) = 假)
信息框 (“发送数据失败!”, 0, )
.如果真结束
.子程序 打开并读入文件, , , 读入16进制文本到编辑框中
.局部变量 文件号, 整数型
通用对话框_打开文件.标题 = “请选择要打开的文本文件:”
通用对话框_打开文件.类型 = 0
通用对话框_打开文件.过滤器 = “文本文件(*.TXT,*.INI)|*.TXT;*.INI|所有文件(*.*)|*.*”
通用对话框_打开文件.初始目录 = 取运行目录 ()
.如果真 (通用对话框_打开文件.打开 () = 真)
文件号 = 打开文件 (通用对话框_打开文件.文件名, #读入, )
.如果 (文件号 ≠ 0)
编辑框_发送文本显示处.内容 = 读入文本 (文件号, )
关闭文件 (文件号)
信息框 (“打开文件失败!”, #错误图标, “错误”)
.如果真结束
.子程序 _打开文本_被单击
打开并读入文件 ()
.子程序 _发送文本_被单击
.如果真 (删全部空 (编辑框_发送文本显示处.内容) = “”)
打开并读入文件 ()
.如果真结束
发送预处理 ()
.如果真 (端口_发送数据.启动 () = 假)
信息框 (“发送启动失败!!!”, 0, )
.如果真结束
处理事件 ()
文本发送计次 = 1
时钟3.时钟周期 = 1
置等待鼠标 ()
' 端口_发送数据.停止 ()
.子程序 _时钟3_周期事件
.如果真 (取文本长度 (编辑框_发送文本显示处.内容) ÷ 2 < 文本发送计次)
时钟3.时钟周期 = 0
端口_发送数据.停止 ()
恢复鼠标 ()
输出调试文本 (到文本 (文本发送计次))
.如果真结束
输出调试文本 (到文本 (取文本中间 (编辑框_发送文本显示处.内容, 文本发送计次 × 2 - 1, 2)))
.如果 (删全部空 (取文本中间 (编辑框_发送文本显示处.内容, 文本发送计次 × 2 - 1, 2)) = “00” 或 到数值 (取文本中间 (编辑框_发送文本显示处.内容, 文本发送计次 × 2 - 1, 2)) = 0)
' 如果为零的时候要特殊处理!
端口_发送数据.发送数据 ({ 0 })
' 发送0时必须使用这样的转换为字节集的方式
端口_发送数据.发送数据 (字符 (到数值 (进制转换 (取文本中间 (编辑框_发送文本显示处.内容, 文本发送计次 × 2 - 1, 2), 16, 10))))
输出调试文本 (字符 (到数值 (进制转换 (取文本中间 (编辑框_发送文本显示处.内容, 文本发送计次 × 2 - 1, 2), 16, 10))))
文本发送计次 = 文本发送计次 + 1
.子程序 _停止发送_被单击
时钟3.时钟周期 = 0
端口_发送数据.停止 ()
恢复鼠标 ()
.子程序 _时钟2_周期事件
.子程序 _选择框_二进制接收数据_被单击
.如果 (选择框_二进制接收数据.选中 = 真)
选择框_八进制接收数据.禁止 = 真
选择框_十进制接收数据.禁止 = 真
选择框_十六进制接收数据.禁止 = 真
选择框_ASCII码接收数据.禁止 = 真
选择框_八进制接收数据.禁止 = 假
选择框_十进制接收数据.禁止 = 假
选择框_十六进制接收数据.禁止 = 假
选择框_ASCII码接收数据.禁止 = 假
.子程序 _选择框_八进制接收数据_被单击
.如果 (选择框_八进制接收数据.选中 = 真)
选择框_二进制接收数据.禁止 = 真
选择框_十进制接收数据.禁止 = 真
选择框_十六进制接收数据.禁止 = 真
选择框_ASCII码接收数据.禁止 = 真
选择框_二进制接收数据.禁止 = 假
选择框_十进制接收数据.禁止 = 假
选择框_十六进制接收数据.禁止 = 假
选择框_ASCII码接收数据.禁止 = 假
.子程序 _选择框_十进制接收数据_被单击
.如果 (选择框_十进制接收数据.选中 = 真)
选择框_八进制接收数据.禁止 = 真
选择框_二进制接收数据.禁止 = 真
选择框_十六进制接收数据.禁止 = 真
选择框_ASCII码接收数据.禁止 = 真
选择框_八进制接收数据.禁止 = 假
选择框_二进制接收数据.禁止 = 假
选择框_十六进制接收数据.禁止 = 假
选择框_ASCII码接收数据.禁止 = 假
.子程序 _选择框_十六进制接收数据_被单击
.如果 (选择框_十六进制接收数据.选中 = 真)
选择框_八进制接收数据.禁止 = 真
选择框_十进制接收数据.禁止 = 真
选择框_二进制接收数据.禁止 = 真
选择框_ASCII码接收数据.禁止 = 真
选择框_八进制接收数据.禁止 = 假
选择框_十进制接收数据.禁止 = 假
选择框_二进制接收数据.禁止 = 假
选择框_ASCII码接收数据.禁止 = 假
.子程序 _选择框_ASCII码接收数据_被单击
.如果 (选择框_ASCII码接收数据.选中 = 真)
选择框_八进制接收数据.禁止 = 真
选择框_十进制接收数据.禁止 = 真
选择框_二进制接收数据.禁止 = 真
选择框_十六进制接收数据.禁止 = 真
选择框_八进制接收数据.禁止 = 假
选择框_十进制接收数据.禁止 = 假
选择框_二进制接收数据.禁止 = 假
选择框_十六进制接收数据.禁止 = 假
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
开发技术下载排行开源啦,MTK(山寨)手机串口通讯AT指令,串码修改开源啦|易语言俱乐部 - 剪贴本
khj28的剪贴本
欢迎来访!您可以点击左上角的链接分别访问khj28的文档,书签,图片和摘要
剪贴本提供免费的网络“剪报”与“笔记”,构建个人知识库。您可以来
开源啦,MTK(山寨)手机串口通讯AT指令,串码修改开源啦|易语言俱乐部
开源啦,MTK(山寨)手机串口通讯AT指令,串码修改开源啦|易语言俱乐部
Jun 4, :38 PM
&&&post] 在下献丑了,写的不好,让各位见笑了,上源码,有不足之处望多多指正不吝赐教.小遗憾,串号没自动枚举处理 [&&&&post]
(248 K) 下载次数:283 &&&& [/post]图片:000222.jpg
加载中……
开源啦,MTK(山寨)手机串口通讯AT指令,串码修改开源啦|易语言俱乐部
&&&post] 在下献丑了,写的不好,让各位见笑了,上源码,有不足之处望多多指正不吝赐教.小遗憾,串号没自动枚举处理 [&&&&post] IMEI.zip (248 K) 下载次数:283 &&&& [/post] 图片:000222.jpg
剪贴本版权所有易语言进程通信模块源码例程程序调用API函数实现进程间的数据交互。
本易语言源码例程属于易语言高级教程。
点评:本源码是进程间数据交互的API例程,易语言也有进程通讯支持库,两者的功能基本是一样。
下载地址 (请使用浏览器下载)
CopyRight & &版权所有易语言网络通信问题_百度知道
易语言网络通信问题
假设A的内网IP:192.168.0.2 外网IP:117.136.9.43B的内网IP:192.168.0.3 外网IP:117.136.9.40如果A要和B发送信息
怎么发送~(用易语言自带的那个服务端和客户组件,这样A和B应该怎么连接)
主要是A和B得服务端和客户的链接问题
怎么连接呢????????
我有更好的答案
假如A为服务端,B为客户端在A的程序需要添加一个服务端控件,设定一下控件的端口号在B的程序添加一个客户空间,然后在_启动窗口_创建完毕 子程序里写客户1.连接(A的IP,你设定的端口)注意上面A的IP是文本型一般这样就连接上了
如果是固定IP 会比较好做要是动态需要其他方法实现了要是内网通信比较简单了采用客户端和服务器组建 服务器组建设定一个端口客户端连接(IP,端口)客户端连接成功 客户端.发送数据(。。。)服务器组建事件里选择
采用服务器.取回数据 即可
这个需要用到P2P技术
其他类似问题
易语言的相关知识
您可能关注的推广回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 易语言论坛 的文章

 

随机推荐