linux串口数据传输出现问题的几点总结

您所在的位置:网站首页 串口通信遇到的问题有哪些 linux串口数据传输出现问题的几点总结

linux串口数据传输出现问题的几点总结

2024-07-08 07:33| 来源: 网络整理| 查看: 265

(一)很多时候当在使用串口的时候你会发现在read串口设备时会出现当机现象,出现这种现象的原因可能是你在open设备的时候没有使用非阻塞的方式打开,在使用串口发送数据和接收数据的时候,或者注意select的配合使用达到非阻塞的读取。

(二)在系统头文件中定义了终端控制结构struct termios,tcgetattr()和tcsetattr()两个系统函数获得和设置这些属性。结构struct termios中的域描述的主要属性包括: c_cflag  : 控制选项 c_lflag  : 线选项 c_iflag  : 输入选项 c_oflag  :输出选项 c_cc    :控制字符 c_ispeed :输入数据波特率 c_ospeed :输出数据波特率 如果要设置某个选项,那么就使用"|="运算,如果关闭某个选项就使用"&="和"~"运算。本文使用的各个选项的意义定义如下: c_cflag: CLOCAL 本地模式,不改变端口的所有者          CREAD  表示使能数据接收器          PARENB  表示偶校验          PARODD 表示奇校验 CSTOPB  使用两个停止位 CSIZE    对数据的bit使用掩码 CS8      数据宽度是8bit c_lflag:  ICANON 使能规范输入,否则使用原始数据(本文使用) ECHO    回送(echo)输入数据 ECHOE   回送擦除字符 ISIG      使能SIGINTR,SIGSUSP, SIGDSUSP和 SIGQUIT 信号 c_iflag:  IXON     使能输出软件控制          IXOFF    使能输入软件控制          IXANY    允许任何字符再次开启数据流          INLCR    把字符NL(0A)映射到CR(0D)          IGNCR    忽略字符CR(0D)        ICRNL    把CR(0D)映射成字符NR(0A)     c_oflag: OPOST  输出后处理,如果不设置表示原始数据(本文使用原始数据)  c_cc[VMIN]:  最少可读数据 c_cc[VTIME]: 等待数据时间(10秒的倍数) 如果以上的标志没有正确的屏蔽或设置,你的串口所收发的数据可能也不会正确,一定要注意这点

(三)由于串口设备经常在linux下使用,注意你要打开的终端设备名称是否正确,"/dev/ttys0"注意不要省略根目录符号,对于多串口通讯的芯片,注意打开的设备名称对应。

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3