我用pc串口和dsp通信
dsp自己收发环回没问题的。dsp收,pc发也没问题dsp发,pc收就会丢少量的数据。我开始怀疑是rts流控制没做好,用示波器抓数据,没发现rts信号激活,就是说没有流控的问题,所以很奇怪。pc我用同步阻塞模式,设置如下,哪位大侠帮我看看: GetCommState(hCom, &dcb ) ; //读串口原来的参数设置
dcb.BaudRate = 115200;
dcb.ByteSize =8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT ;
dcb.fBinary = TRUE ;
dcb.fParity = FALSE;
dcb.fRtsControl = RTS_CONTROL_HANDSHAKE; // 流控制打开
dsp自己收发环回没问题的。dsp收,pc发也没问题dsp发,pc收就会丢少量的数据。我开始怀疑是rts流控制没做好,用示波器抓数据,没发现rts信号激活,就是说没有流控的问题,所以很奇怪。pc我用同步阻塞模式,设置如下,哪位大侠帮我看看: GetCommState(hCom, &dcb ) ; //读串口原来的参数设置
dcb.BaudRate = 115200;
dcb.ByteSize =8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT ;
dcb.fBinary = TRUE ;
dcb.fParity = FALSE;
dcb.fRtsControl = RTS_CONTROL_HANDSHAKE; // 流控制打开
解决方案 »
- rtsp协议//jrtsp3.7.1的example2
- ocx控件加载异常,如何抛出?
- 关于可进行拼写检查和字符替换的C++记事本程序
- 在视图用OPENGL画图与其它控件的掩盖问题?
- webbrowser控件的问题:怎样在窗口中得到 控件消息 以及 鼠标左键单击超连接的内容?
- 有没有画同心圆的控件啊
- 如何监视一个文件夹
- 一个实际的问题,急!
- vc 操作excel时,利用CString存字符串,当字符串过长时,不能写入excel单元格
- 好奇怪的问题,我要关闭在IE中使用JAVASCRIPT打开的提示对话框,如关闭窗口之类东东,既然无效,我的原代码如下望高手指点,全部分献上。
- 运行时Debug报错,不知何原因,急~~~~~~~~~~~
- 如何使对话框上的静态文件被点击后颜色改变?
哈哈哈,我代码如下,怎么解决这个问题
hCom = CreateFile("COM2",GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
//FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,
FILE_ATTRIBUTE_NORMAL,
NULL); if(hCom == INVALID_HANDLE_VALUE)
return 0; SetupComm( hCom, 4096, 4096 ) ;
PurgeComm( hCom, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR ) ; COMMTIMEOUTS CommTimeOuts ;
CommTimeOuts.ReadIntervalTimeout = 0xFFFFFFFF ;
CommTimeOuts.ReadTotalTimeoutMultiplier = 0;
CommTimeOuts.ReadTotalTimeoutConstant = 1000; // 读取数据延时的时间
CommTimeOuts.WriteTotalTimeoutMultiplier = 0;
CommTimeOuts.WriteTotalTimeoutConstant = 1000 ; SetCommTimeouts( hCom, &CommTimeOuts ) ;//设置读写操作所允许的超时 DCB dcb ;
GetCommState(hCom, &dcb ) ; //读串口原来的参数设置
dcb.BaudRate = 115200;
dcb.ByteSize =8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT ;
dcb.fBinary = TRUE ;
dcb.fParity = FALSE;
dcb.fRtsControl = RTS_CONTROL_HANDSHAKE;
SetCommState(hCom, &dcb ) ;
{
unsigned long len; ReadFile(hCom, buf, 1024, &len, NULL);
return len;
}