Leco CS-444 红外碳硫仪 串口数据读取只返回一个“f”

yidongliange4 2014-08-20 12:12:32
我用C#.NET写了一个串口程序去读Nport转到电脑上的com口,可读到的是 cs-444不停的发过来的 一个单字符“f”, 这是个什么情况啊?第一次做串口程序,这是要应答吗?还是配置问题?

代码 :
void cmr_InvokeDataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
SerialPortInvoke sp = (SerialPortInvoke)sender;
byte[] _data = new byte[sp.BytesToRead];
sp.Read(_data, 0, _data.Length);
string dataStr = Encoding.Default.GetString(_data);


Model.ReceiveCache mdRC = new Model.ReceiveCache();
mdRC.DataContent = dataStr;
mdRC.ProcessFlag = 0;
mdRC.ReciveTime = DateTime.Now.ToString("yyyyMMddHHmmss");
mdRC.HostName = sp.ServerName;
BLL.ReceiveCache bllRc = new BLL.ReceiveCache();
int id=bllRc.Add(mdRC);
string str = string.Format("{0}:{1}:{2}", id, DateTime.ParseExact(mdRC.ReciveTime, "yyyyMMddHHmmss", null).ToString("yyyy/MM/dd HH:mm:ss"), mdRC.DataContent);
SetMsg(str, sp.ServerName); //向消息UI写入消息
}

所有的分数都在这了 。。。
...全文
152 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yidongliange4 2014-08-26
  • 打赏
  • 举报
回复
引用 2 楼 Z65443344 的回复:
如果设备发送多个字节,而你只能收到单字节,最大的可能是波特率设置错误
多谢了! 最后原因找到了,
被一条串口转USB的线给坑了 ,他转换出来的数据是错误的
lrzxc 2014-08-26
  • 打赏
  • 举报
回复
引用 3 楼 yidongliange4 的回复:
[quote=引用 2 楼 Z65443344 的回复:] 如果设备发送多个字节,而你只能收到单字节,最大的可能是波特率设置错误
多谢了! 最后原因找到了,
被一条串口转USB的线给坑了 ,他转换出来的数据是错误的[/quote] 有时候很差的硬件真的害死人
於黾 2014-08-20
  • 打赏
  • 举报
回复
如果设备发送多个字节,而你只能收到单字节,最大的可能是波特率设置错误
於黾 2014-08-20
  • 打赏
  • 举报
回复
1.问厂家要协议,看到底应该发什么,什么含义 2.用串口调试助手,看收到的到底是什么,你的程序是否跟串口调试助手收到的数据一致

110,536

社区成员

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

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

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