共工科技

串口传输字节间隔(串口发送一个字节时间)

本篇目录:

RS485,波特率38400,几秒轮询一遍比较合适?

1、RS485通道上传输波特率为1200bps,8位数据位,无校验,传输100个字节将用...RS485通道上传输波特率为1200bps,8位数据位,无校验,传输100个字节将用...如不考虑字节间的间隔传输100个字节需要100/120,也就是5/6秒。

2、用RS485控制伺服,稳定性应该还可以。但RS485是一个一个伺服读写的轮询模式,如果控制的伺服多了,轮询一遍得不少时间,速度可能不是很快。

串口传输字节间隔(串口发送一个字节时间)-图1

3、如不考虑字节间的间隔传输100个字节需要100/120,也就是5/6秒。理论最大0.01*9600/10=6字节实际使用中考虑到奇偶校验、帧间隔、双方的处理时间,能有7字节就不错了。并不影响发送。

4、最多节点数:RS-485为128节点 协议标准: RS-485符合TIA/EIA-485-A标准;RS-422符合EIA-422-A标准;支持MODBUS RTU或MODBUS RTU/ACSII协议进行透传,不区分命令。

怎么用单片机确定串口接收数据的时间间隔?

串口接收一个数据完成的唯一标志是RI=1,要有效不丢失数据的情况下接收数据最好用中断模式,且开辟一个接收缓冲区来暂存数据。

串口传输字节间隔(串口发送一个字节时间)-图2

你想让串口的收和发同时工作,那就只能使用中断方式,你用查询方式是不可能的。如果是使用“半双工”,那就简单些:A查询方法发送数据,B以查询方式接收数据,反之依然,这样的缺点是比较耗时,没有实时性。

看你的波特率了。比如设置波特率为普通常用的9600,如果数据不压缩,那表示每秒传输9600个位,在则如果设置为传输一个帧包括8位数据位 1位起始位 1位停止位 无奇偶校验位的话,那就是9600/(8+1+1)=960个字符每秒。

间隔时间为1秒。根据查询电子芯吧客相关公开信息显示,主机两次轮询的串口空闲时间至少为50个位的时间,而超时处理一般不超过1秒,比如:一个上位机(pc)与两个下位机(89c51)单片机进行通讯。

串口传输字节间隔(串口发送一个字节时间)-图3

上位机两次发送串口数据间隔时间

有些串口软件支持发送延时,例如格西烽火串口助手,只要设定延时即可,也可以一次自动运行多条发送。

此类是线程安全的:多个线程可以共享单个Timer对象而无需进行外部同步。java.util.TimerTask由Timer安排为一次执行或重复执行的任务。

波特率是115200并不是说串口就一直在接收和发送数据,10ms不一定能够接收到123个字符的,所以这个计算时间的方式是不对的。这里应该每隔10ms主动去读取一次串口缓冲区,而不管缓冲区存放了多少字节。

比较有可能是你上位机程序读取间隔太长,比如说第一次读取后,你做了数据处理或者加了延时什么的。

到此,以上就是小编对于串口发送一个字节时间的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。

分享:
扫描分享到社交APP
上一篇
下一篇