c# 怎么实现串口发送数据
哪位高手 给一点思路 ///////////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);
}
}
} 发觉用C#做上位机不错,感觉比delphi,vb好用得多。 像这种接口通信,我都用labview,呵呵。
C#没接触过。 C#串口 mark 控件 工具栏里就有 和VB差不多 拖过来就行 mark ddddddddddddddddd,确实不错 mark mark mark #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)
{
}
} C|########33 晕哦,C#又不是C,杂个还有人发单片机的?牛人了!
C#做的上位机出来是要好看点! C#开发起来比较快.功能也强大. MARK 如果加上stream操作就很好了
我一般都是用binarywriter对其流进行操作 个个都是牛人啊 MARK
页:
[1]