uart,即串行通信,是计算机通信中最常用的一种通信方式,能够将两个设备之间的信息快速传输,是桥梁设备到计算机的关键性组件。
为海宁等地区用户提供了全套网页设计制作服务,及海宁网站建设行业解决方案。主营业务为成都网站设计、成都做网站、海宁网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
linux上的UART(Universal Asynchronous Receiver Transmitter)接口可以使硬件得以连接到计算机系统中,以实现信息的输入输出功能。在Linux系统中,UART可以提供多种功能,包括同步及异步数据传输,RS-232/RS-485/RS-422网络通信,以及硬件监控等。
要在Linux系统中使用UART,首先要配置相关的设备才能启动UART功能。Linux操作系统要求先加载”8250″驱动程序,以提供UART串行接口的功能支持。其次,用户还需要在系统中安装硬件对UART的驱动程序。最后,用户根据所使用的设备,设置相应的串行参数,如波特率,数据位,停止位等。
使用Linux系统作为UART接口的例子如下,下面的程序可以用来实现Linux上UART通信:
#include
#include
#include
#include
#include
#define BAUDRATE B9600 /* Change as needed, keep B */
#define MODEMDEVICE "/dev/ttyO1" /* Change to ttyUSB0 to work with USB-to-serial */
#define _POSIX_SOURCE 1 /* POSIX compliant source */
int main()
{
int file;
struct termios oldtio,newtio;
if ( (file=open(MODEMDEVICE, O_RDWR))
perror(MODEMDEVICE);
exit(-1);
}
if ( tcgetattr(file,&oldtio) == -1) { /* save current port settings */
perror("tcgetattr");
exit(-1);
}
bzero(&newtio, sizeof(newtio));
newtio.c_cflag = BAUDRATE | CS8 | CLOCAL | CREAD;
/* set input mode (non-canonical, no echo,...) */
newtio.c_lflag = 0;
newtio.c_cc[VTIME] = 0; /* noncanonical read timeout */
newtio.c_cc[VMIN] = 5; /* noncanonical read minimum characters */
/ flush ioctl call */
tcflush(file, TCIOFLUSH);
if ( tcsetattr(file,TCSANOW,&newtio) == -1) {
perror("tcsetattr");
exit(-1);
}
// do your stuff here
char buf[255];
int n = read(file,buf,255);
/* If you want to write data, use the following line */
//int n = write(file,"data\n",6);
/* restore the old port settings */
tcsetattr(file,TCSANOW,&oldtio);
return 0;
}
以上是实现Linux上UART的相关示例代码,可以帮助用户快速实现UART的功能,将用户的设备与系统中的软件连接起来。这样可以使用户在Linux系统中更方便地使用UART,从而实现计算机系统内部或者外部设备之间有效的通信。
成都网站营销推广找创新互联,全国分站站群网站搭建更好做SEO营销。
创新互联(www.cdcxhl.com)四川成都IDC基础服务商,价格厚道。提供成都服务器托管租用、绵阳服务器租用托管、重庆服务器托管租用、贵阳服务器机房服务器托管租用。
文章题目:Linux上UART通信的实现(uartlinux)
转载注明:http://www.stwzsj.com/qtweb/news24/15674.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联