任务是通过单片机硬件通过串口发送数据到PC上,然后存到文件中。
单片机中串口使用的是HL340 USB转串口芯片,发送的数据为0-255之间的数。
visual c#的串口接收部分程序为
using System;
using System.IO.Ports;
using System.IO;
public class PortChat
{
static bool _continue;
static SerialPort _serialPort;
public static void Main()
{
int message;
_serialPort = new SerialPort();
StreamWriter sw = File.CreateText("文件路径+文件名");
_serialPort.BaudRate = 115200;
_serialPort.PortName = "COM3";
_serialPort.ReadTimeout = -1;
_serialPort.WriteTimeout = -1;
_serialPort.Open();
_continue = true;
while(_continue)
{
message = _serialPort.ReadByte();
sw.WriteLine(message);
}
}
}
目前出现的问题是文件中的前10几个数(个数每次也不太固定)有些问题,这10几个数中原值凡是超过128的,写入文件中的值均是减去128的,不知道是什么原因?为什么ReadByte在读取输入缓冲区的一个字节的时候没有把最高位的“1”读到吗?