




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档 1欢迎下载 串口调试助手预源代码 using System using System Collections Generic using System ComponentModel using System Data using System Drawing using System Linq using System Text using System Threading Tasks using System Windows Forms 精品文档 2欢迎下载 using System IO using System IO Ports using System Threading using DevExpress XtraEditors using System Text RegularExpressions namespace WindowsFormsApplication3 public partial class Form1 XtraForm SerialPort sp1 new SerialPort int Flag 0 int StateChanged 0 int StateChanged Ascii 1 int StateChanged 16 0 string Temp null string Temp memoSend null private void memoSend EditValueChanged object sender EventArgs e 精品文档 3欢迎下载 public Form1 InitializeComponent sp1 DataReceived sp1 DataReceived private void Form1 Load object sender EventArgs e this MaximizeBox false 检查是否有串口 string str SerialPort GetPortNames if str null MessageBox Show 本机没有串口 error return 添加串口项目 foreach string port in System IO Ports SerialPort GetPortNames cbSerial Properties Items Add port 串口设置默认选择项 cbSerial SelectedIndex 0 精品文档 4欢迎下载 Control CheckForIllegalCrossThreadCalls false sp1 DataReceived new SerialDataReceivedEventHandler sp1 DataReceived 订阅委托 private void comboBoxEdit1 SelectedIndexChanged object sender EventArgs e private void OpenSerial Click object sender EventArgs e sp1 Close SerialPort sp1 new SerialPort if sp1 IsOpen 串口是关闭的 设置参数 打开串口 try 获取串口号 string serialName cbSerial SelectedItem ToString sp1 PortName serialName 精品文档 5欢迎下载 设置各参数 string strBaudRate cbBaudRate Text string strDateBits cbDataBits Text string strStopBits cbStop Text sp1 BaudRate Convert ToInt32 strBaudRate 波特率 sp1 DataBits Convert ToInt32 strDateBits 数据位 switch cbStop Text 停止位 case 1 sp1 StopBits StopBits One break case 1 5 sp1 StopBits StopBits One break case 2 sp1 StopBits StopBits Two break default MessageBox Show Error 参数不正确 Error break switch cbParity Text 校验位 case 无 精品文档 6欢迎下载 sp1 Parity Parity None break case 奇校验 sp1 Parity Parity Odd break case 偶校验 sp1 Parity Parity Even break default MessageBox Show Error 参数不正确 Error break if sp1 IsOpen true sp1 Close sp1 Open btnOpen Enabled false labSerial Text 串口号 sp1 PortName labState Text 状 态 打开 catch System Exception ex MessageBox Show Error ex Message Error 精品文档 7欢迎下载 return private void CloseSerial Click object sender EventArgs e if sp1 IsOpen sp1 Close labSerial Text 串口号 sp1 PortName labState Text 状 态 关闭 private void Send Click object sender EventArgs e string StrSend memoSend Text if sp1 IsOpen MessageBox Show 请先打开串口 Error return else 精品文档 8欢迎下载 if rbtnSendStr Checked 字符串发送 if ckTimeSend Checked tmSend Interval int Parse Time 1000 时间单位是秒 化成毫秒单位 tmSend Start 开启定时器 else sp1 Write StrSend 写入数据 else 十六进制发送 if ckTimeSend Checked tmSend Interval int Parse Time 1000 精品文档 9欢迎下载 tmSend Start else string StrSend 1 StrSend Trim 去掉前 后的空格 string StrSend 2 StrSend 1 Replace string StrSend 3 string Join Regex Matches StrSend 2 Cast ToList string StrArray StrSend 1 Split 用 空格符隔开字符串数组 var Str Send new List int byteBufferLength StrArray Length 数组StrArray的长度 for int i 0 i StrArray Length i if StrArray i Trim byteBufferLength continue else if StrArray i Length 3 精品文档 10欢迎下载 Str Send Add StrArray i else Str Send AddRange Devide StrArray i int byteBufferLength Str Send Count byte byteBuffer new byte byteBufferLength int ii 0 for int i 0 i Str Send Count i Byte bytesOfStr Encoding Default GetBytes StrArray i int decNum 0 if StrArray i continue else decNum Convert ToInt32 Str Send i 16 把字 符串转成16进制数 byteBuffer ii Convert ToByte decNum 精品文档 11欢迎下载 try decNum Convert ToInt32 Str Send i 16 把 字符串转成16进制数 byteBuffer ii Convert ToByte decNum catch System Exception ex MessageBox Show 输入错误 提示 return ii sp1 Write byteBuffer 0 byteBuffer Length 从第0个开始 写入byteBuffer 长度bytebuffer的长度 private List Devide string str 精品文档 12欢迎下载 var ret Regex Matches str Cast ToList ConvertAll s s Value ToString return ret private void tmSend Tick object sender EventArgs e string StrSend memoSend Text if rbtnSendStr Checked sp1 Write StrSend else string StrSend 1 StrSend Trim 去掉前后的空格 string StrArray StrSend 1 Split 用空格符隔 开字符串数组 var Str Send new List for int i 0 i StrArray Length i if StrArray i Trim 精品文档 13欢迎下载 continue else if StrArray i Length 3 Str Send Add StrArray i else Str Send AddRange Devide StrArray i int byteBufferLength Str Send Count byte byteBuffer new byte byteBufferLength int ii 0 for int i 0 i Str Send Count i int decNum 0 try 精品文档 14欢迎下载 decNum Convert ToInt32 Str Send i 16 把字符串转 成16进制数 byteBuffer ii Convert ToByte decNum catch System Exception ex MessageBox Show 输入错误 提示 return ii sp1 Write byteBuffer 0 byteBuffer Length 从第0个开始写入 byteBuffer 长度bytebuffer的长度 void sp1 DataReceived object sender SerialDataReceivedEventArgs e byte byteRead new byte sp1 BytesToRead if rbtnRceStr Checked memoRcv Text sp1 ReadExisting memoRcv SelectionStart memoRcv Text Length memoRcv ScrollToCaret 精品文档 15欢迎下载 else if rbtnRce16 Checked Byte receivedData new Byte sp1 BytesToRead 创建 接收字节数组 sp1 Read receivedData 0 receivedData Length string strRcv null for int i 0 i receivedData Length i strRcv receivedData i ToString X2 memoRcv Text strRcv memoRcv SelectionStart memoRcv Text Length memoRcv ScrollToCaret private void Stop Click object sender EventArgs e 精品文档 16欢迎下载 退出接收数据 tmSend Stop private void Clear Click object sender EventArgs e 清 空接收数据 memoRcv Text private void Time Press object sender KeyPressEventArgs e if Char IsLetterOrDigit e KeyChar e Handled true else e Handled false private void TextTime KeyPress object sender KeyPressEventArgs e 限制定时发送时间只能输入数字 精品文档 17欢迎下载 if Char IsNumber e KeyChar e Handled true else e Handled false private void memoSend KeyPress object sender KeyPressEventArgs e private void btnClose Click object sender EventArgs e 关闭 串口 if sp1 IsOpen sp1 Close labSerial Text 串口号 sp1 PortName labState Text 状 态 关闭 精品文档 18欢迎下载 private void Send16 KeyPress object sender KeyPressEventArgs e string Send16 memoRcv Text byte buff new byte Send16 Length 2 int index 0 for int i 0 i Send16 Length i 2 buff index Convert ToByte Send16 Substring i 2 16 index string result Encoding Default GetString buff MessageBox Show result memoRcv Text result private void SendStr KeyPress object sender KeyPressEventArgs e string SendStr memoRcv Text byte ba System Text ASCIIEncoding Default GetBytes SendStr StringBuilder sb new StringBuilder foreach byte b in ba sb Append b ToString x 精品文档 19欢迎下载 MessageBox Show sb ToString memoRcv Text sb ToString private void rbtnSend16 CheckedChanged object sender EventArgs e StateChanged 16 1 StateChanged Ascii 0 string StrSend memoSend Text if Temp memoSend StrSend Trim Flag 0 else memoSend Text foreach char S in StrSend memoSend Text byte S ToString X2 精品文档 20欢迎下载 private void rbtnSendStr CheckedChanged object sender EventArgs e if StateChanged 16 1 Flag 1 StateChanged 16 0 StateChanged Ascii 1 string StrSend memoSend Text Temp memoSend T
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 延安大学护理真题及答案
- 2025年执业药师考试真题及答案
- 2025年药剂师资格考题库及标准答案解析
- 2025年高压电工考试题库(高压试验技术操作)实操技巧试题(附答案)
- 2025年传染病及突发公共卫生事件报告和处理服务规范培训试题(含答案)
- 2025年旅游地理模拟考试题含答案(附解析)
- 2025年低压电工复审考试题库及答案
- 中考理综作文真题及答案
- 海水养殖海参创新创业项目商业计划书
- 应用流媒体服务拓展创新创业项目商业计划书
- 年产四万吨聚脂长丝工厂设计说明书
- 四年级教材《劳动》课件
- 《电动汽车充电设备检验试验规范 第1部分:非车载充电机》
- 2024年河南鹤壁市鹤山区姬家山产业园政府专职消防员招聘笔试参考题库附带答案详解
- BCG 中国合成生物学产业白皮书2024
- 三年级数学倍的认识 省赛一等奖
- 新能源电动汽车的发展历程
- LS保温复合板施工方案
- 肾盂癌-疾病研究白皮书
- 共有权人同意卖房证明四篇
- 美学第二讲:美的本质
评论
0/150
提交评论