C#串口数据读取,cc2431通过串口将数据包传送给pc,我希望通过c#编写一个串口通信程序读取传送过来的数据
C#中有一个serialport类应该是可以实现我所希望的功能,我用readline()函数程序会卡住,用readexisting()读出来为空,DataReceived...
C#中有一个serialport类应该是可以实现我所希望的功能,我用readline()函数程序会卡住,用readexisting()读出来为空,DataReceived事件编程不会用,我不知道cc2431传感器传过来的具体数据格式是什么,不过我用串口调试工具comtools会得到如 04C0E0D8273B0323E4D8003B002004C00407FC04C32320042024FF这样的数据(hex接收,assci接收则为乱码),如果有谁能给我一个可用的源程序,我将继续加分
展开
3个回答
展开全部
由于我电脑主板没有COM口,无法测试,但是,这种COM口的操作,就如你说的,使用serialport类来实现。
SerialPort Port = new SerialPort();
Port.Open();
byte[] bufferRead = new byte[Port.BytesToRead];
Port.Read(bufferRead, 0, bufferRead.Length - 1);
Port.DataReceived += Port_DataReceived;//可以不用
Port.Close();
void Port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
//当然,这事件也没什么意思,可以不写。
}
不要使用readline,readexisting
其实,你用comtools得到的也是byte缓冲区的字节呀。
追问
我希望能够实现这样的一个过程,就是一个button 点击 然后串口发过来的数据(希望的数据如我提问的那样是一连串十六进制数)就保存在一个text里,或者不保存也行,通过字符串能显示在textbox上也行,您给的那个read()函数最后读出来的就是十六进制吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
迪凯特科技(北京)有限公司
2023-07-28 广告
2023-07-28 广告
要从电脑的一个串行口接收数据并将其从另一个串行口发送出去,你可以使用以下步骤:1. 确定你要使用的两个串行口。在大多数计算机上,串行口通常被称为COM1、COM2等。确保你了解每个串行口的名称或编号。2. 编写一个程序来读取来自一个串行口的...
点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
展开全部
你好!!
你的这个程序,首先,要分析出cc2431串口发送的内容;
cc2431 发送的是16进制,单片机的程序是你自己写的吗
你的这个程序,首先,要分析出cc2431串口发送的内容;
cc2431 发送的是16进制,单片机的程序是你自己写的吗
更多追问追答
追问
不是我写的,我是用comtools才知道cc2431发送过来的是什么数据,会不会comtools这个软件包含了对数据的解析?之前我接收04C0E0D8273B0323E4D8003B002004C00407FC04C32320042024FF这样的数据也是在那个软件上选了hex接收方式才得到的,所以我想如果我自己编程想得到这样的数据,应该还涉及什么编码啊,转换成十六进制的过程,您能帮我解答一下吗
追答
你收到的这一串数据,就是编码格式;
cc2431发送的时候,已经做了16进制的处理,所以你收到的就是16进制;
你想要解析收到的数据包,还是要很费周折的,要不你就去找你的cc2431的技术资料
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用seriaport现实串口通讯互交最好的还是用提供的DataReceived事件,如果要自己控制接受数据的话用《FabKiller》说的可以实现,不过之间的接受时间需要注意一下,要最好保证下位机数据已经发完一次性读取,这个时间就要看下位机的发送间隔了
追问
cc2431是一个移动传感器,它不断更新自己的位置信息,也不断地往pc发送数据,程序要求实现的是来多少就接多少的功能,并能在实时显示出来。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询