永发信息网

读串口数据是遇到00后面的就不读了 怎么解决?

答案:2  悬赏:0  手机版
解决时间 2021-12-25 05:27
bool CommonUart::init(u32 config_data, u32 BaudRate)
{
u8 byteSize = 0x8;
if (!(config_data & DATABIT8)) byteSize = 0x7;

char strPort[8];
sprintf_s(strPort,"COM%d",m_Port+1);

//for(int count = 10;m_hCom == INVALID_HANDLE_VALUE && count;-- count )
if(m_hCom == INVALID_HANDLE_VALUE)
{
DCB dcb;
HANDLE hMT,hCom;
hCom = CreateFileA( strPort,
GENERIC_READ|GENERIC_WRITE,
0, // must be opened with exclusive-access
NULL, // no security attributes
OPEN_EXISTING, // must use OPEN_EXISTING
0, // not overlapped I/O
NULL // hTemplate must be NULL for comm devices
);
if( hCom != INVALID_HANDLE_VALUE)
{
if(GetCommState(hCom,&dcb))
{
dcb.BaudRate = BaudRate; // set the baud rate
dcb.ByteSize = byteSize; // data size, xmit, and rcv
dcb.Parity = NOPARITY; // no parity bit
dcb.StopBits = ONESTOPBIT;
dcb.fNull = 0;
if(!SetCommState(hCom,&dcb))
goto err_handle;

COMMTIMEOUTS to={0};
to.ReadIntervalTimeout = MAXDWORD;
to.ReadTotalTimeoutMultiplier = 0;
to.ReadTotalTimeoutConstant = 0;
to.WriteTotalTimeoutConstant = 10;
to.WriteTotalTimeoutMultiplier = 1;
if(!SetCommTimeouts(hCom,&to))
goto err_handle;
}
if(m_hThread==INVALID_HANDLE_VALUE && onData)
{
hMT = CreateThread(NULL,0,getUartInput,this,0,NULL);
if(hMT == INVALID_HANDLE_VALUE)
goto err_handle;
m_hThread =(void*)hMT;
}

m_hCom = (void*)hCom;
return true;
}
}
err_handle:
uninit();
return false;
}
void CommonUart::write(unsigned char* buf, int len )
{
DWORD bytesWritten;
WriteFile(m_hCom,buf,len,&bytesWritten,NULL);
}

int CommonUart::read(unsigned char* buf, int len ) //成功返回len,否则返回0
{


DWORD bytesread;
ReadFile(m_hCom,buf,(DWORD)len,&bytesread,NULL);
return bytesread;
}
这是串口的打开和读写 数据是16进制格式的 用串口调试工具测试 不管是我发指令给串口调试工具 还是他给我发 只要遇到00后面的数据就没了
谁能帮我解决下!
最佳答案
编译器问题
全部回答
u8的范围只有0-255没有小数 c语言只有float 跟 double 才是小数格式 而且串口助手是无法接受c语言的小数格式的 常规的串口助手只能显示hex(16进制数)和ascii码 所以才需要取出每一位并转换成ascii码
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
单选题城市生态系统是高度开放的生态系统,下
芦淞区株洲华融湘江银行(市府路支行)这个地址
①男孩与他的妹妹相依为命。父母早逝,她是他
( )头( )尾这两个字是动物
死飞包是什么
阿城区哈尔滨新感觉发型工作室地址有谁知道?
最近出了一堆鞋“蝴蝶鞋鸳鸯鞋”什么的,还有
玛丝菲尔素公司待遇如何
七字QQ网名有宋、颜、珍 随意其中一字
舞阳县漯河魔发美业(原北大发型设计)地址在什
什么是市场战略和市场营销组合战略?分别包括
一个正方体木块,从顶点上挖去一个小正方体后
巫婆用英语怎么说
为什么天空也会那么难过的流泪?
美心商用门的宣传真实么?
推荐资讯
单选题目前科技无法阻止台风的到来,也无法改
那我呢 英文怎么说
阅读下面一则材料,从中你有什么发现?写出你
只分布在亚洲的南部、东南部的气候类型是:A.
什么牌子的轻卡好
刷ROM用不用电脑
全民小镇家族任务每周什么时候更新时间表
满庄收费站网点地址有知道的么?有点事想过去
工商行政管理局北城工商所在什么地方啊,我要
下列哪个高原面积最大?
死无对证 千夜的灵异小说免费的有吗
养老保险补交有滞纳金吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?