您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页C语言实现USB串口通信

C语言实现USB串口通信

来源:华佗小知识
#include <windows.h>
#include <stdio.h>

int main()
{
	HANDLE hComm; // 定义串口句柄
	char comPort[] = "COM3"; // 串口名称 具体看你自己的设备
	char send_buf[] = "111"; // 发送的数据内容
	DWORD bytesWritten, bytesRead; // 发送和接收的字节数
	char receive_buf[100]; // 接收缓冲区

	// 打开串口
	hComm = CreateFile(comPort, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
	if (hComm == INVALID_HANDLE_VALUE) {
		printf("Failed to open serial port %s\n", comPort);
		return 1;
	}

	// 配置串口
	DCB dcbSerialParams = { 0 };
	dcbSerialParams.DCBlength = sizeof(dcbSerialParams);
	if (!GetCommState(hComm, &dcbSerialParams)) {
		printf("Failed to get serial parameters\n");
		CloseHandle(hComm);
		return 1;
	}
	dcbSerialParams.BaudRate = CBR_115200;
	dcbSerialParams.ByteSize = 8;
	dcbSerialParams.StopBits = ONESTOPBIT;
	dcbSerialParams.Parity = NOPARITY;
	if (!SetCommState(hComm, &dcbSerialParams)) {
		printf("Failed to set serial parameters\n");
		CloseHandle(hComm);
		return 1;
	}

	// 发送数据
	if (!WriteFile(hComm, send_buf, sizeof(send_buf), &bytesWritten, NULL)) {
		printf("Failed to write to serial port\n");
		CloseHandle(hComm);
		return 1;
	}
	printf("Sent %d bytes: %s\n", bytesWritten, send_buf);

	// 接收数据
	if (!ReadFile(hComm, receive_buf, sizeof(receive_buf), &bytesRead, NULL)) {
		printf("Failed to read from serial port\n");
		CloseHandle(hComm);
		return 1;
	}
	printf("Received %d bytes: %s\n", bytesRead, receive_buf);

	// 关闭串口
	CloseHandle(hComm);
	return 0;
}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务