标准DLL,可以采用DllImport进行调用。例如:
代码如下 | 复制代码 |
[DllImport("KMY350X.dll")] private static extern int OpenPort(int PortNum, int BaudRate); |
如果一些厂家比较懒的话,没有提供相应的dll,我们只能对它进行串口通信编程了。以前从没接触过串口编程,最近在一个项目中有几个地方都需要采用串口通信,跟公司一个老手请教后,感觉学到了很多东西,特在此做个总结:
一:首先我们来认识下什么是串口:
右键 我的电脑-管理-设备管理器-端口,选择一个端口,点击属性。
我们可以看到该串口的属性,在C#中我们使用SerialPort类来表示串口
代码如下 | 复制代码 |
ConfigClass config = new ConfigClass();
|
二:串口调试工具:
在对串口进行编程时候,我们要向串口发送指令,然后我们解析串口返回的指令。在这里向大家推荐一款工具。
串口调试助手.exe
将要发送的指令用空格隔开,选择HEX显示为放回的字符串。
三:正式编程:
代码如下 | 复制代码 |
编写Comm类: public class Comm public SerialPort serialPort; public Comm() public bool IsOpen private void StartReading() private void StopReading() private void ReadPort() public void Open() public void Close() public void WritePort(byte[] send, int offSet, int count)
|
注册串口:
代码如下 | 复制代码 |
Comm comm = new Comm(); if (comm.IsOpen) { comm.DataReceived += new Comm.EventHandle(comm_DataReceived); } 发送指令:
/// <summary> 收到指令,并解析:
void comm_DataReceived(byte[] readBuffer1) readComm.DataReceived -= new Comm.EventHandle(readComm_DataReceived); log.Info("发卡完成!"); } |