香主,STM32 UART 多机通信,1主多从,从机最多可支持多少个啊?

[复制链接]
10181|11
 楼主| zlutian 发表于 2010-6-10 15:45 | 显示全部楼层 |阅读模式
香主,请问STM32 UART 多机通信,1主多从,从机最多可支持多少个啊?
datasheet上 配置寄存器(USART_CR2)节点地址只有4位,也就是说最多只能有15个从机吗? 可不可以1个主机带100多个从机啊?
香水城 发表于 2010-6-10 15:50 | 显示全部楼层
没错,地址只有4位,也就是说最多只能有16个从机;要接100个,只有另外想办法了。
 楼主| zlutian 发表于 2010-6-10 16:27 | 显示全部楼层
谢谢香主.
那么有没有可行的办法啊?有个项目,1个主机带400多个从机, STM32F103最多有5个UART串口,初看这个芯片很合适,细看一下晕啊,怎么只能带16个从机.
mohanwei 发表于 2010-6-10 16:35 | 显示全部楼层
软件识别地址即可。
普通的51都可以跑得很流畅了
 楼主| zlutian 发表于 2010-6-10 16:40 | 显示全部楼层
51不够串口啊
香水城 发表于 2010-6-10 16:53 | 显示全部楼层
对呀,软件识别地址即可。
 楼主| zlutian 发表于 2010-6-10 17:08 | 显示全部楼层
是不是这样啊:
对主机: 发地址时设9位模式,且最高位(第9位)是1,低8位是地址.  发数据时设置成8位模式.
对从机: 初始设置成9位模式,各从机接收到9位的地址进入中断后与本机地址校验,匹配时设置成8位模式以便接收后面的数据,不匹配时退出中断,因为后面主机发送的时8位的数据,非匹配的从机不会产生中断.
香水城 发表于 2010-6-10 17:19 | 显示全部楼层
是不是这样啊:
对主机: 发地址时设9位模式,且最高位(第9位)是1,低8位是地址.  发数据时设置成8位模式.
对从机: 初始设置成9位模式,各从机接收到9位的地址进入中断后与本机地址校验,匹配时设置成8位模式以便接收后面 ...
zlutian 发表于 2010-6-10 17:08


使用软件识别地址,你可以自己任意定义操作方式。
 楼主| zlutian 发表于 2010-6-11 09:51 | 显示全部楼层
谢谢 香主 和 mohanwei, 看来我要做个板子试下.
mohanwei 发表于 2010-6-11 10:53 | 显示全部楼层
新做的产品最好用8位模式,校验码为空……其它模式极少见,而且是在老产品上
软件协议里定义地址码即可,例如:
Head  Addr    Cmd     Len      Data[Len]   CRC16       Tail
帧头   地址码  命令码  数据长度  数据           CRC16校验   帧尾
lyn3210 发表于 2010-6-11 16:04 | 显示全部楼层
我在智能化大厦产品用过,最好不要用高阻抗驱动器,普通驱动芯片只能到30个终端。
 楼主| zlutian 发表于 2010-6-12 08:43 | 显示全部楼层
谢谢10楼 mohanwei 的建议.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

150

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部