我能';t使用Visual Studio 2017(C#)通过串行端口发送数据

我能';t使用Visual Studio 2017(C#)通过串行端口发送数据,c#,visual-studio,serial-communication,C#,Visual Studio,Serial Communication,我试图制作一个windows应用程序,但C#串行通信有问题。我读了很多关于它的文章,也看了很多youtube教程,但是交流仍然不起作用。我正在Windows 8.1系统上使用Visual Studio 2017(社区)。问题是,我的代码可以打开串行端口,也可以关闭串行端口,但当我尝试在它们之间发送数据时,什么都没有发生。为了进行测试,我使用TeraTerm并向我的微控制器发送了一些字节,而micorC可以接收到这些字节。但就我的代码而言,正如我所说,什么都不会发生。我的代码是: usin

我试图制作一个windows应用程序,但C#串行通信有问题。我读了很多关于它的文章,也看了很多youtube教程,但是交流仍然不起作用。我正在Windows 8.1系统上使用Visual Studio 2017(社区)。问题是,我的代码可以打开串行端口,也可以关闭串行端口,但当我尝试在它们之间发送数据时,什么都没有发生。为了进行测试,我使用TeraTerm并向我的微控制器发送了一些字节,而micorC可以接收到这些字节。但就我的代码而言,正如我所说,什么都不会发生。我的代码是:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.IO.Ports;

 namespace Cucc
{
    public partial class Form1 : Form
    {
        byte[] d = new byte[1] { 0x0d };
        byte[] a = new byte[1] { 0x0a };

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            serialPort1 = new SerialPort();
            serialPort1.PortName = "COM4"; 
            serialPort1.BaudRate = 9600;
            serialPort1.DataBits = 8;
            serialPort1.StopBits = StopBits.One;
            serialPort1.Parity = Parity.None;
            serialPort1.Open();


        } 

        private void button2_Click(object sender, EventArgs e)
        {
            // Try to send some stuff here
            serialPort1.WriteLine("1");
            serialPort1.Write(a, 0, 1);
            serialPort1.Write(d, 0, 1);
        }

        private void button3_Click(object sender, EventArgs e)
        {
             serialPort1.Close();
        }
    }
 }
我的微控制器总是连接到COM4端口(每次连接时,我都会检查端口)。有人知道为什么我不能发送数据吗?我也尝试过使用Microsoft Visual C#2008 Express Edition,但代码不起作用


提前谢谢

是否有不同的硬件/软件流控制设置?老实说,我真的不知道你指的是哪种流量控制设置。我只是确保在波特率为9600的两种情况下都使用1开始-8数据-无奇偶校验-1停止位帧。我忘了提到一些附加信息:昨天晚上我试图在我朋友的一台电脑上运行代码,但(真令人惊讶)它没有运行。那台计算机有Windows 10系统。但在我的工作场所,我早些时候用相同的命令编写了一个c代码,它在那里工作!那台电脑有Windows 7,我用的是Visual C#2008或2010 Express。有什么不同的硬件/软件流控制设置吗?老实说,我真的不知道你指的是哪种流量控制设置。我只是确保在波特率为9600的两种情况下都使用1开始-8数据-无奇偶校验-1停止位帧。我忘了提到一些附加信息:昨天晚上我试图在我朋友的一台电脑上运行代码,但(真令人惊讶)它没有运行。那台计算机有Windows 10系统。但在我的工作场所,我早些时候用相同的命令编写了一个c代码,它在那里工作!那台电脑有Windows7,我用的是Visual C#2008或2010 Express。