linux-usart串口的使用记录
2016-12-16 16:10
519 查看
linux下,查询可用的串口的信息如下
找到对应的ttyAMA*串口,将UARTn_TXD,UARTn_RXD用线连接起来做下回循测试(就是自发自收),
串口的操作函数主要在termios.h中,下面是读取串口并显示接收到的信息。
编译完成后执行下,在另一端口使用
root@NanoPi2:~# ls /proc/tty/driver/ ttyAMA usbserial root@NanoPi2:~# cat /proc/tty/driver/ttyAMA serinfo:1.0 driver revision: 0: uart:PL011 rev3 mmio:0xC00A1000 irq:7 tx:701 rx:38 RTS|DTR 1: uart:PL011 rev3 mmio:0xC00A0000 irq:6 tx:0 rx:0 DSR|CD 2: uart:PL011 rev3 mmio:0xC00A3000 irq:9 tx:0 rx:0 3: uart:PL011 rev3 mmio:0xC006D000 irq:10 tx:0 rx:0 fa@NanoPi2:~/Desktop$ ls /dev/ttyAMA ttyAMA0 ttyAMA1 ttyAMA2 ttyAMA3
找到对应的ttyAMA*串口,将UARTn_TXD,UARTn_RXD用线连接起来做下回循测试(就是自发自收),
串口的操作函数主要在termios.h中,下面是读取串口并显示接收到的信息。
编译完成后执行下,在另一端口使用
echo msg > /dev/ttyAMAn向串口写信息(msg),这时执行程序会回显msg信息。
#include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <termios.h> #define USART_DEV "/dev/ttyAMA2" void main(void) { int fd = -1; fd = open(USART_DEV,O_RDWR|O_NOCTTY|O_NDELAY); if(-1==fd) return; printf("open %s success.\n",USART_DEV); struct termios opt; tcgetattr(fd,&opt); opt.c_cflag = B115200 | CS8 | CLOCAL | CREAD; opt.c_iflag = IGNPAR; opt.c_oflag = 0; opt.c_lflag = 0; opt.c_cc[VTIME] = 0; opt.c_cc[VMIN] = 1; tcflush(fd,TCIFLUSH); tcsetattr(fd,TCSANOW,&opt); unsigned char rx_buffer[512]; while(1) { memset(rx_buffer,0,sizeof(rx_buffer)); int len = read(fd,(void*)rx_buffer,sizeof(rx_buffer)); if(len > 0 && strcmp(rx_buffer,"") ) { printf("%d bytes read:%s\n",len,rx_buffer); } } close(fd); return; }
相关文章推荐
- Linux下使用Qtopia时鼠标和串口冲突问题
- Linux使用串口做为终端的方法
- linux系统使用记录(1)
- linux使用记录
- AIX和Linux使用差异记录
- Linux命令的一些记录(四):rpm命令的一些使用
- USART串口的使用
- Linux的samba使用记录
- linux常用命令使用记录(一)
- linux下串口工具minicom使用
- 使用Linux下script工具记录Oracle输出
- 用两个文件a.txt;b.txt.使用linux命令,复制,a.txt文档倒数第十行的记录to b.txt文档
- (转)STM32学习笔记(7):USART串口的使用
- 转载只为记录经典之<使用linux中的sed编辑器>
- PostgreSQL-Linux配置使用记录
- linux的一些基本命令(用来记录自己使用过的一些命令)
- Linux使用记录
- 使用串口管理linux主机
- 串口设置,select和 signal 在linux编程中的使用实例
- 使用VMware捕获Linux的串口输出来调试内核的Oops