有个串口方面的问题。必须经过串口调试工具打开一次串口后。。
就是第一次连接好单片机与主机后,必须经过串口调试工具打开一次串口,再关闭后。软件写串口,读串口才正常。以后也正常。
单步调试了一下,发现软件中打开串口是正常的,但就是写串口后,读数据总是为空。
但为什么用串口调试工具打开一次,正常打开后,再关闭。以后软件中的读写串口都正常了?
代码如下:
m_pGpsComm->FlushComm();
m_pGpsComm->WriteComm(sendBuf, sendLen);
Sleep(500);
recvLen = m_pGpsComm->ReadComm(recvBuf, 128);
用虚拟串口模拟的时候,每次都是正确的,不知道是不是和硬件有关系?
不知道为什么
[解决办法]
你的软件没有对串口正确初始化
所以需要用别的软件初始化一下
检查初始化代码吧,比如设置波特率什么的
[解决办法]
单步调试了一下,发现软件中打开串口是正常的,但就是写串口后,读数据总是为空。
使用示波器,分别观察异常情况下和正常情况下的波形,对比一下电平值、波形周期长度,肯定有些不一样的地方,然后根据不同的地方出现在哪里,进一步分析。
[解决办法]
初始化发送一下波特率,停止位,数据位,奇偶位之类的。
[解决办法]
你的软件没有对串口正确初始化
[解决办法]
1楼正解。
1楼说的初始化,是指的上电后的第一次初始化, 你代码中这部分应该没做,或者有问题,
不知道你说的 什么以后每次初始化都正确 是什么意思, 第一次初始化后,后面反复通信即可。
你以为后面每次通信都初始化?
你加串口工具明显是,硬件检测到后,自己做了初始化工作嘛。。。