当前位置:编程学习 > C#/ASP.NET >>

c#中无论是COM几个都能打开串口的代码!

 public void btnOpen_Click(object sender, RoutedEventArgs e)
         {
             port1 = new SerialPort();
             port1.PortName="COM1";
             port1.BaudRate = 9600;//波特率
            port1.Parity  = Parity.None;//无奇偶校验位
            port1.StopBits = StopBits.Two;//两个停止位
             port1.Handshake = Handshake.RequestToSend;//控制协议
           port1.ReceivedBytesThreshold = 4;//设置 DataReceived 事件发生前内部输入缓冲区中的字节数
            port1.DataReceived += new SerialDataReceivedEventHandler(port1_DataReceived);//DataReceived事件委托
        }
这里打开的串口是COM1,能不能是这样我这个程序来和单片机通讯。我不知道用的是哪个串口,也能打开我想要打开的串口。求大神指教 --------------------编程问答--------------------
引用 楼主 u011287497 的回复:
 public void btnOpen_Click(object sender, RoutedEventArgs e)
         {
             port1 = new SerialPort();
             port1.PortName="COM1";
             port1.BaudRate = 9600;//波特率
            port1.Parity  = Parity.None;//无奇偶校验位
            port1.StopBits = StopBits.Two;//两个停止位
             port1.Handshake = Handshake.RequestToSend;//控制协议
           port1.ReceivedBytesThreshold = 4;//设置 DataReceived 事件发生前内部输入缓冲区中的字节数
            port1.DataReceived += new SerialDataReceivedEventHandler(port1_DataReceived);//DataReceived事件委托
        }
这里打开的串口是COM1,能不能是这样我这个程序来和单片机通讯。我不知道用的是哪个串口,也能打开我想要打开的串口。求大神指教


那就遍历所有端口啊 --------------------编程问答-------------------- 这……你不光需要看是哪个串口,还需要知道对应的波特率等等的参数,可以有个默认值,需要提供一个配置界面来配置默认参数,也可以写入到配置文件中,总之你设置的这些参数都是要可变的才可以,写死就算你遍历了所有串口又有什么用,每个都去打开一下看超时不超时吗?不现实 --------------------编程问答-------------------- 况且,波特率不对你接受的数据也是乱码,还是搞成可配置的项吧。 --------------------编程问答-------------------- 这个问题可以通过串口调试助手解决,单片机上要设置跟你程序中相同的波特率以及停止位和奇偶校验。使用串口调试助手可以打开很多个串口,用电脑连接你要调试的单片机设备,然后打开串口调试助手获取传过来的数据,在调试助手中查看是哪个串口获得的数据,然后再程序里面写死就可以了。 串口调试助手网上有很多,随便下载一个就可以了。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,