一般来说,过程如下:
1,配置串口参数、波特率等,开启串口中断;
void Init_UART()
{
}
2,中断函数里写中断响应函数,根据接收的指令或者数据,执行相应的动作;
程序一般为:
void UART_ISR() interrupt x using y
{
串口中断处理函数
}
x - 单片机的C51中断号
y - 指定使用的当前工作寄存器组号(0-3 PSW中的RS0,RS1组合)
3,主程序
int main(void)
{
Init_UART()
while(1)
{
//数据发送函数
}
}
串口发数据是用"C#WriteLine();和Write();"的么???????????我有段通过网线发单片机的代码,串口传送的代码找不着了,你自己琢磨一下,反正我记得不是用你说的这方法做的,write是写数据的作用
this.openFileDialog1.FileName = ""
this.openFileDialog1.Filter = "(*.ini)|*.ini"
this.openFileDialog1.ShowDialog()
if (this.openFileDialog1.FileName.ToString().Trim() == "")
{
return
}
StreamReader ObjtReader = new StreamReader(this.openFileDialog1.FileName)
string StrIniconfg = ""
StrIniconfg = ObjtReader.ReadToEnd()
ObjtReader.Close()
this.timer1.Enabled = false
byte[] StrZhiL = Encoding.ASCII.GetBytes("sendconf")
ClientSocket.Send(StrZhiL, StrZhiL.Length, SocketFlags.None)
System.Threading.Thread.Sleep(1000)
string Strsend = ""
int Cshu = 0
if (StrIniconfg.Length % 4096 >0)//把配置文件按长度4096字节,分开发送
{
Cshu = (int)StrIniconfg.Length / 4096 + 1
}
else
{
Cshu = (int)StrIniconfg.Length / 4096
}
for (int i = 0i <Cshui++)
{
if (i == Cshu - 1)
{
Strsend = StrIniconfg.Substring(i * 4096, StrIniconfg.Length - i * 4096)
}
else
{
Strsend = StrIniconfg.Substring(i * 4096, 4096)
}
byte[] SendFile = Encoding.ASCII.GetBytes(Strsend.ToString())
ClientSocket.Send(SendFile, SendFile.Length, SocketFlags.None)
}
byte[] SendFile1 = Encoding.ASCII.GetBytes("nosendconf")
ClientSocket.Send(SendFile1, SendFile1.Length, SocketFlags.None)
MessageBox.Show("配置文件发送完成!","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Asterisk )
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)