串口相关

1 串口引脚定义

引脚定义符号
1载波检测DCD(Data Carrier Detect)
2接收数据RXD(Received Data)
3发送数据TXD(Transmit Data)
4数据终端准备好DTR(Data Terminal Ready)
5信号地SG(Signal Ground)
6数据准备好DSR(Data Set Ready)
7请求发送RTS(Request To Send)
8清除发送CTS(Clear To Send)
9振铃提示RI(Ring Indicator)

  很多嵌入式设备串口仅有四个引脚,分别是RX、TX、GND、5V,在实际使用时,一般接RX、TX、GND三个引脚就可以完成数据收发。
  RTS、CTS用于流控,物理连接(主从机交叉连接):主机的RTS(输出)信号,连接到从机的CTS(输入)信号;主机的CTS(输入)信号,连接到从机的RTS(输出)信号。

2 设置、查看串口属性

stty    //设置、查看串口属性
stty -F /dev/ttymxc3 -a //查看属性
stty -F /dev/ttymxc3 ispeed 115200 ospeed 115200 cs8 //设置成115200波特率,8位数据模式

 查看系统串口属性
cat /proc/tty/driver/IMX-uart   //不同平台IMX-uart名字不一样
serinfo:1.0 driver revision:    //系统共注册个四个口中
0: uart:IMX mmio:0x02020000 irq:58 tx:4801 rx:269 RTS|DTR|DSR|CD
1: uart:IMX mmio:0x021E8000 irq:59 tx:0 rx:0 DSR|CD
2: uart:IMX mmio:0x021EC000 irq:60 tx:0 rx:0 DSR|CD
3: uart:IMX mmio:0x021F0000 irq:61 tx:0 rx:0 DSR|CD

3 串口测试

  断开串口与外设连接,确保串口没有被外设的软件占用;短接rx、tx引脚。执行下面命令:

cat /dev/ttymxc3 &
echo abc > /dev/ttymxc3 //正常情况下会打印abc,此时可以确认kernel串口驱动、硬件是正常的,可以
echo -e "at \r" >/dev/ttyUSB2   //-e可以发送特殊字符 

busybox microcom
Usage: microcom [-d DELAY] [-t TIMEOUT] [-s SPEED] [-X] TTY //Copy bytes for stdin to TTY and from TTY to stdout
        -d  Wait up to DELAY ms for TTY output before sending every next byte to it
        -t  Exit if both stdin and TTY are silent for TIMEOUT ms
        -s  Set serial line to SPEED
        -X  Disable special meaning of NUL and Ctrl-X from stdin
使用
busybox microcom -t 5000 -s 115200 /dev/ttySAC1 // -t 5000:5000ms后没有操作,自动退出 -s 115200:波特率设置为115200,打开ttySAC1串口,进入交互环境,可以输入命令,打印信息
ctrl+x可以退出

4 串口乱码

  下面是几种可能导致串口乱码的原因:

  • 波特率不匹配,大部分情况是波特率不匹配导致
  • 波特率匹配仍然乱码,晶振的不匹配,Fpclk设置的不合理行,电源的不稳定姓,或者电源的电压达不到预定的要求
  • 波特率过大造成乱码,般这种情况跟线路的干扰有关系,比如说磁场干扰,线路内部有干扰
  • 没有共地,tx/rx接错

5 ttl 232 485区别

  常说的串口、com口都是硬件端口,而ttl、232、485是电平标准,也就是对串口通信信号的不同定义,参考下表

电平ttl232485
逻辑电平 00V0 (正电平)两线间的电压差为-(2~6)V
逻辑电平 1+5V±15V (负电平)两线间的电压差为+(2~6)V

  485接口电平信号比232低,相对来说比较安装,不容易损坏芯片;且电平与ttl电平兼容,所以经常可以看到485接口的cpu方向都是接ttl电平接口,然后再加一个读写控制IO。
  嵌入式设备调试时经常需要用到串口,除了电脑主机上的通用9pin串口,最常用的就是usb转串口,常用的转换芯片有PL2303、CP2102,这种芯片是用usb来扩展ttl电平的串口。
  TTL电平与RS232电平的专用双向转换芯片可以用MAX23芯片。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值