用C语言写一段PC端向51单片机串口发送数据的代码
时间: 2024-02-05 21:12:52 浏览: 76
以下是一段用C语言编写的PC端向51单片机串口发送数据的代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
HANDLE hComm;
char portName[] = "COM1"; // 串口名称
DWORD baudRate = 9600; // 波特率
char data[] = "Hello, 51 MCU!"; // 发送数据
DWORD dataSize = sizeof(data); // 数据大小
DWORD bytesWritten = 0; // 实际发送的字节数
// 打开串口
hComm = CreateFile(portName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if (hComm == INVALID_HANDLE_VALUE) {
printf("Failed to open serial port!\n");
return 1;
}
// 配置串口参数
DCB dcb;
GetCommState(hComm, &dcb);
dcb.BaudRate = baudRate;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
SetCommState(hComm, &dcb);
// 发送数据
WriteFile(hComm, data, dataSize, &bytesWritten, NULL);
if (bytesWritten != dataSize) {
printf("Failed to write data to serial port!\n");
return 1;
}
// 关闭串口
CloseHandle(hComm);
printf("Data sent successfully!\n");
return 0;
}
```
上述代码使用Windows API打开串口,配置了波特率、数据位、校验位和停止位等参数,并通过WriteFile函数向串口发送数据。注意:串口名称和波特率需要根据实际情况进行修改。
阅读全文