C# WPF 串口发送程序

15 篇文章 4 订阅

关于串口通信,之前用MFC架构的时候做过一次,也写了文章如下:
MFC RS232串口通信
最近的项目因为对于界面的美化要求高了很多,用MFC架构去美化界面是件要命的事,因此转而用了WPF架构。其中用到的串口通信部分自然也就只能重新研究下了。关于虚拟串口的工具还有串口调试工具,则用的还是原来MFC相关文章所提供的那两个,有需要的可以去那篇文章的下载链接中下载。
稍微研究了WPF架构的串口实现,万万没想到比MFC容易了不只一个数量级,简直就是直接拿来应用,无需费多少工夫,因此只是将实现的代码贴出来给大家参考:

public SerialPort serialPort;//串口对象类
public MainWindow()
{
    InitializeComponent();
    if (InitCOM("COM3"))
    {
        SendCommand("asdasdasd");//发送字符
    }
}
/// 串口接收通信配置方法
/// 端口名称
public bool InitCOM(string PortName)
{
    serialPort = new SerialPort(PortName, 9600, Parity.None, 8, StopBits.One);
    serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);//DataReceived事件委托
    serialPort.ReceivedBytesThreshold = 1;
    serialPort.RtsEnable = true;
    return OpenPort();//串口打开
}
/// 数据接收事件
private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
   // Thread.Sleep(2000);
    byte[] readBuffer = new byte[serialPort.ReadBufferSize];
    serialPort.Read(readBuffer, 0, readBuffer.Length);
    string str = System.Text.Encoding.Default.GetString(readBuffer);
    MessageBox.Show(str);
}
//打开串口的方法
public bool OpenPort()
{
    try//这里写成异常处理的形式以免串口打不开程序崩溃
    {
        serialPort.Open();
    }
    catch { }
    if (serialPort.IsOpen)
    {
        return  true;
    }
    else
    {
        MessageBox.Show("串口打开失败!");
        return false;
    }
}
//向串口发送数据
public void SendCommand(string CommandString)
{
    byte[] WriteBuffer = Encoding.ASCII.GetBytes(CommandString);
    serialPort.Write(WriteBuffer, 0, WriteBuffer.Length);
}
  • 9
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值