串口通信遇到一个很奇怪的问题,刚开始的时候接受不到数据,然后突然可以接受到但数据有误,用的是两根TTL转USB的线,串口号波特率什么的也是对得上的。
这是代码,实现了简单的接受数据。
在接受数据的时候会突然多出一行
返回结果也不对
串口通信遇到一个很奇怪的问题,刚开始的时候接受不到数据,然后突然可以接受到但数据有误,用的是两根TTL转USB的线,串口号波特率什么的也是对得上的。
这是代码,实现了简单的接受数据。
(1)如何实现网口、USB、485、232、TTL等5种模式 十种通讯方式互相转换
根据平时在网上收集资料发现,网上也有类似的调试工具,均是见上述几种通讯模式转为TTL,然后再相互转化。缺点,使用过程中需要接跳线或者切换模式的开关。
(2)如何实现485自动收发
因为485是属于半双工的串行总线,在收发的过程中需要控制485芯片控制脚位来实现收发,但是我们设计的调试工具为了简单方便使用,就未使用单片机等控制芯片。所以我们需要实现RS485转TTL自动收发功能。先上原理图
实现原理介绍
接收的时候分析,RXD_485为高电平,三极管Q1导通,DE和RE为低电平。此时485处于接收模式。A,B为高阻,信号由另一端来控制,RO可以正常输出接收到的数据。
发送时的分析:,RXD_485为低电平,三极管Q1不导通,DE和RE为高电平。此时485处于发送模式。DI接GND,即DI=0,485将数据0发送出去。当RXD_485发送数据1的时候,485为接收模式,A,B为高阻态,但是外面有R9上拉(A=1),R6下拉(B=0),对于远端来说,会接收到A=1,B=0,即接收到差分数据1。
(3)网口转TTL
采用网口直接转TTL芯片
(4)USB转TTL
采用USB直接转TTL芯片
(5)232转TTL
(6)如何实现无续切换开关、自动切换
详见: