控制台下WinApi同步方式实现的串口发送数据
2013-02-03 09:00
316 查看
// ApiOpenCom1.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "windows.h" //using std namespace ; int main(int argc, char* argv[]) { int rc =0; HANDLE hComm=INVALID_HANDLE_VALUE; COMMTIMEOUTS commtimeouts; // const unsigned short * filename="COM1"; hComm = CreateFile("COM1", GENERIC_WRITE|GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);//倒数第2个参数控制 是否使用重叠IO,这里不使用。 // hComm = CreateFile("COM1", // communication port string (COMX) // GENERIC_READ | GENERIC_WRITE, // read/write types // 0, // comm devices must be opened with exclusive access // NULL, // no security attributes // OPEN_EXISTING, // comm devices must use OPEN_EXISTING // FILE_FLAG_OVERLAPPED, // Async I/O 这个是重叠IO,就是异步方式 // NULL); if (hComm == INVALID_HANDLE_VALUE){ rc = GetLastError(); // ELOG2("InitUart::CreateFile('%S') FAILED with err = %d \n\r", filename,rc); printf("Open Com1 Failed with %d\n",rc); return false; }else{ printf("Open success\n");// // system("PAUSE"); }; ///ÅäÖô®¿Ú DCB PortDCB; PortDCB.DCBlength = sizeof(DCB); // ĬÈÏ´®¿Ú²ÎÊý GetCommState(hComm, &PortDCB); PortDCB.BaudRate = 9600; // baud PortDCB.ByteSize = 8; // Number of bits/byte, 4-8 PortDCB.Parity = NOPARITY; PortDCB.StopBits = ONESTOPBIT; if(! SetCommState(hComm, &PortDCB)) { printf("CUartReader::Init -- SetCommState FAILED\n\r"); return false; } char * pHelloworld="HelloWorld\r\n"; unsigned char Helloworld[32]; memcpy(Helloworld,pHelloworld,strlen(pHelloworld)); unsigned long BytesSent; int result; // OpenFile(hComm); // result=WriteFile( hComm, // Handle to COMM Port // Helloworld, // Pointer to message buffer in calling finction // 5, // Length of message to send // &BytesSent, // Where to store the number of bytes sent // NULL // ); // Overlapped structure) DWORD len; char data[1024]; memset(data,0,sizeof(data)); strcpy(data,"data to send "); result=WriteFile(hComm ,data,strlen(data),&len,0); if(result){ printf("Send Over\n"); }else{ rc = GetLastError(); printf("Send Failed with %d\n",rc); } }
相关文章推荐
- 51单片机中用中断方式实现串口数据发送与接收
- 中断方式实现发送数据串口驱动
- .net实现发送邮件,同步方式
- 定时分段执行数据(控制台方式实现)
- STM8S003F使用IO口模拟串口(三)使用中断方式发送和接收数据
- spring jdbcTemplate实现中间库方式同步数据
- 不同数据源之间数据同步的几种实现方式
- 关于RS485通讯中使用STM32串口以DMA方式发送数据丢失字节的问题
- 实现web数据同步的四种方式
- 【stm32】实现STM32的串口数据发送和printf函数重定向
- 实现web数据同步的四种方式
- 实现web数据同步的四种方式
- 使用VB 以HttpPost方式 实现数据发送
- C#串口通信—向串口发送数据,同步接收返回数据
- 智能LED灯 Android界面及串口发送数据实现
- 不同数据源之间数据同步的集中实现方式
- Oracle在线及重做日志分析数据同步(logminer实现方式)
- s3c6410 s3c2440串口发送接收数据的实现(轮询)及相关寄存器
- C#实现串口数据循环发送
- libcurl采用curl_multi_perform() + curl_multi_wait()方式实现异步高性能l发送数据的方法