#include <windows.h><span>
#include </span><stdio.h>
<span>int</span><span> main()
{
</span><span>//</span><span>1.打开串口</span><span> HANDLE hCom;
hCom </span>= CreateFile(<span>"</span><span>COM1</span><span>"</span><span>,
GENERIC_READ</span>|<span>GENERIC_WRITE,
</span><span>0</span><span>,
NULL,
OPEN_EXISTING,
</span><span>0</span><span>,
NULL);
</span><span>if</span> (hCom ==(HANDLE)-<span>1</span><span> )
printf(</span><span>"</span><span>打开串口失败!n</span><span>"</span><span>);
</span><span>else</span><span>
printf(</span><span>"</span><span>打开串口成功!n</span><span>"</span><span>);
</span><span>//</span><span>2.初始化串口</span><span> DCB dcb;
GetCommState(hCom, </span>&<span>dcb);
dcb.BaudRate </span>= <span>9600</span>;<span>//</span><span>波特率
</span><span>//</span><span>dcb.fParity = 0;</span><span>//</span><span>奇偶校验使能</span>
dcb.ByteSize = <span>8</span>;<span>//</span><span>数据位</span>
dcb.Parity = NOPARITY;<span>//</span><span>奇偶校验</span>
dcb.StopBits = ONESTOPBIT;<span>//</span><span>停止位</span>
SetCommState(hCom, &<span>dcb);
SetupComm(hCom, </span><span>1024</span>, <span>1024</span><span>);
COMMTIMEOUTS TimeOuts;
</span><span>//</span><span>设定读超时</span>
TimeOuts.ReadIntervalTimeout = <span>1000</span><span>;
TimeOuts.ReadTotalTimeoutConstant </span>= <span>5000</span><span>;
TimeOuts.ReadTotalTimeoutMultiplier </span>= <span>500</span><span>;
</span><span>//</span><span>设定写超时</span>
TimeOuts.WriteTotalTimeoutConstant = <span>2000</span><span>;
TimeOuts.WriteTotalTimeoutMultiplier </span>= <span>500</span><span>;
SetCommTimeouts(hCom, </span>&<span>TimeOuts);
</span><span>//</span><span>清空缓冲区</span>
PurgeComm(hCom, PURGE_TXCLEAR|<span>PURGE_RXCLEAR);
Sleep(</span><span>500</span><span>);
</span><span>//</span><span>3.读写串口</span>
unsigned <span>char</span> buf[<span>10</span>] = {<span>0x00</span>, <span>0x06</span>, <span>‘</span><span>D</span><span>‘</span>, <span>‘</span><span>A</span><span>‘</span>, <span>‘</span><span>T</span><span>‘</span>, <span>‘</span><span>A</span><span>‘</span><span>};
BOOL bWriteStat;
DWORD dwBytesWrite </span>= <span>6</span><span>;
bWriteStat </span>= WriteFile(hCom, buf, dwBytesWrite, &<span>dwBytesWrite, NULL);
</span><span>if</span> (!<span>bWriteStat)
{
printf(</span><span>"</span><span>写串口失败!n</span><span>"</span><span>);
}
</span><span>else</span><span>
printf(</span><span>"</span><span>写串口成功!n</span><span>"</span><span>);
unsigned </span><span>char</span> rBuf[<span>1024</span><span>];
BOOL bReadStat;
DWORD dwBytesRead;
bReadStat </span>= ReadFile(hCom, rBuf, <span>1024</span>, &<span>dwBytesRead, NULL);
</span><span>if</span> (!<span>bReadStat)
{
printf(</span><span>"</span><span>读串口失败!n</span><span>"</span><span>);
}
</span><span>else</span><span>
{
printf(</span><span>"</span><span>读串口成功!n</span><span>"</span><span>);
}
</span><span>for</span> (DWORD j = <span>0</span>; j < dwBytesRead; j++<span>)
{
printf(</span><span>"</span><span>%x </span><span>"</span><span>, rBuf[j]);
}
printf(</span><span>"</span><span>n</span><span>"</span><span>);
</span><span>//</span><span>4.关闭串口</span><span> CloseHandle(hCom);
</span><span>return</span><span>0</span><span>;
}</span>
原文:http://www.cnblogs.com/fwst/p/3729318.html
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!