#include<reg51h>
#define uchar unsigned char
uchar rec;
bit flag=0;
void uart() interrupt 4
{
if(RI)
{
RI=0;
rec=SBUF;
flag=1;
}
}
main()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
SCON=0x50;
TR1=1;
ES=1;
EA=1;
while(1)
{
if(flag)
{
case
case
default:break
}
}
}
不是 有 接收 事件处理函数 吗?
serialport 实现过程
(1)新建一个项目,命名为Ex13_01,默认窗体为Form1。
(2)在Form1窗体中,主要添加两个Button控件,分别用于执行发送数据和接受数据,添加两个TextBox控件,用于输入发送数据和显示接收数据。
(3)主要程序代码。
private void button1_Click(object sender, EventArgs e)
{
serialPort1PortName = "COM1";
serialPort1BaudRate = 9600;
serialPort1Open();
byte[] data = EncodingUnicodeGetBytes(textBox1Text);
string str = ConvertToBase64String(data);
serialPort1WriteLine(str);
MessageBoxShow("数据发送成功!","系统提示");
}
private void button2_Click(object sender, EventArgs e)
{
byte[] data = ConvertFromBase64String(serialPort1ReadLine());
textBox2Text = EncodingUnicodeGetString(data);
serialPort1Close();
MessageBoxShow("数据接收成功!","系统提示");
}
没有具体地看,但是你说9600波特率,一个字节是100us就不对了,9600波特率是指位速,8位才一个字节,再加上起始位和停止位,那就是10位,所以一个字节需要整整1ms的时间,所以1ms读2个字节是不可能的,看看这个有没有帮助。
//创建一个串口通讯
SerialPort CurrentPort = null;
CurrentPort = new SerialPort();
CurrentPortReadBufferSize = 128;
CurrentPortPortName = comName; //端口号
CurrentPortBaudRate = bandRate; //比特率
CurrentPortParity =parity;//奇偶校验
CurrentPortStopBits = stop;//停止位
CurrentPortDataBits = databit;//数据位
CurrentPortReadTimeout = 1000; //读超时,即在1000内未读到数据就引起超时异常
//绑定数据接收事件,因为发送是被动的,所以你无法主动去获取别人发送的代码,只能通过这个事件来处理
CurrentPortDataReceived += Sp_DataReceived;
CurrentPortOpen();
定义一个变量 byte[] receiveStr;
//绑定的事件处理函数
private static void Sp_DataReceived(object sender, SystemIOPortsSerialDataReceivedEventArgs e)
{
SerialPort sp = sender as SerialPort;
if (sp == null)
return;
byte[] readBuffer = new byte[spReadBufferSize];
spRead(readBuffer, 0, readBufferLength);
//赋值
receiveStr=readBuffer;//当然你可以通过转换将byte[]转换为字符串。
}
//你要求的按钮事件可以这么写
private void button1_Click(object sender, EventArgs e)
{
if(receiveStr!=null)
{
变量 xxx=receiveStr;
}
}
以上就是关于单片机串口接收命令的程序怎样写全部的内容,包括:单片机串口接收命令的程序怎样写、serialport怎么接收串口数据、STM32串口接受数据程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)