WinAPI写串口通讯的问题

yadang 2005-06-01 09:38:18
DCB m_dcb;

char szBaud[] = "baud=9600 parity=E data=8 stop=0";
GetCommState(m_hComm, &m_dcb);
m_dcb.fParity = 1;
BuildCommDCB(szBaud, &m_dcb);
SetCommState(m_hComm, &m_dcb);

//下面的代码就有问题了
GetCommState(m_hComm, &m_dcb); ---->读出来的m_dcb.fParity=0????

这到底是什么原因?

...全文
113 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yadang 2005-06-05
  • 打赏
  • 举报
回复
qinxiaogang(qinxg):
兄弟看清楚了,不是:m_dcb.Parity
qinxiaogang 2005-06-03
  • 打赏
  • 举报
回复
GetCommState(m_hComm, &m_dcb); ---->读出来的m_dcb.fParity=0????
很正常呀! 里面就是用数字0,1,2...来表示的. 不是用'E'这种字符的
wut55 2005-06-02
  • 打赏
  • 举报
回复
你在
GetCommState(m_hComm, &m_dcb);
后加一个int error = GetLastError();
看看error是什么值,然后用MSDN查一下这个error代码什么。
如果error是0,说明什么错都没有。
那你就得查查SetCommState()的使用合不合情了
yadang 2005-06-02
  • 打赏
  • 举报
回复
各位:
SetCommState()和GetCommState(m_hComm, &m_dcb)都没有错误。使用也没有问题。

是不是在2000下PC机的串口通讯,WIN-API的奇偶校验就不起作用?
huguyue6670 2005-06-02
  • 打赏
  • 举报
回复
对m_dcb初始化错误,在MSDN中查一下 DCB结构,对波特率、奇偶校验位、停止位、数据位分别初始化。

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧