Linux开发板启动阶段调试串口无法输入原因解析

    在项目中,我用secureCRT试图连接我的开发板,一直连不上,如下图:


    接下来的事情,就是敲击键盘,都无法有任何反应。开始以为是RX和TX的断线造成的。当然肯定不是这个问题。下面看一下我的串口的原理图:


    我用的是J30这个串口,上面J29也是一个串口,我们会发现有个差别,上面2脚和下面2脚,名称不一样。一个是RXDC1,一个CTSC1。我搜了一下,CTS这个东西。这个东西叫流控。那什么是流控?下面上一下百度的结果,大家理解一下。

    

还是先引用一些文字,来自Telit公司GM862 QUAD/PY的数据手册
Pin Signal    I/O Function
20 C103/TXD I Serial data input (TXD) from DTE
29 C106/CTS O Output for Clear to send signal (CTS) to DTE
33 C107/DSR O Output for Data set ready signal (DSR) to DTE
37 C104/RXD O Serial data output to DTE
43 C108/DTR I Input for Data terminal ready signal (DTR) from DTE
45 C105/RTS I Input for Request to send signal (RTS) from DTE

注意上面各个功能的I/O的方向,看到这些缩写的全称,结合信号流向,是不是更容易理解呢 大笑

DTE是数据发送的主动方,DCE是数据的接受方。

CTS是让DTE明白的,也就是说DCE需要把自己的CTS给DTE看,让他知道DEC已经准备好接受数据了。
RTS是DTE给DCE看的,告诉DCE,DTE有数据要发。

DB9只有9根线,遵循RS232标准。定义如下:
    DTR,DSR------DTE设备准备好/DCE设备准备好。主流控信号。
    RTS,CTS------请求发送/清除发送。用于半双工时,收发切换。属于辅助流控信号。半双工的意思是说,发的时候不收,收的时候不发。那么怎么区 分收发呢?缺省时是DCE向DTE发送数据,当DTE决定向DCE发数据时,先有效RTS,表示DTE希望向DCE发送,一般DCE不能马上转换收发状 态,DTE就通过监测CTS是否有效来判断可否发送,这样避免了DTE在DCE未准备好时发送所导致的数据丢失。
    全双工时,这两个信号一直有效即可。

    我的理解是,这个串口根本没有流控的功能,所以,我在开始连接串口的时候,右边点选了流控,所以,默认终端会认为对方没有发送完(也就是没有启动完),然后,不接收终端的任何输入。然后只要去掉点选的流控,就ok了,这个是点小问题,记下来。希望对大家有帮助。


  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值