㈠ 如何使用RS232串口通信
RS232串口通信,可以是单片机与单片机,单片机与电脑,电脑与电脑,或者其它什么两个设备就可以通信的。你要什么设备看
要是有单片机,不但要在硬件上,用串口线连接两个,还要给单片机写程序的。你问不明确的。
㈡ RS232串口通信的程序怎么写啊
c或vb中有mscomm控件很好用,我常用,以下是我用delphi写的
with mscomm1 do begin
commport:=1; //端口号
settings:=9600,n,8,1; //端口设置
InputMode:=0; //设置或返回Input属性取回的数据的类型 0:文本 1:二进制
RThreshold:=1; //每次接收到字符即产生OnComm事件
SThreshold:=0; //传输缓冲区允许最小字符数
InBufferCount:=0; //清空接收缓冲区内容
InputLen:=0; //为0时 Input一次读取整个缓冲区内容
DTREnable:=true; //数据终端准备好
RTSEnable:=true; //发送请求
end;
mscomm1.Output:=edit1.text;//发送
str:=mscomm1.input; //接收
㈢ 有没有用过RS232控制过电源E3631A的同学
今天也用串口调试工具 与 python脚本测试了一下
在rmt模式下 串口看来只能发最基础的命令 像查询可能不支持
查阅手册 除了2-3交叉 还有 2组需要交叉 不知道是不是因为这个可能不能实现查询命令?
因为连最基本的*IDN?都执行不了的话 其他的查询就更不用提了
电源是安捷伦的E3640A
基本的 VOLT X.X,CURR X.X,*SAV X,*RCL X 命令基本看来就够用了 其他的就是设置一下档位根据具体的仪器
使用python看来也实现起来比较方便 就是在命令后面 加上了 \n\r
摘自 水木 BBS
㈣ 如何控制RS232
什么软件都可以, 找针对的网上的RS232驱动教程,下载对应软件的模块驱动包。
至于你的发送信号轮循周期, 建议你看点通讯方面的书,避免出错。
基本道理如下:(任何软件)
找出对应串口初始化模块程序 ---只执行一次
找出串口发送信号程序 --- 放入循环中,设置发送周期时间如50ms或100ms
找出串口关闭程序模块 -- 放在循环最后,只执行一次。
看不懂以上的话,建议找最基础的书来做个demo
㈤ 我的单片机有一个RS232的串口,但是控制两个外设,可以怎么做啊
这个需要你从硬件软件上实现,硬件可以将RS232分为2个,然后软件编程的时候发送一定格式的帧,需要标示下源地址与目的地址,这样应该就可以了
㈥ 串口RS-232发送代码问题
“商业软件”串口发送和接收数据,发送的只能是字符串型的代码,设备要收十六进制代码
答案:
1、分析
发送字符串型,实际是一个一个字符发送的,设备也是一个一个十六进制代码接受的。
应此,如果设备端要接收“55 01 01 02 01”这样5个字节的十六进制代码,软件端发送可以这样,
例如发送字符串变量是buff:
char *buff[10];
buff[0]=0x55;
buff[1]=0x01;
buff[2]=0x01;
buff[3]=0x02;
buff[4]=0x01;
不幸的是如果要发送“55 01 01 02 01 00 00 5a”这样8个字节的十六进制代码,由于里面含有十六进制00(即0x00),0x00字符表示是'\0',在字符串中表示的字符串结束。
看你运气了,如果程序的源代码中发送字符串模块,发送字符长度是通过判断字符串长度(strlen)来工作的,那你怎么也发送不出“55 01 01 02 01 00 00 5a”这样8个字节的十六进制代码,从上看出
buff[5]=0x00;buff[6]=0x00;buff[7]=0x5a;时,你的软件会认为字符串长度只有5。只会发送出“55 01 01 02 01”这样5个字节的十六进制代码。如果你的软件发送字符长度是根据你输入或设定的,那能正常发送“55 01 01 02 01 00 00 5a”这样8个字节的十六进制代码。
例如发送字符串变量是buff:
char *buff[10];
buff[0]=0x55;
buff[1]=0x01;
buff[2]=0x01;
buff[3]=0x02;
buff[4]=0x01;
buff[5]=0x00;
buff[6]=0x00;
buff[7]=0x5a;
2、解决办法(不该源代码的情况下)
做个中间件,需要用到PC的多个串口通道(串口不够用多串口卡扩展),系统接线也要调整,如果是1对1(一套软件对一个设备)
例如:软件是用com1口发送接收,原来是直接com1口接设备,现在改成,com1口接com2口,com2口同时也接设备(注意RS232是可以三线通讯的,PC端com1口的2脚接com2口的3脚,com2口的3脚接设备的2脚,PC端com1口的3脚接com2口的2脚,com2口的2脚接设备的3脚,PC端com1口的5脚接com2口的5脚,接设备的5脚),这样做的原理是通过com2口来正确发送给设备十六进制代码。并且com1向com2发送的命令需要修改。例如
要发送“55 01 01 02 01 00 00 5a”这样8个字节的十六进制代码,软件这端
发送字符串变量是buff:
char *buff[10];
buff[0]=0x55;
buff[1]=0x01;
buff[2]=0x01;
buff[3]=0x02;
buff[4]=0x01;
buff[5]=0xee;
buff[6]=0xff;
buff[7]=0xee;
buff[8]=0xff;
buff[9]=0x5a;
com2口中间件收到“55 01 01 02 01 ee ff ee ff 5a”这样10个字节的十六进制代码,他就会进行转换(0xee表示下个字节需要转码,转码方法是减去0xff,那0xff实际就是0x00。)这样通过中间件在com2口向设备发送“55 01 01 02 01 00 00 5a”这样8个字节的十六进制代码。
以上是发送,如果接收呢,同样看商业软件的接受机制,如果商业软件收到0x00,实际就是'\0',表示一个字符串接受终止,那么接收数据怎么整都不能正常收到“55 02 01 02 01 00 00 5a”这样8个字节的十六进制代码(含0x00),那么只有改写源代码一种方法。
3、后记
如果你的所谓商业软件要求别人改源代码不切实际,而且商业软件也不复杂,可以找人重写商业软件了,现在做软件外快的人太多了,拿公司软件稍微改改,时间用不了多少,费用也不高,几千吧
㈦ rs232串口通信如何实现
请把问题写清楚,“rs232串口通信如何实现?”
你想问的是软件编程?还是硬件?
汇编?还是高级语言?硬件电路?
串口通信的数据传送方式?通讯协议?还是串口的接口功能的定义?
你这问题太大了! 就好比“你的电脑是如何工作的?” 起码在这里解释不完,你需要缩小范围,至少换成别的,例如:“RS232串口的C/C++编程设计”、或者“51芯片RS232通讯汇编实现”、或者“RS232通讯如何同步”等等;
㈧ 求RS232串口控制智能步进电机控制器
上位机(PC机或具有串口的其他控制设备)通过RS232串口连接到本控制板后,向控制板发送一串ASCII代码指令既可控制步进电机的转向、转速、步进量,完全不需了解步进电机及驱动器的工作原理。例如:串口发送"S100",则步进电机将顺时针以每分钟100转的速度旋转,串口发送"N300",则步进电机将逆时针以每分钟300转的速度旋转;串口发送"S100J",则步进电机将顺时针步进100个步距角,串口发送"N1000J",则步进电机将逆时针步进1000个步距角。用于精密转速控制、精密运动控制、精密机械加工等,控制精度极高,转速误差<0.01转/分钟。也可按要求定制更高精度控制板。提供VB软件控制步进电机的演示源代码。
串口波特率9600~57600可预订(默认9600);输出驱动脉冲频率最大200Khz(可订制更高频率),单步最小1hz微调,误差0.1hz;最大步进量99999999步。
通过地址编码,一个串口最多可以寻址、控制255块串口控制智能步进电机控制器,也就是说一个串口(或一台电脑)可以控制255台步进电机。串口控制智能步进电机控制器和控制主机之间距离可以通过485总线延长,这样控制主机可以放置在离步进电机很远的地方.
我们也可以为客户开发特定的控制板或代为设计开发整个步进电机控制系统。
㈨ RS232远程控制 怎么控制的啊
控制超级终端的方法:
1、单击→开始,选择程序→附件→通讯→超级终端
2、左键单击超级终端
3、双击Hypertrm出现如图。在名称(N):中输入RS232,按确定
4、对话框的连接时使用(N):中,直接连接到串口1/2,按确认,COM1/2的属性对话框。波特率(B)选择9600,其它不变。按确定进入RS232超级终端界面并保存会话RS232。
注意事项
如果程序中没有安装超级终端,就在开始→设置→控制面板→添加删除程序→安装超
级终端。