williamrain 发表于 2010-3-28 10:27:34

c# 怎么实现串口发送数据

哪位高手 给一点思路

camtime 发表于 2010-3-28 10:50:06

///////////C#串口大至例子////////////////////

using System;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports; //串口引用这个

public class ComDemo
{

                private SerialPort _comPort;

                private void initComPort()
                {
                        this._comPort = new SerialPort();
                        this._comPort.PortName = "com1";
                        this._comPort.BaudRate = 9600;
                        this._comPort.Handshake = Handshake.None;
                        this._comPort.DataBits = 8;                                //数据位8
                        this._comPort.StopBits = StopBits.One;        //停止位1
                        this._comPort.Parity = Parity.None;                //不带校检
                        this._comPort.DataReceived += new SerialDataReceivedEventHandler(this.comPort_DataReceived);
                        // 串口读取事件过程
                        this._comPort.WriteBufferSize = 1024;
                        this._comPort.WriteTimeout = 3000;
                        this._comPort.ReadTimeout = 3000;
                }

                //基本的串口写入
                public void WriteCom(string data)
                {
                        char[] arrChr = data.ToCharArray();
                        int len = arrChr.Length;
                        this._comPort.Write(arrChr, 0, len);
                }

                // 串口读取事件过程
                private void comPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
                {

                        try
                        {
                                int count = 0;
                                count = this._comPort.BytesToRead;//读取字节数
                                bool ctrlCalls = Control.CheckForIllegalCrossThreadCalls;
                                Control.CheckForIllegalCrossThreadCalls = false;
                              //异步控件调用检查,如果读取事件中,要操作界面的话,请设成false

                                string text = this._comPort.ReadExisting();//读取已收到的内容
                                //数据自行处理


                                Control.CheckForIllegalCrossThreadCalls = ctrlCalls;
                              //还原数值
                        }
                        catch (Exception err)
                        {
                                MessageBox.Show(err.Message);
                        }

                }
}

camtime 发表于 2010-3-28 10:56:32

发觉用C#做上位机不错,感觉比delphi,vb好用得多。

undeadhuman 发表于 2010-3-28 11:48:33

像这种接口通信,我都用labview,呵呵。

C#没接触过。

cursive 发表于 2010-4-17 15:22:11

C#串口 mark

sddp001 发表于 2010-4-17 15:30:26

控件 工具栏里就有 和VB差不多 拖过来就行

youxin2004 发表于 2010-4-19 19:43:12

mark

lianxiwang2008 发表于 2010-4-27 09:45:13

ddddddddddddddddd,确实不错

rkfch 发表于 2010-9-27 14:56:47

mark

663098673 发表于 2010-11-12 19:13:36

mark

wjhltk 发表于 2010-12-4 10:20:26

mark

lin1936 发表于 2010-12-19 20:09:27

#include <reg52.h>
#include <intrins.h>
#define uint unsigned short
            
char txd2={"\n"};
                       
                       
void fasong(void )       
         
{   
   uint i,j,l,m,k;
   m=0;
while(m<10)
{        m++;


        for(l=0;l<50;l++)

        {
    for(i=50;i>l;i--)

{
   SBUF=' ';
while(TI==0)
   ;
   TI=0;
          
    for(k=0;k<500;k++)
        ;
       
           }

for(j=0;j<l*2+1;j++)

{
   SBUF='*' ;
   while(TI==0)
   ;
   TI=0;
   for(k=0;k<500;k++)
   
   ;
}

          SBUF='\n';
while(TI==0)
;
TI=0;       
for(k=0;k<5000;k++)
;
   

}


       for(l=0;l<50;l++)
       {
       for(i=0;i<l+2;i++)
          {
          SBUF=' ';
          while(TI==0)
          ;
          TI=0;
                for(k=0;k<500;k++)
                ;
          
             }
                for(j=98;j>2*l+1;j--)
                {
               
                  SBUF='*';
          while(TI==0)
          ;
          TI=0;
                for(k=0;k<500;k++)
                ;   
                  }
        SBUF=txd2;
while(TI==0)
;
TI=0;       
for(k=0;k<5000;k++)
;

          }

                   }        }

                                                                                                                               

main()                                                                            
{
        TMOD = 0x20;                        // 定时器1工作于8位自动重载模式, 用于产生波特率
        TH1 = 0xFD;                                // 波特率9600
        TL1=0xFD;
       
        SCON = 0x50;                        // 设定串行口工作方式
        PCON = 0x00;                        // 波特率不倍增
               
        TR1= 1;                                // 启动定时器1


       fasong();

       
        while(1)
        {





       
        }
}

hekun559 发表于 2011-3-29 23:23:06

C|########33

TigerRay 发表于 2011-3-30 12:39:33

晕哦,C#又不是C,杂个还有人发单片机的?牛人了!
C#做的上位机出来是要好看点!

jianchangd 发表于 2011-3-30 13:11:41

C#开发起来比较快.功能也强大.

pisgah 发表于 2011-3-30 13:13:30

MARK

yajira 发表于 2011-3-30 13:20:42

如果加上stream操作就很好了

我一般都是用binarywriter对其流进行操作

10192201 发表于 2011-7-17 15:30:19

个个都是牛人啊

wenfaxiang 发表于 2012-1-17 22:10:08

MARK
页: [1]
查看完整版本: c# 怎么实现串口发送数据