首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

s3c6410 WinCE 6 串口收发,该怎么解决

2012-03-17 
s3c6410 WinCE 6 串口收发s3c6410 和单片机通信,波特率是576006410 发送3个字节的命令给单片机,单片机马上

s3c6410 WinCE 6 串口收发
s3c6410 和单片机通信,波特率是57600

6410 发送3个字节的命令给单片机,单片机马上回复3个字节的确认信息

测试发现6410发送完命令之后,要过几毫秒才能收到单片机的信息,快则3毫秒,慢则10毫秒,不知道是不是正常??

因为我要发送一系列的指令才能完成一个动作,所以通讯时间加起来还是比较可观的,浪费了50毫秒以上

已经用轮询的方式去读串口数据了

C/C++ code
DWORD PSerialPort::CommRecvTread(LPVOID lparam){    DWORD dwLength;    BYTE *recvBuf = new BYTE[MAX_READSIZE];    PSerialPort *pClass = (PSerialPort*)lparam;    while(TRUE)    {            // 等待线程退出事件        if (WaitForSingleObject(pClass->m_ExitThreadEvent, 0) == WAIT_OBJECT_0)            break;            if (pClass->m_hComm != INVALID_HANDLE_VALUE)        {                // 从串口读取数据            while(ReadFile(pClass->m_hComm, recvBuf, pClass->mReadSize, &dwLength, NULL))            {                if(dwLength != 0)                    pClass->onCommRecv(recvBuf, dwLength);            // 接收成功,调用回调函数                else                    break;            }        }    }    delete[] recvBuf;    return 0;}




[解决办法]
3ms的时间应该是正常的了。
楼主是通过什么函数来测这个流逝时间的,GetTickCount?

[解决办法]
用示波器看下端口时间
[解决办法]
串口的确是有延迟的,3ms算正常
[解决办法]
是呀,在WinCE下串口延迟很正常,没法像单片机中断处理那么实时,这个比较难解决!

热点排行