|
平台:s3c2440 + wince5.0
在串口驱动文件pdds3c2440_ser.cpp中
- void CPdd2440Uart::XmitInterruptHandler(PUCHAR pTxBuffer, ULONG *pBuffLen)
- {
- ......
- for (DWORD dwByteWrite=0; dwByteWrite
- {
- [color=#FF0000]m_pReg2440Uart->Write_UTXH(*pTxBuffer); //数据写到串口发送寄存器[/color]
- pTxBuffer ++;
- dwDataAvaiable--;
- }
- ......
- }
复制代码
上面的for ()循环是把dwWriteSize个数据从串口发送出去,是不是for循环结束后,数据就完全从串口发送出去了呢?在测试中发现,如果在for循环后立即把TxD功能引脚改变为输入,会出现串口发送的数据最后一个字节会出现错误,增加了一点延时就好了,for循环后数据不是都发送完了吗,为什么会对最后一个字节造成影响呢?要怎么处理才能准确地判断数据已经正确的发送完呢?用USTART寄存器吗?
|
|