求救-串口如何发ASCII码

hisense 2010-11-04 10:31:40
按照modbus 协议我想往串口中写数据,按照ASCII的模式,如果要发送的数据是如下
: 01 01 00 05 00 01 F9 0D 0A(16进制)
转换成ASCII后是如下
3A 30 31 30 31 30 30 30 35 30 30 30 31 46 39 0D OA
那在c#中编程时,我发送": 01 01 00 05 00 01 F9 0D 0A"
还是 "3A 30 31 30 31 30 30 30 35 30 30 30 31 46 39 0D OA" 啊,谢谢;

C# 中 串口发送示例:
sp.WriteLine(writeBuffer);
...全文
418 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hisense 2010-11-04
  • 打赏
  • 举报
回复
有资料说:

: 的 ASCII码 不就是 3A嘛?

其实,发送串“:010100050001F9”然后尾部加上 0d 0a 2 个字符就可以了,

当然,也可以转换为 byte数组,存放 这个串对应的 ASCII码,再发送 一样!

王顺起 2010-11-04
  • 打赏
  • 举报
回复
1、byte[] buf1 = Encoding.ASCII.GetBytes(你的数组或者字符串);//呵呵,具体格式忘了,反正是这个命令,你必须转化为ASCII发送才正确。“3A 30 31 30 31 30 30 30 35 30 30 30 31 46 39 0D OA”buf1自己得到的,不用你自己翻译。

2、然后你用你的串口对象com.write(buf1)即可。
gomoku 2010-11-04
  • 打赏
  • 举报
回复

byte[] writeBuffer = {0x01, 0x01, 0x00, 0x05...};
sp.Write(writeBuffer, 0, writeBuffer.Length);
alian_1126 2010-11-04
  • 打赏
  • 举报
回复
我顶

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧