如何向串口发送数据,并接收串口发来的数据

saynev 2011-11-20 05:41:55
我现有一个信号发生器,可以产生不同的电压和电流,这台信号发生器通过串口与电脑相连

我需要用VC编写一个小软件,实现两个功能:
1.用软件来设定电压值和电流值,并通过串口发送给信号发生器;
2.从串口读取信号发生器的数据,并把信号发生器当前的电压和电流值在软件界面上显示出来

通信协议如下:
Serial communications will use the following protocol:
<STX><CMD><,>ARG><,><CSUM><ETX>
注释:
<STX> = 1 ASCII 0x02 Start of Text character
<CMD> = 2 ASCII characters representing the command ID
<,> = 1 ASCII 0x2C character
<ARG> = Command Argument
<,> = 1 ASCII 0x2C character
<CSUM> = Checksum
<ETX> = 1 ASCII 0x03 End of Text character
当要发送电压信号时,将当<CMD> 设置为31
当要发送电流信号时,将当<CMD> 设置为32
当要接收信号发生器当前的电压信号时,<CMD> 为61
当要接收信号发生器当前的电流信号时,<CMD> 为62

我从来没接触过串口通信,从网上查了一些资料和例子,我现在准备用VC带的ActiveX控件Microsoft Communications Control来实现,我现在有几个问题需要咨询大家:
1.怎么设置串口号?
2.如何从串口读取信号发生器的当前状态?
3.如何通过串口向信号发生器发生数据?

我对串口通信一无所知,希望大家能帮帮忙,帮我提供一些思路
...全文
1102 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
saynev 2011-11-21
  • 打赏
  • 举报
回复
谢谢echoyin59和lfchen,问题已经解决了,谢谢你们的帮助
诶呦 2011-11-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 saynev 的回复:]
谢谢楼上两位,我在网上搜到了很多代码,看的有些晕
从串口获得的数据是什么格式的,我要用字符数组来接受吗?
信号发生器会一直通过串口向电脑发出数据,还是要电脑触发后才发出?如果是后者,我在软件中要怎么触发呢?

我现在就是思路上很乱,理不清
[/Quote]
这本书看前3章还是4章就够了,主要看看MSCOMM,以后可以看看SerialPort
一条晚起的虫 2011-11-20
  • 打赏
  • 举报
回复
// MSCOMM的话,
// 获取的格式按照串口的设定,可以是字符串,也可以是二进制串
// 是否会一直发送数据,要根据具体的设备。看你的通讯协议,似乎是应答式的,也就是只有电脑要数据之后,发生器才会返回数据。
// 接收数据等,在OnComm中。
// 具体编程还请看例程,多试试就知道了。
saynev 2011-11-20
  • 打赏
  • 举报
回复
谢谢楼上两位,我在网上搜到了很多代码,看的有些晕
从串口获得的数据是什么格式的,我要用字符数组来接受吗?
信号发生器会一直通过串口向电脑发出数据,还是要电脑触发后才发出?如果是后者,我在软件中要怎么触发呢?

我现在就是思路上很乱,理不清
一条晚起的虫 2011-11-20
  • 打赏
  • 举报
回复
// 既然已经在网上搜索过了,那就继续搜索”VC MSCOMM“,很多详细的代码
诶呦 2011-11-20
  • 打赏
  • 举报
回复
《Visual C++_Turbo C串口通信编程实践》这本书,龚建伟老师的,你搜一下,讲的很细

2,644

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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