恭喜,你发布的帖子
发布于 2016-10-26 10:04:23
46楼
楼上,应更深一步思考。
两个串口,其中一个可能是软件模拟的吗?就是山寨版的也必然是两个硬件串口。硬件串口都有独立的收发系统。硬件上收发缓冲区独立,软件上反而把它们混一起?显然也不会这么做。
那么SMB2和SMB3为两个串口共用,是何意呢。这明显就是共享这个名称。SMB2是个命名的地址,实际物理地址是什么?没公布。所以SMB2是个名称,是个符号,所对应的物理地址由CPU的系统软件解释。
手册说了,在什么情况下,SMB2指的是PORT0的收发缓区,什么时候SMB2是PORT1的收发缓冲区。
换一种思考方法:你是等字符收下来后才去读的SMB2,那么SMB2中的数据是PORT0还是PORT1已经定了,并不会因你读的地方不同而改变。那只能说明,SMB2只是名称的共享,实际上对应的不同内容。
再说,SMB2是自由口的东西,XMT、RCV也是自由口的东西。XMT的RCV可以把modbus的定时要求由XMT、RCV本身完成,简化软件的编写。所以我才猜测库程序是XMT、RCV写成。
请填写推广理由:
分享
只看
楼主