请问怎么通过串口接收二进制码?

vmaster 2005-09-04 04:25:13
没有使用控件,我是这样打开串口的:
hSerial = CreateFile(L"COM4:", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
那之后应该怎么接收单片机传来的二进制码呢?
...全文
259 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
BombZhang 2005-09-04
  • 打赏
  • 举报
回复
现在的人都懒成这样了,随便搜一下就找到了,真是服了
loohe 2005-09-04
  • 打赏
  • 举报
回复
你要是只是接受就用ReadFile(HANDLE hFile,...) ;就可以了,要是还得显示的话就需要一个二进制和字符之间的转换
alanlql 2005-09-04
  • 打赏
  • 举报
回复

//---------------------------------------------------------------
// Write com
// Ret : 0 : OK
// -1 : com not open
// -2 : time out
//---------------------------------------------------------------
int CSerialComunication::iWriteCom(char * psData, size_t iLen)
{
size_t i;
DWORD dwTimer, tmpdw;
LPCVOID lpBuffer;

if( hHandle == NULL ) return( -1 );

for( i = 0; i < iLen; i++ ) {
lpBuffer = psData + i;
dwTimer = GetTickCount( );
do { // untill write sucess or time out.
WriteFile( hHandle, lpBuffer, 1, &tmpdw, NULL);
if( ( GetTickCount( ) - dwTimer )/1000 >= dwTimeWait) return( -2 );
} while( tmpdw != 1 );
}
return( 0 );
}
alanlql 2005-09-04
  • 打赏
  • 举报
回复
带超时功能的读函数,供参考。
//---------------------------------------------------------------
// Read one charator from opened com port
// Ret : 0 : OK
// -1 : com not open
// -2 : time out
//---------------------------------------------------------------
int CSerialComunication::iGetChar(char * cC)
{
DWORD dwTimer, tmpdw;
COMSTAT com_stat;

if( hHandle == NULL ) return( -1 );

dwTimer = GetTickCount( );
do {
ClearCommError( hHandle, &tmpdw, &com_stat );
if( ( GetTickCount( ) - dwTimer )/1000 >= dwTimeWait ) return(-2);
} while( com_stat.cbInQue < 1 ); // Waiting a Charator to read untill time out.

ReadFile( hHandle, cC, 1, &tmpdw, NULL );

return( 0 );
}
AthlonxpX86 2005-09-04
  • 打赏
  • 举报
回复
yun
Featured 2005-09-04
  • 打赏
  • 举报
回复
dirdirdir3 2005-09-04
  • 打赏
  • 举报
回复
使用ReadFile,ReadFile(hSerial,....)
发送使用WriteFile

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧