linux命令写串口 linux 串口 命令

linux使用串口键盘Linux系统支持使用串口键盘linux命令写串口,但是需要先安装串口驱动linux命令写串口 , 然后才能使用串口键盘 。
1、安装串口驱动linux命令写串口:
首先,需要安装串口驱动,可以使用以下命令安装:
sudo apt-get install setserial
2、检查串口:
接下来,需要检查串口是否正常工作,可以使用以下命令检查:
sudo setserial -g /dev/ttyS*
3、设置串口:
最后,需要设置串口 , 可以使用
Linux C 配置串口 配置串口需要包含头文件
其中最核心的配置结构体为:
如何获取该结构呢?我们操作串口跟操作文件一样,也是调用open()函数来打开串口 , 
这样我们就能够得到一个文件描述符fd ,然后就可以调用tcgetattr()函数来获取上述配置结构体了 。
Linux 串口默认的配置为:波特率 9600,数据位 8 位,无奇偶校验,停止位 1 位 , 无 CTS/RTS。
以下介绍一些常用的配置项:波特率、奇偶校验、数据位、停止位、硬件控制流 。
相关接口:
Linux 将串口的波特率分为了输入波特率和输出波特率 , 不过最常用的场景是将两者设置成一样 。
cfgetispeed()函数获取输入波特率,cfgetospeed()函数获取输出波特率 。cfsetispeed()函数设置输入波特率,cfsetospeed()函数用于设置输出波特率,当然cfsetspeed()函数扩展为同时设置输入和输出波特率 。
上述接口中的speed_t是一系列波特率的标志位 , 例如常用的 115200 波特率就为 B115200 , 参考下述选项:
设置奇偶校验位可以通过修改termios结构体中的c_cflag成员来实现,若无校验,则将PARENB位设为 0;若有校验,则PARENB为 1 。之后再根据PARODD来区分奇偶校验,PARODD为 1 表示奇校验,PARODD为 0 表示偶校验 。例如设置无奇偶校验位:
设置数据位可以通过修改termios结构体中的c_cflag成员来实现,CS5、CS6、CS7 和 CS8 分别代表数据位 5、6、7 和 8 。不过在设置数据位之前,需要先用CSIZE来做屏蔽字段,清楚这几个标志位 , 例如设置数据位为 8 位:
设置停止位可以通过修改termios结构体中的c_cflag成员来实现,CSTOPB位为 1 表示 2 位停止位,CSTOPB位为 0 标志 1 位停止位 。例如设置停止位为 1 位:
设置硬件控制流可以通过修改termios结构体中的c_cflag成员来实现,CRTSCTS为 1 表示使用硬件控制流 , 为 0 表示不使用硬件控制流 。例如使能硬件控制流:
当然,最后还需要用tcflush()抛弃存储在fd里的未接收的数据 。
再利用接口tcsetattr()函数将配置信息写入文件描述符fd :
这样整个串口最常用的用法就配置完成了 。
具体的配置使用可以参考我的项目HCI-Middleware里的 hci_transport_uart_linux.c 文件 。
参考:
Linux串口相关的操作及绑定@ toc
可在控制台输入
也可以用stty设置串口参数
使用后相当于串口回传,发什么回什么
发送数据
可以对串口发送数据比如对com1口
一般情况下串口的名称全部在dev下面,如果你没有外插串口卡的话默认是dev下的ttyS* ,一般ttyS0对应com1,ttyS1对应com2 , 当然也不一定是必然的;
如果有ttyS设备,再看/dev/有没有ttyS*,如没有就建立一个:
如果板子的设备中没有标准串口设备ttyS0,也没有ttySAC0 。/dev下应该有一个USB串口:/dev/ttyUSB0.
当一个串行卡或数据卡被侦测到时,它会被指定成为第一个可用的串行设备 。通常是/dev/ttyS1(cua1)或/dev/ttyS2(cua2) , 这完成看原已内建的串口数目 。ttyS*设备会被报告在/var/run/stab内 。

推荐阅读