通过串口发送文件??? 就象串口调试助手一样,不知如何通过串口发送一文件(.hex)。请高手指教。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 HANDLE CommFile; DCB CommDCB;// DWORD ErrorFlag;// COMSTAT ComState; DWORD iLength; BOOL rc; // CString oBuff; if((CommFile=CreateFile("COM2",GENERIC_WRITE,0,NULL, OPEN_EXISTING,0,NULL))== (HANDLE)-1) { MessageBox("无法开放通讯口,请检查是否有此通讯口!","错误!",MB_ICONERROR); return; } SetupComm(CommFile,8192,8192); GetCommState(CommFile, &CommDCB);/* CommDCB.BaudRate = 9600;// CommDCB.BaudRate =19200; CommDCB.ByteSize = 8; CommDCB.Parity = NOPARITY; CommDCB.StopBits = ONESTOPBIT; */ CommDCB.BaudRate = 19200; CommDCB.ByteSize = 8; CommDCB.Parity = NOPARITY; CommDCB.StopBits = ONESTOPBIT; CommDCB.EvtChar = 0x0d;// BuildCommDCB("COM1: 96,n,8,1 ", &dcb); CommDCB.fDtrControl = DTR_CONTROL_ENABLE; CommDCB.fRtsControl = RTS_CONTROL_ENABLE; CommDCB.fInX = CommDCB.fOutX = 1; CommDCB.XonLim = CommDCB.XoffLim = 100 ; CommDCB.XonChar = 0x11; CommDCB.XoffChar = 0x13; CommDCB.fBinary = TRUE ; CommDCB.fParity = TRUE ; SetCommState(CommFile,&CommDCB); iLength=40; rc = WriteFile(CommFile, &buffer,iLength, &iLength,NULL); //ClearCommError(CommFile,&ErrorFlag,&ComState); //iLength=ComState.cbOutQue; CloseHandle(CommFile); MessageBox("传送完毕","传送成功",MB_OK); 其实和一般的TCP/IP传数据一样的打开文件 读取缓冲区大小的数据 然后发送不过最好是加上CRC校验这样可以检验你发送数据的正确性 然后发送 对方接收 VC的窗口滚动条,我想给它加上颜色或进行绘图,以达到一种美观的效果,怎么搞? 如何得到目录下所有文件的全路径? 关于如何用shell接口得到完整的特殊文件路径的问题 新手问题... 关于CPtrList的一段程序:求修改[100分] 一个比较奇怪的小问题,困扰我一个晚上了! 想找本C++的入门书,哪位有呀? 用SetSystemPowerState(..)可以使得电脑待机,但是如果要唤醒待机的电脑该用哪个API呢 请问高手??关于静态文本 如何使用CEditView? 求其他贴子的问题 请教OnNotify的用处!
DCB CommDCB;
// DWORD ErrorFlag;
// COMSTAT ComState;
DWORD iLength;
BOOL rc;
// CString oBuff;
if((CommFile=CreateFile("COM2",GENERIC_WRITE,0,NULL,
OPEN_EXISTING,0,NULL))== (HANDLE)-1)
{
MessageBox("无法开放通讯口,请检查是否有此通讯口!","错误!",MB_ICONERROR);
return;
}
SetupComm(CommFile,8192,8192);
GetCommState(CommFile, &CommDCB);
/* CommDCB.BaudRate = 9600;
// CommDCB.BaudRate =19200;
CommDCB.ByteSize = 8;
CommDCB.Parity = NOPARITY;
CommDCB.StopBits = ONESTOPBIT;
*/
CommDCB.BaudRate = 19200;
CommDCB.ByteSize = 8;
CommDCB.Parity = NOPARITY;
CommDCB.StopBits = ONESTOPBIT;
CommDCB.EvtChar = 0x0d;
// BuildCommDCB("COM1: 96,n,8,1 ", &dcb);
CommDCB.fDtrControl = DTR_CONTROL_ENABLE;
CommDCB.fRtsControl = RTS_CONTROL_ENABLE;
CommDCB.fInX = CommDCB.fOutX = 1;
CommDCB.XonLim = CommDCB.XoffLim = 100 ;
CommDCB.XonChar = 0x11;
CommDCB.XoffChar = 0x13;
CommDCB.fBinary = TRUE ;
CommDCB.fParity = TRUE ;
SetCommState(CommFile,&CommDCB);
iLength=40;
rc = WriteFile(CommFile, &buffer,iLength,
&iLength,NULL);
//ClearCommError(CommFile,&ErrorFlag,&ComState);
//iLength=ComState.cbOutQue;
CloseHandle(CommFile);
MessageBox("传送完毕","传送成功",MB_OK);