scg08 2013-07-03 03:40 采纳率: 0%
浏览 3651

ReadFile读的串口数据最高位为0,求助

rt用ReadFile读的串口数据最高位不对。比如0x80,读成了00,0x81读成了01,但是小于0x80的数读出来都对。存储用unsigned char保存。代码如下
unsigned char inbuff[1024];
//memset(inbuff,0,4096);//sizeof(inbuff));
memset(inbuff,0,sizeof(inbuff));
DWORD dwError;
int nBytes;
COMSTAT comstat;
CSF103TESTDlg pthis=(CSF103TESTDlg)lpParam;
HWND hdwnd = pthis->m_hWnd;

while(pthis->hCom != INVALID_HANDLE_VALUE)
{
    ClearCommError(pthis->hCom,&dwError,&comstat);
    if(comstat.cbInQue>256) nBytes = 256;
    else nBytes = comstat.cbInQue;                  
    bReadStat = ReadFile(pthis->hCom,inbuff,nBytes,(unsigned long *)&nBytes,NULL);
    if(!bReadStat)
    {
        break;
    }
  • 写回答

2条回答

  • oyljerry 2015-01-03 03:37
    关注

    先打印一接收到数据时的值是否正确,是不是后面做了类型转换

    评论

报告相同问题?

悬赏问题

  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程