当前位置:首页 » 操作系统 » linux串口at

linux串口at

发布时间: 2023-03-17 15:06:39

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下通过串口操作AT指令怎么拨打电话

一烂轮个Python实现的串口Echoimportserialimportsystry: ser=serial.Serial('/dev/饥物信ttyUSB0',9600)exceptException,e: print'openserialfailed.' exit(1)print'ASerialEchoIsRunning'蚂扰whileTrue: #echo s=ser.read() ser.write(s) #writetostdoutandflushit sys.stdout.write(s) sys.stdout.flush()

Ⅲ 如何在linux上使用串口设备

简单的运行 dmesg 命令
$ dmesg | grep tty
输出:
[ 37.531286] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 37.531841] 00:0b: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 37.532138] 0000:04:00.3: ttyS1 at I/O 0x1020 (irq = 18) is a 16550A

setserial 命令
setserial 是一个程序用于设定并/或报告某个串口关联的配置信息。该信息包括串口用到的I/O 端口和中断号,以及Break键是否应被解释为Secure Attention Key 等等。 仅仅是输出如下的命令:
$ setserial -g /dev/ttyS[0123]
输出:
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x1020, IRQ: 18
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3

带-g选项的setserial帮助找到你的Linux板子上的物理串口。
Linux 串口控制台程序
一旦串口被确定了,你就能使用许多的工具来配置Linux板子:
minicom- 用于控制modem和连接到mp 设备的最好的串口通信程序。
wvidial or other GUI dial up networking program - 一个内建智能PPP 拨号器。
getty / agetty - agetty 打开一个 tty 端口, 提示登录名称并调用 /bin/login 命令。
grub / lilo configuration - 配置串口为系统控制台。

Ⅳ 在linux上怎样操作at at+cfun=1

1、常用操作
1.1 AT
命令解释:检测 Mole 与串口是否连通,能否接收 AT 命令;
命令格式:AT
命令返回:OK (与串口通信正常)
(无返回,与串口通信未连通)
测试结果:AT
OK

1.2 AT+CSQ
命令解释:检查网络信号强度
命令格式:AT+CSQ
命令返回:+CSQ: **,##
其中**应在 10 到 31 之间,数值越大表明信号质量越好,##为误码
率,值在 0 到 99 之间。
否则应检查天线或 SIM 卡是否正确安装
测试结果:AT+CSQ
+CSQ: 20,5

1.3 AT+CPIN?
命令解释:检查登入移动设备(ME)的密码.
命令格式:AT+CPIN?
命令返回:+CPIN: 状态
其中状态值可能是:
READY(表示 SIM卡正常,同时不需要登入密码),
SIM PIN (表示 ME等待提供 SIM卡的 PIN 码)
SIM PUK (表示 ME等待提供 SIM卡的 PUK码)
SIM PIN2 (表示 ME等待提供 SIM 卡的 PIN2 码)
SIM PUK2 (表示 ME等待提供 SIM卡的 PUK2 码)
PH-SIM PIN (表示设备被锁 SIM卡,ME等待提供从手机到 SIM卡的密码)
PH-NET PIN (表示设备被锁网络,ME等待提供提供网络个性化密码)
ERROR (表示 SIM卡失败或没有插入 SIM卡)
测试结果:AT+CPIN?
+CPIN: READY
表示SIM卡正常,同时不需要登入密码。

1.4 AT+COPS?
命令解释:查询运营商选择状态.
命令格式:AT+COPS?
命令返回:+COPS: ,,
的值为0 到 4, 默认值是 0
的值为 0 到 2, 默认值是 2
的值为运营商代码, 中国移动的代码是 46000, 联通的代码是 46001
测试结果:AT+COPS? Tech-Link T&E Limited 常用 AT 命令手册
- 2 -
+COPS: 0, 2, 46000

1.5 AT+WOPEN=2
命令解释:查询模块支持 Open AT 的 Library 版本及是否有 Open AT Application 在模块中.
命令格式:AT+ WOPEN=2
命令返回:+WOPEN: 2, “ Open AT Library version” ,” Open AT Application version”
Open AT Library version 代表的是模块支持 Open AT 的 Library 版本,通常显示的
值为” AT v04.1x” 或 ” AT v04.2x”
Open AT Application version 代表的是模块支持 Open AT 的 Library 版本,通常显
示的值为” AT v04.1x” 或 ” AT v04.2x”
注: “ Open AT Library version” 和” Open AT Application version” 两个值必须是一个
一致(除最后一位外),否则会导致 Open AT 程序不稳定.
如果返回值” Open AT Application version” 中没有数据,仅显
示+WOPEN: 2,” AT v04.10” 则表示模块中没有 Open AT Application 程序.
测试结果:AT+WOPEN=2
+WOPEN: 2,” AT v04.10” ,” AT v04.11”
OK

1.6 AT+WOPEN=0
命令解释:停止 Open AT Application 程序.
命令格式:AT+ WOPEN=0
命令返回:OK 或 ERROR
测试结果:AT+WOPEN=0
OK

1.7 AT+WOPEN=4
命令解释:删除 Open AT Application 程序.
命令格式:AT+ WOPEN=4
命令返回:OK 或 ERROR
测试结果:AT+WOPEN=4
OK
注: 删除 Open AT Application 程序前,必须先使用 AT+WOPEN=0 停止 Open AT 程序.

1.8 AT+WOPEN=1
命令解释:开启 Open AT Application 程序.
命令格式:AT+ WOPEN=1
命令返回:OK 或 ERROR
测试结果:AT+WOPEN=1
OK

1.9 AT+WIPCFG=3
命令解释:查询 WIP 软件版本.
命令格式:AT+ WIPCFG=3
命令返回: 或 ERROR
测试结果:AT+WIPCFG=3
WIP Soft v201 on Open AT OS v411
OK Tech-Link T&E Limited 常用 AT 命令手册
- 3 -
注意: 使用 AT+WIPCFG=3 命令前,必须确保 Open AT 程序是开启状态(即 AT+WOPEN=1).
WIP Soft v201 代表 WIP 的软件版本是 V201, on Open AT OS v411 代表前面 v201 的
WIP 软件是基于 v411的 Opean AT 开发平台上开发的.
WIP 软件就是TCP/IP 协议站

1.10 AT+CSCS?
命令解释:查询终端适配器(TE)的字符集.
命令格式:AT+ CSCS?
命令返回:<字符集编码格式>
返回值通常是下列中的一项.
“ GSM” ----- GSM缺省符号集(参考 GSM 03.38 第 6.2.1 节).
“ PCCP437” ---- PC字符集代码页 437.
“ CUSTOM” ---- 用户自定义.
“ HEX” ---- 十六进制: (取值范围:00 到 FF。比如:052FE6 表示 3 个 8bit 字
符,转换为十进制,分别为 5、47、230,禁止转换为 ME原始字符集).
测试结果:AT+CSCS?
+CSCS: “ PCCP437”
OK

1.11 AT+CGSN
命令解释:查询模块的 IMEI 号码.
命令格式:AT+ CGSN
命令返回:
测试结果:AT+CGSN
012345678901234
OK
注意: 如果显示 012345678901234 表示模块没有写IMEI 号码,有 IMEI 号码的话
应该显示是 35xxxxxxxx (共 15 位数字).

1.12 ATI7
命令解释:查询语音编码特性
命令格式:ATI7
命令返回:SPEECH CODINGS: FR,EFR,HR,AMR

1.13 A TZ
命令解释:恢复默认设置
命令格式:ATZ
命令返回:OK

1.14 AT+CGMR (此命令功能同等于 ATI3)
命令解释:查询模块版本;
命令格式:AT+CGMR
命令返回:
+CMEERROR
测试结果:AT+CGMR
661_09gg.Q2686H 1925236 100506 11:13
OK Tech-Link T&E Limited 常用 AT 命令手册
- 4 -
解释:模块的 Firmware 版本号为 661

1.15 AT+IPR
命令解释:修改串口 1 波特率;
命令格式:AT+IPR=
命令返回:ERROR
OK
测试结果:AT+IPR=115200
OK
注意:串口波特率修改为 115200 后要把串口调试工具的波特率设为相应波
特率后模块才会有返回.

1.16 AT&W
命令解释:保存模块设置;
命令格式:AT&W
命令返回:OK
ERROR(保存不成功)
测试结果:AT&W
OK

1.17 ;&W
命令解释:连续保存命令
命令格式:ATxxx;&W (AT xxx 代表要设置的命令,紧跟;&W 表示执行此设置的
同时保存该设置)
命令返回:OK
例如要将模块的波特率设置成 115200 并保存它,则可以直接按如下操作:
测试结果:AT+IPR=115200;&W

1.18 AT+CGMI
命令解释:查询模块厂商的标识;
命令格式:AT+CGMI
命令返回:WAVECOM MODEM
测试结果:AT+CGMI
WAVECOM MODEM

1.19 AT+CGMM
命令解释:获取模块支持的频带;
命令格式:AT+CGMM
命令返回:MULTIBAND 900E 1800
900E
1800
1900
G850
MULTIBAND G850 1900
测试结果:AT+CGMM
MULTIBAND 900E 1800 (表示模块支持多频带,首选频带为 900E 1800)
Tech-Link T&E Limited 常用 AT 命令手册
- 5 -
1.20 A/
命令解释:重复上次命令;
命令格式:A/
命令返回:上一次 AT 命令返回的值
这命令重复前一个执行的命令

1.21 AT+CPOF
命令解释:关机;这个特殊的命令可停止 GSM软件堆栈和硬件层
命令格式:AT+CPOF
命令返回:OK
测试结果:AT+CPOF
OK
注: AT+CPOF用于停止 GSM软件堆栈,这命令的功能与 AT+CFUN=0 相同,
执行 AT+CFUN=1即可重新运行 GSM软件堆栈.
A T+CPOF=1用于停止 GSM硬件层,运行此命令后 AT 将失去回应,必需
对模块进行硬件复位模块方可重新工作.

Ⅳ 如何查看linux下串口是否可用串口名称等

分析如下:

1、查看串口是否可用,可以对串口发送数据比如对com1口,echo lyjie126 > /dev/ttyS0。

2、查看串口名称使用ls-l/dev/ttyS* 一般情况下串口的名称全部在dev下面,如果你没有外插串口卡的话默认是dev下的ttyS* ,一般ttyS0对应com1,ttyS1对应com2,当然也不一定是必然的;

3、查看串口驱动:cat /proc/tty/drivers/serial。

4、查看串口设备:dmesg | grep ttyS*。

(5)linux串口at扩展阅读

串口控制器顾名思义,就是可通过串口实现控制功能的一台控制器。即由上位机通过串口发送特定协议格式的指令给控制器,进而来控制外围设备或器件,也叫单片机串口控制器。

串口控制器就是1台写入了串口通信程序的单片机控制器,有2种工作模式:

1)上位机监控模式:可由上位机串口控制,实现串口监控;

2)脱机控制模式:在通过上位机设置好相关参数后,也可脱离上位机进行独立控制。

串口控制器就是1台写入了串口通信程序的单片机控制器,有2种工作模式:

1)上位机监控模式:可由上位机串口控制,实现串口监控;

2)脱机控制模式:在通过上位机设置好相关参数后,也可脱离上位机进行独立控制。

Ⅵ linux minicom 如何输入at

1.
配置串口
在使用
minicom前需进行配置,包括串口设备名、波特率、奇偶校验、硬件流控等,以便正确连接串口设备,连接上串口设备后才能发送AT命令。
有两种方式可配置minicom:
一种是用minicom
-s
命令直接从命令行进入配置菜单;
另一种方式是用不带参数的minicom命令进入minicom后,按
Ctrl+A
切换到命令模式,命令模式下按o进入配置菜单。
Modem
and
dialing配置项中有个
Init
string
的设置,会在初始化串口后自动发送预设的AT命令。
串口初始化完成后,就可手动发送AT命令了。
2.
保存配置
默认的minicom配置文件为/etc/minicom/minirc.dfl,推荐不覆盖此文件,而是用Save
setup
as..菜单把配置参数以文件的形式保存到自己的用户目录下,如~/.mySerial,下次就可直接用
minicom
~/.mySerial
命令调用该参数文件了。

Ⅶ 求教linux中串口发送at命令的问题

要满足这三个条件:
1,单开线程自动写滑粗at
2,单开线程读at
3,打开文件读配置,将读出来后的配置文件放到log文件里去。毁让和
这边记录下如何在ui下开一个线程的过程:用一个handler变量调用handler.post函数,然后在runnable里面重写run接口就可以,实际上,这样调用出来的线程跟ui主线程是一个线程,不会创建新的。所以这边如果要纤盯用线程创建的话,必须
wthread = new HandlerThread("thread");

wthread.start();

wHandler = new Handler(wthread.getLooper());

wHandler.post(runnable);
这时重写runnable的run函数才可以实现重新开启一个线程。
在这个线程里面可以读写串口,但是界面的刷新不能在这个子线程里面做。必须主线程在做一个handler,然后子线程调用Message 变量传进主线程的handler.sendMessage(msg);然后主线程用handlerMessage接收子线程传过来的消息,在主线程里面刷新界面。

热点内容
Unity300存储 发布:2025-08-25 05:42:51 浏览:686
安卓java编程 发布:2025-08-25 05:39:07 浏览:927
实用算法试题 发布:2025-08-25 05:37:50 浏览:786
网络用语脚本 发布:2025-08-25 05:23:45 浏览:193
毕业mv脚本 发布:2025-08-25 05:22:56 浏览:812
对象存储使用场景 发布:2025-08-25 04:55:09 浏览:490
装wf锁了一般原始密码是多少 发布:2025-08-25 04:40:14 浏览:357
sql转mysql 发布:2025-08-25 04:40:12 浏览:882
交互性编程 发布:2025-08-25 04:33:01 浏览:961
编译器一般多少行代码 发布:2025-08-25 04:32:28 浏览:769