c#类,高分悬赏,大虾请进...... 我做的一个界面,现在需要我用串口给指纹识别模块发指令,指纹识别模块收到后就返回一条信息,然后我根据这条信息在进行判断,界面与指纹识别模块建立了通信,然后返回一条信息,指纹识别模块在给我录入指纹的图像.....现在就是这之间的通信怎么写,其次如何让这些来回发的信息都是自动进行的....我用c#写的界面... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 System.IO.Ports.SerialPort找到指纹模块的串口,打开,读写.还要根据你的要求看是否用线程.参考msdn或网上例子. 呵呵, 仅供参考.SerialPort 常用的方法有 Read,ReadLine, Write, WriteLine,及接收数据事件DataReceived, 根据设备不同的反馈数据自动做出反应, 示例如下: private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { string strRecv = serialPort1.ReadLine(); switch (ParseCmd(strRecv)) { case CmdType.Cmd1: string strFeedBack = ""; // 回复给设备的指令数据 //处理 strFeedBack // .. serialPort1.WriteLine(strFeedBack); break; case CmdType.Cmd2: // 在主窗体上显示设备发送的数据 // 因为当前方法不属于主线程, 要修改窗体UI, 必须通过 Invoke 回发更改请求 ShowMessage(strRecv); break; case CmdType.Cmd3: // 其他反馈 //若需要开启新线程处理 Thread th = new Thread(HandleCmd3); th.Start(strRecv); break; case CmdType.UnKnownCmd: // 无法解析的反馈 //.. break; } } private void ShowMessage(string message) { if (this.InvokeRequired) { this.Invoke(new Action<string>(ShowMessage), message); } else { listBox1.Items.Add(message); } } private CmdType ParseCmd(string str) { CmdType cmdTypeReturn = CmdType.UnKnownCmd; // 对从串口读出的数据进行解析, 得出需要回复指令类型 // ... return cmdTypeReturn; } public enum CmdType // 指令类型 { UnKnownCmd, Cmd1, Cmd2, Cmd3, } 看看指纹接口说明 至于串口通讯 研究一下System.IO.Ports.SerialPort类就可以了 关于ado.net连接池问题 新手C#操作注册表碰见问题!!各位高手快快帮忙 更新textbox内容问题(winfrom) 求解决方案(数据库) C#窗体 使用 Dotfuscator 混淆项目时出错。 Access数据合并问题!! 高分请教了:接口的实现能隐藏么? 关于命名空间的一个小问题 大家用什么控件显示留言内容 【高分求救】关于Riegl Z420i点云与影像匹配问题 求c#串口通信的高手...
找到指纹模块的串口,打开,读写.还要根据你的要求看是否用线程.
参考msdn或网上例子.
SerialPort 常用的方法有 Read,ReadLine, Write, WriteLine,及接收数据事件DataReceived, 根据设备不同的反馈数据自动做出反应, 示例如下:
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
string strRecv = serialPort1.ReadLine();
switch (ParseCmd(strRecv))
{
case CmdType.Cmd1:
string strFeedBack = ""; // 回复给设备的指令数据
//处理 strFeedBack
// ..
serialPort1.WriteLine(strFeedBack);
break; case CmdType.Cmd2: // 在主窗体上显示设备发送的数据
// 因为当前方法不属于主线程, 要修改窗体UI, 必须通过 Invoke 回发更改请求
ShowMessage(strRecv);
break; case CmdType.Cmd3: // 其他反馈
//若需要开启新线程处理
Thread th = new Thread(HandleCmd3);
th.Start(strRecv);
break; case CmdType.UnKnownCmd: // 无法解析的反馈
//..
break;
}
} private void ShowMessage(string message)
{
if (this.InvokeRequired)
{
this.Invoke(new Action<string>(ShowMessage), message);
}
else
{
listBox1.Items.Add(message);
}
} private CmdType ParseCmd(string str)
{
CmdType cmdTypeReturn = CmdType.UnKnownCmd;
// 对从串口读出的数据进行解析, 得出需要回复指令类型
// ...
return cmdTypeReturn;
}
public enum CmdType // 指令类型
{
UnKnownCmd,
Cmd1,
Cmd2,
Cmd3,
}