关于串口通信的地址问题!!!

cflanker 2000-09-04 04:35:00
小弟的信号采集器是8位的。可同时采集8个不同的模拟量,不知道如何从
串口同时读出这8个数据。如何分配地址等 望各位大虾祥以告知!
...全文
897 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cflanker 2000-09-08
  • 打赏
  • 举报
回复
信号采集器是单片机端.
能举一个例子读这8个量么?
请详细一点给一个例子,分不多,如果你能帮帮我,分我都给你了
^_^
please!
duanyi 2000-09-08
  • 打赏
  • 举报
回复
如果想照抄别人的协议,加了分,我给你mail过去!!!!
duanyi 2000-09-08
  • 打赏
  • 举报
回复
关于此协议的其他部分可以自己定义,不过我的解释应该够祥细了.
duanyi 2000-09-08
  • 打赏
  • 举报
回复
懂了吗??
下班了!!!
duanyi 2000-09-08
  • 打赏
  • 举报
回复
再把编码的方式介绍一下:
比如:主机向从机 #0224(cr)
#——— 命令表示符
02——— 呼叫从机地址
2———在该从机上执行命令类型(如1代表你的波特率需改变吗,2代表读各模拟输入值)
4———命令参数,这里表示NO.4通道的值
从机回答:
%0224254(cr)
%———命令表示符
0224——同上
254——表示04通道2.54V
duanyi 2000-09-08
  • 打赏
  • 举报
回复
cflanker,是这样的。主:Computer,从:单片机控制的智能模块(可以有多个这样的单元,用不同的地址进行识别。假设地址分别为01,02,03....)
duanyi 2000-09-08
  • 打赏
  • 举报
回复
具体的协议是:
主机发送一个字符串(命令字串),从机一直在侦听串口上的信号,当有信号时不管是谁的信号一律接收(这有点像网卡控制),当读到的命令是给该模块的则做控制,否则继续侦听。打个比方,主机叫02号从机,你的名字(或你的第三通道模拟信号是多少、你的波特率需改变吗?等),02从机听到是叫自己则按要求执行命令,并返回一个回答字符串给主机。
03从机听到不是自己,则不理它。
cflanker 2000-09-08
  • 打赏
  • 举报
回复
duanyi 我先给你50fen . 帮我彻底搞清楚了 在给好么?
我说的 就是PC+单片机主从模式的.台湾的.
duanyi 2000-09-08
  • 打赏
  • 举报
回复
我以前做过你说的!!所以觉得非常亲切.
你知道建立在串口通信协议上的软件传输协议吗??我是指专门用于这种PC+单片机主从模式的。其实假如你要是采集其他8、16、24、32....个模拟采集器,你会怎么考虑呢?
这时就是串口通信协议上的软件传输协议大显神通的时候了。Modbus就是其中一种,不过复杂了点。比较简单的像台湾的几家串口通信公司的协议。真的很好用!!!
如果你给我加分,我就继续说!!!否则,又白费唾沫了!!!
subzero 2000-09-06
  • 打赏
  • 举报
回复
这8个模拟量是8个字节?
信号采集器是单片机端吧?
顺序读8个字节不就得了
C#串口介绍以及简单串口通信程序设计实现 源代码和串口程序介绍连接:https://www.cnblogs.com/JiYF/p/6618696.html 本站积分太贵,自己变得。。直接到连接地址下载代码 周末,没事干,写个简单的串口通信工具,也算是本周末曾来过,废话不多,直接到主题 串口介绍   串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。(至于再详细,自己百度) 串口应用:   工业领域使用较多,比如:数据采集,设备控制等等,好多都是用串口通信来实现!你要是细心的话,你会发现,目前家用国网智能电能表就具备RS485通信总线(串行总线的一种)与RS232可以相互转化(当然一般,非专业的谁也不会闲的蛋疼,趴电表上瞎看,最多也就看看走了多少度电) RS232 DB9介绍: 1.示意图 2.针脚介绍: 载波检测(DCD) 接受数据(RXD) 发出数据(TXD) 数据终端准备好(DTR) 信号地线(SG) 数据准备好(DSR) 请求发送(RTS) 清除发送(CTS) 振铃指示(RI) 3.实物图: 以下是我购买XX公司的一个usb转串口线:这个头就是一个公头,另一端是一个usb口 笨小孩串口工具运行图: 1.开启程序 2.发送一行字符串HelloBenXH,直接将针脚的发送和接收链接起来就可以测试了(针脚2 接受数据(RXD) 和3 发出数据(TXD))直接链接, C#代码实现:采用SerialPort 1.实例化一个SerialPort [csharp] view plain copy 在CODE上查看代码片派生到我的代码片 private SerialPort ComDevice = new SerialPort(); 2.初始化参数绑定接收数据事件 [csharp] view plain copy 在CODE上查看代码片派生到我的代码片 public void init() { btnSend.Enabled = false; cbbComList.Items.AddRange(SerialPort.GetPortNames()); if (cbbComList.Items.Count > 0) { cbbComList.SelectedIndex = 0; } cbbBaudRate.SelectedIndex = 5; cbbDataBits.SelectedIndex = 0; cbbParity.SelectedIndex = 0; cbbStopBits.SelectedIndex = 0; pictureBox1.BackgroundImage = Properties.Resources.red; ComDevice.DataReceived += new SerialDataReceivedEventHandler(Com_DataReceived);//绑定事件 }

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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