http://msdn.microsoft.com/msdnmag/issues/02/10/NETSerialComm/default.aspx
解决方案 »
- C# EXECL打印问题求助
- 如何将汉字转成字符数组?????????
- 关于客户机向多台服务器循环发数据的问题?tcpclient?socket?
- 用正则表达式从xxxxxx/task/taskListManage.aspx中提取task??
- ######### 获取CPU序列号出错!
- 在下由B/S开发转到C/S遇到很多问题 请高人帮忙!!
- 请问如何重新启动程序,谢谢
- C#访问dbf的时,为什么查询语句一加条件就查不出记录,但加了条件的语句在VFP中能正确执行。
- 火烧眉毛!怎样把用户控件作为里ListView的Item?!!!
- 那里有programming c#下载?
- 请问怎么用C#做插件
- dataGrid数据更新?
{
Win32Com.DCB PortDCB = new Win32Com.DCB();
Win32Com.COMMTIMEOUTS CommTimeouts = new Win32Com.COMMTIMEOUTS();
Win32Com.OVERLAPPED wo = new Win32Com.OVERLAPPED();
IntPtr hPort;
hPort = Win32Com.CreateFile(com, Win32Com.GENERIC_READ | Win32Com.GENERIC_WRITE, 0, IntPtr.Zero,
Win32Com.OPEN_EXISTING, Win32Com.FILE_FLAG_OVERLAPPED, IntPtr.Zero);
if (hPort == (IntPtr)Win32Com.INVALID_HANDLE_VALUE)
{
return false;
} //JH1.1: Changed from 0 to "magic number" to give instant return on ReadFile:
CommTimeouts.ReadIntervalTimeout = Win32Com.MAXDWORD;
CommTimeouts.ReadTotalTimeoutConstant = 0;
CommTimeouts.ReadTotalTimeoutMultiplier = 0;
CommTimeouts.WriteTotalTimeoutMultiplier=1000;
CommTimeouts.WriteTotalTimeoutConstant = 0;
Win32Com.GetCommState (hPort,ref PortDCB);
PortDCB.BaudRate = 9600;
PortDCB.ByteSize = 8;
PortDCB.Parity = (byte)0;
PortDCB.StopBits = (byte)0;
if (!Win32Com.SetCommState(hPort, ref PortDCB))
{
return false;
}
if (!Win32Com.SetCommTimeouts(hPort, ref CommTimeouts))
{
return false;
}
Win32Com.CancelIo (hPort);
Win32Com.CloseHandle (hPort);
return true;
}
System.IntPtr pHandle;
int handle;
//opens the existing file...
handle = CreateFile(fileName,
GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
0,
0);
pHandle=new System .IntPtr (handle);
FileStream fs=new FileStream (pHandle,FileAccess.Write );
string s;
byte[] byteOut;
Int32 dwCount = s.Length;
byteOut = new byte[dwCount];
// for (int i = 0;i<dwCount;i++)
// {
// // ByteStrings.to
// byteOut[i] = System.Convert.ToByte( s[i]);
//
// }
byteOut=Encoding.ASCII .GetBytes (s);
// How many characters are in the string?
fs.Write (byteOut,0,dwCount);
fs.Flush ();
fs.Close ();
Win32Com.CloseHandle (pHandle);
return true;
}
其它应用程序对此串口的操作;
2. 通过GetCommState函数填充设备控制块DCB,再通过调用SetCommState函数配置串
行口的波特率、数据位、校验位和停止位;
3. 创建串行口监视线程监视串行口事件,在此基础上就可以在相应的串口上操作数
据的传输;