 |  | | | | 其实只有一个点需要注意,那就是传输的信息需要加 “\r\n”。
第一块单片机的USART1进行发送,第二块单片机的USART2进行接受,第二块单片机的USART1将接收到信息发送到电脑上进行显示。之前一直没加\r\n,一直接收不到。
也可以第二块单片机使用USART1进行数据的接收和发送,这样也是可以的,就是如果使用串口下载的化,每次要将连接线拔下来,下载完后在插上。
最后说下连线,TXD–RXD RXD–TXD ,共地感觉没啥用,不过最好还是共上吧
|
|
|
 |  | | | | 先用串口调试助手接收单片机发送的数据,在调试助手中选择输出十六进制显示,显示的就不是字符了,一般的串口调试助手默认的是字符显示,如果串口调试助手接收的是你要发送的数据,那说明发送端没问题,再用调试助手像另一个单片机发送几个数据(选择以十六进制发送),看看是否能显示正确,单独这样来操作可以分别确定是哪里的问题,都正常了再用两个单片机互相发送接收数据。
|
|
|
 |  | | | | 一个用12V电池经过7805稳压管供电,电源没有问题,不至于会影响到通信。两个不同的板子不同的电源,那么两个板子的地(GND)是必须接到一起的,即要共地的。你的两个板子的串口是TXD,RXD直接连接的,即是TTL连接吗?还是用RS232或RS485连接的?只有在RS485模式下,只接两条线就可以通信的,TTL连接或RS232连接都必须共地,另外,TTL连接的距离要很短的,最好还是接成RS232连接可靠。所以,先要确定你的连接是什么的?从连接方式上找原因,及共地上找原因,不会是电源的原因的
|
|
|
|  |  | | | | | 谢谢你的回答,我中间串口通讯是用蓝牙代替有线的,我拿了两个板子在不同的电脑上供电,也是可以的,只是一接到电池上就不工作了
|
|
|
| |  |  | | | | | | 那就测一下电源供电的板子,7805输出后的电压倒底是多少,够不够5V,也许7805有问题,或者电路有问题。
|
|
|
 |  | | | | 单片机 与 单片机 直接 串口通信,需要连接 RXD、TXD、GND,如果 用同一个 电源 只连接 RXD、TXD 是没有问题 的,如果 不是 同一个 电源,则必须 连接RXD、TXD、GND。如果 距离比较 长 几百米,可以转换成 RS485 连接 只要RS485 的 A、B 两根线就可以。
|
|
|
|  |  | | | | | 不是共地的问题,感觉是电源的问题,我换成两块开发板分开通电也能工作呢?
|
|
|
| |  |  | | | | | | 12V电池是什么电池,如果电流放不出来 那就单片机 根本没有工作。如果 5V 电压没有问题,那不应该可以通信的,当然 不共地 肯定也是不行的。
|
|
|
 |  | | | | 不共地肯定不行的啊 没有相对电压了啊,RS485用差分不用共地,但是uart是普通的电平所以不共地是不行的
|
|
|
|  |  | | | | | 我中间串口通讯是用蓝牙代替有线的,我拿了两个板子在不同的电脑上供电,也是可以的,只是一接到电池上就不工作了,感觉是我电源不稳定的原因
|
|
|
|
|
|
|
| |  |  | | | | | | 不如用一个5V的充电器电源代替7805;12V转5V,效率太低了。
|
|
|