private void bntSendFile_Click(object sender, EventArgs e)
{
string fileName = txtFileName.Text.Trim();
if (fileName == "")
{
MessageBox.Show("请选择要发送的文件!", "Error");
return;
}
else
{
sRead = new StreamReader(fileName,Encoding.Default);//解决中文乱码问题
}
timer1.Start();
}
//发送文件时钟
private void timer1_Tick(object sender, EventArgs e)
{
string str1;
str1 = sRead.ReadLine();
if (str1 == null)
{
timer1.Stop();
sRead.Close();
MessageBox.Show("文件发送成功!", "C#串口通讯");
this.toolStripStatusLabel5.Text = "";
return;
}
byte[] data = Encoding.Default.GetBytes(str1);
sp.Write(data, 0, data.Length);
this.toolStripStatusLabel5.Text = " 文件发送中...";
}
以上是一段串口发送一个文件里面的内容。
现在需求如下,,,
现在想把文件的内容按照字节分数组,temp[0],temp[1],temp[2]..........
每个数组里面存放258个字节的内容。其中前两个字节是固定的
temp[0]={0xFF+0xB5+256字节_1},
temp[1]={0xFF+0xB6+256字节_2},
temp[2]={0xFF+0xB5+256字节_3},
temp[3]={0xFF+0xB6+256字节_4}
temp[4]={0xFF+0xB6+256字节_5}
...............................................
直到所有文里面的所有字节内容发送完毕。结束。
你想做是想要什么?将所有字节数组发送完?循环就可以,还是你不知道怎么将文件内容写入字节数组?
主要是每个数组在发送之前加上固定的字节,左右内容发送完毕之后,提醒发送完成,还有就是temp[0]发送之后,会收到回复,确认回复之后,开始发送temp[1],依次循环下去,知道所有数据发送完毕
这个流程很简单,记得给我悬赏金
1。一次读取文件内容256字节,注意使用游标的方法读取,读取的数据放置到buffer_src[256]中
2。u8 buffer_intg[258] = {0};
buffer_intg[0] = 0xff;
buffer_intg[1] = 0xB5;
memcpy(&buffer_intg[2],(void*)buffer_src,sizeof(u8)*256);
3.发送,OK了