肿瘤康复网,内容丰富有趣,生活中的好帮手!
肿瘤康复网 > 浅谈串口DCB流控制设置

浅谈串口DCB流控制设置

时间:2018-11-01 09:10:39

相关推荐

最近做了一个有关串口通信的程序,在我们这边怎么测试都可以,但一交到客户那边就问题百出,不是普通COM口通信失败,就是USB转COM口通信失败。通过LOG,我们知道原因所在,就是我们软件对串口DCB流控制的设置,跟客户的板子对DCB流控制设置不一致。而我们在无法获知客户DCB流控制设置的情况下,瞎改了一番DCB设置,结果是可想而知的。由参考得知如下经验(vc代码),希望和遇到同类问题的XDJM们一起分享。 VOID InitDCB(...) {...........<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> // Set serial parameters dcb.BaudRate = m_dwBaudRate; // Band rate dcb.ByteSize = m_nByteSize; // Data bit, either 7 or 8 dcb.Parity = m_nParity; // Parity, must between 0 to 4 dcb.StopBits = m_nStopBits; // Stop bit must between 0 to 2 dcb.fBinary = TRUE; // Bianry must be TRUE in Win32 dcb.fParity = FALSE; #ifdef WIN32 dcb.fDtrControl = DTR_CONTROL_ENABLE; dcb.fRtsControl = RTS_CONTROL_ENABLE;#endif switch (stPortPara->Flow) { // Judge flow control case IdFlowX: /*--------软件流控制方式--------------- dcb.fOutX = TRUE; dcb.fInX = TRUE; dcb.XonLim = CommXonLim; dcb.XoffLim = CommXoffLim; dcb.XonChar = XON; dcb.XoffChar = XOFF;

--------------------------------------*/

break; case IdFlowHard: /*--------硬件流控制方式--------------- dcb.fOutxCtsFlow = TRUE;#ifdef WIN32 dcb.fRtsControl = RTS_CONTROL_HANDSHAKE;#else dcb.CtsTimeout = 30; dcb.fRtsflow = TRUE;#endif --------------------------------------*/ break; } ........... }

如果觉得《浅谈串口DCB流控制设置》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。