搜索
bottom↓
回复: 18

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

[复制链接]

出0入0汤圆

发表于 2010-3-28 10:27:34 | 显示全部楼层 |阅读模式
哪位高手 给一点思路

出0入0汤圆

发表于 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);
                        }

                }
}

出0入0汤圆

发表于 2010-3-28 10:56:32 | 显示全部楼层
发觉用C#做上位机不错,感觉比delphi,vb好用得多。

出0入0汤圆

发表于 2010-3-28 11:48:33 | 显示全部楼层
像这种接口通信,我都用labview,呵呵。

C#没接触过。

出0入0汤圆

发表于 2010-4-17 15:22:11 | 显示全部楼层
C#串口 mark

出0入0汤圆

发表于 2010-4-17 15:30:26 | 显示全部楼层
控件 工具栏里就有 和VB差不多 拖过来就行

出0入0汤圆

发表于 2010-4-19 19:43:12 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-27 09:45:13 | 显示全部楼层
ddddddddddddddddd,确实不错

出0入0汤圆

发表于 2010-9-27 14:56:47 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-12 19:13:36 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-4 10:20:26 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-19 20:09:27 | 显示全部楼层
#include <reg52.h>
#include <intrins.h>
#define uint unsigned short
            
char txd2[1]={"\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[0];  
  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)
        {





       
        }
}

出0入0汤圆

发表于 2011-3-29 23:23:06 | 显示全部楼层
C|########33

出0入0汤圆

发表于 2011-3-30 12:39:33 | 显示全部楼层
晕哦,C#又不是C,杂个还有人发单片机的?牛人了!
C#做的上位机出来是要好看点!

出0入0汤圆

发表于 2011-3-30 13:11:41 | 显示全部楼层
C#开发起来比较快.功能也强大.

出0入0汤圆

发表于 2011-3-30 13:13:30 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-3-30 13:20:42 | 显示全部楼层
如果加上stream操作就很好了

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

出0入0汤圆

发表于 2011-7-17 15:30:19 | 显示全部楼层
个个都是牛人啊

出0入0汤圆

发表于 2012-1-17 22:10:08 | 显示全部楼层
MARK
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-5 03:06

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表