利用C#向串口按顺序循环发送一条一条指令的问题

现在有四条指令,我想按顺序循环发送一条一条命令,利用计数器该怎样做呢?或者有没有其他办法?... 现在有四条指令,我想按顺序循环发送一条一条命令,利用计数器该怎样做呢?或者有没有其他办法? 展开
 我来答
灰姑娘的霸气
推荐于2017-09-03 · TA获得超过1.3万个赞
知道大有可为答主
回答量:3145
采纳率:72%
帮助的人:243万
展开全部
1、在界面添加串口控件
2、设置串口的属性
3、根据你协议的情况确定是16进制发送还是发送字符串,编写发送程序
4、编写串口接收程序,通过接收的数据,分析出设备控制情况

List<byte[]> list=new List<byte[]>();byte[] bt=new byte[]{0x10,0x22};//第一条指令list.Add(bt);
bt=new byte[]{0x10,0x22,0xAB};//第二条指令list.Add(bt);
//重复至第n条
foreach(byte[] b in list){
//发送b至串口,这里应该是同步等对方回复信号
}
syht2000
高粉答主

2013-08-04 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
List<byte[]> list=new List<byte[]>();
byte[] bt=new byte[]{0x10,0x22};//第一条指令
list.Add(bt);

bt=new byte[]{0x10,0x22,0xAB};//第二条指令
list.Add(bt);
//重复至第n条

foreach(byte[] b in list)
{
//发送b至串口
}

 

 当然,如果条数固定也可以不用list,用交错数组

byte[][] list = new byte[][]
{
new byte[]{0x10,0x22},
new byte[]{0x11,0x22,0xAB},
new byte[]{0x12,0x22,0xAB}
};
foreach(byte[] b in list )
{
//发送b至串口
}
追问
我是做的winform程序,将指令先放在textbox中的,这个怎么做呢?
追答

// 加一个方法,在textbox你真接填入诸如10 22 AB CD E0就行了


       public static byte[] HexStringToByteArray(string s)
        {
            s = s.Replace(" ", "");
            byte[] buffer = new byte[s.Length / 2];
            for (int i = 0; i < s.Length; i += 2)
            {
                buffer[i / 2] = (byte)Convert.ToByte(s.Substring(i, 2), 16);
            }
            return buffer;
        }


然后将上面两种方法中的new byte[]{0x10,0x22}改成HexStringToByteArray(textBox1.Text)这种就行了

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-04
展开全部
定义指令数组
输出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式