打开一个bin文件,读取里面的内容,然后将内容按照每组256个字节进行分组,
byte[] buf = new byte[];发送第一组256个字节内容,前面加上FF B5 最终变成
FF B5 +256 总共258个内容进行发送,然后等待收到回复确认(可以用timer控件),
开始发送第二组数据FF B6 +256字节 总共258个发送出去。然后等待收到回复确认,开始发送第三组内容 FF B5 +256,收到回复,再发送FF B6 +256字节,收到回复,以此下去,直到发完所有字节。
C#串口发送数据问题。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- sanyuni 2017-11-21 11:50关注
class Program
{
static void Main(string[] args)
{SerialPort com = new SerialPort() { BaudRate = 115200, PortName = "COM1", DataBits = 8 }; com.DataReceived += Com_DataReceived; com.Open(); //读取二进制文件 FileStream binStream = File.OpenRead("filepath"); //发送buffer byte[] buffer = new byte[258]; buffer[0] = 0XFF; buffer[1] = 0XB5; SetLock(true); //读数据到发送buffer中 while (binStream.Read(buffer, 2, 256) != 0) { //等待回复 while (!GetStatus()) { Thread.Sleep(10); } //发送 com.Write(buffer, 0, buffer.Length); SetLock(false); } } static bool cansend = true; static object sendLock = new object(); static void SetLock(bool status) { lock(sendLock) { cansend = status; } } static bool GetStatus() { bool status = false; lock (sendLock) { status = cansend; } return status; } private static void Com_DataReceived(object sender, SerialDataReceivedEventArgs e) { //接收回复 SetLock(true); } 未测试,不清楚能否跑通
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 Keil uVision5创建project没反应
- ¥15 mmseqs内存报错
- ¥15 vika文档如何与obsidian同步
- ¥15 华为手机相册里面的照片能够替换成自己想要的照片吗?
- ¥15 陆空双模式无人机飞控设置
- ¥15 sentaurus lithography
- ¥100 求抖音ck号 或者提ck教程
- ¥15 关于#linux#的问题:子进程1等待子进程A、B退出后退出(语言-c语言)
- ¥20 web页面如何打开Outlook 365的全球离线通讯簿功能
- ¥15 io.jsonwebtoken.security.Keys