C#串口发送数据问题。
 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}
...............................................
直到所有文里面的所有字节内容发送完毕。结束。

c#

3个回答

你想做是想要什么?将所有字节数组发送完?循环就可以,还是你不知道怎么将文件内容写入字节数组?

ccc9149
未知昵称 主要是每个数组在发送之前加上固定的字节,左右内容发送完毕之后,提醒发送完成,还有就是temp[0]发送之后,会收到回复,确认回复之后,开始发送temp[1],依次循环下去,知道所有数据发送完毕
大约 2 年之前 回复

主要是每个数组在发送之前加上固定的字节,左右内容发送完毕之后,提醒发送完成,还有就是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了

ccc9149
未知昵称 C#没有memcpy这个函数
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!