单片机串口通信数据可以直接进行加减乘除处理吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单片机串口通信数据可以直接进行加减乘除处理吗相关的知识,希望对你有一定的参考价值。

这取决于串口发送的数据类型,是字符,是BCD码,还是十六进制数。后两者是可以进行运算的。但,每次发送的是一个字节,如果发送int型数据,要分成两个字节发送,按先低8位,后高8位的顺序发送(也可以先高后低的顺序,自定通信协议)。接收时,要收到两个字节后组合成int型再运算。 参考技术A 单片机串口通信数据当然可以直接进行加减乘除处理。其他的处理方式也可以,比如移位、与、或、异或等。

请问使用TTL电平,能够进行3个单片机的串口通信吗?

使用TTL电平,可以 3个 或者 多个 单片机的串口通信,可以自己设计一个 通讯协议,
多 机 通信 要设置 一个 主机,可以多个从机,从机之间 的数据 交换 需要通过 主机,
如果 短距离 通讯,可以 直接 串口连接, 主机 RXD、TXD 连接 从机TXD、 RXD,
如果通讯速度不高 100米内应该可以 做到,距离长些,波特率要低一些,
加上 RS485通讯距离 可以在 1500 米左右。追问

我的这个设计属于临时的,将来肯定要改方案。现在的问题是,我两两之间通信很好,通信协议也经过反复验证,但是三台设备一起工作时就出现了问题。通信距离不远,控制在30公分之内,波特率是57600,三台设备都是stm32的。这样通信确实没有问题吗?是这样的话那就是我的程序还有问题咯

追答

这可能是 主机 与 从机 的关系没有 配置好,从机必须有 编号,通信协议 如
指令 - 从机号 - 数据1 - - - 数据n - 校验 - 结束
因为 主机发送 数据时,所有 从机都能接收 到数据,从机需要 识别是 发给自己的 才执行。

参考技术A 首先,单片机可以实现多机通讯。
其次,如果通讯距离较长,那么选择串口,建议接232或485等模块。
再者,如果通讯距离较短,譬如在同一电路板上,那么可以用IIC或SPI方式,用TTL电平通讯。
最后,多机通讯时,最好设置成主从站,并给每个站一个站点号。
以上供参考。
参考技术B 1 楼 说的不错! 参考技术C 提问的兄弟你还在吗?我想问你下,两片STM32 芯片串口直接TTL连接,配置方面有哪些要改的吗? 参考技术D 为什么要用TTL电平呢,3个单片机离的远吗?

以上是关于单片机串口通信数据可以直接进行加减乘除处理吗的主要内容,如果未能解决你的问题,请参考以下文章

在EX表格里,怎么进行加减乘除法的计算?

在Python中进行加减乘除

js负数能直接进行加减运算吗?

BigDecimal类型数据的加减乘除运算

关于三维向量加减乘除的C语言宏定义?

在Python中进行加减乘除