/*串口自收自发程序主函数*/
#include"uart_api.h"
int main()
{
int fd;
char buff[BUFFER_SIZE];
char buff2[]="Hello NUAA2440!\n";
int nread,nwrite;
if((fd=open_port(TARGET_COM_PORT))<0)
{
perror("open serial error");
return 1;
}
printf("open ok!\n");
if(set_com_config(fd,115200,8,'N',1)<0) /*配置串口*/
{
perror("set_com_config error");
return 1;
}
printf(" set ok!\n");
/*将缓冲区buff2中的数据写入到串口1中去*/
nwrite=write(fd,buff2,sizeof(buff2));
printf("nwrite=%d\n",nwrite); /*打印写入的数据*/
/*接下来就是读数据*/
while(1)
{
if((nread = read(fd,buff,1024))>0)
{
buff[nread] = '\0';
printf("\nrecv:%d\n",nread);
printf("%s",buff);
}
}
close(fd);
return 0;
}
#include"uart_api.h"
int main()
{
int fd;
char buff[BUFFER_SIZE];
char buff2[]="Hello NUAA2440!\n";
int nread,nwrite;
if((fd=open_port(TARGET_COM_PORT))<0)
{
perror("open serial error");
return 1;
}
printf("open ok!\n");
if(set_com_config(fd,115200,8,'N',1)<0) /*配置串口*/
{
perror("set_com_config error");
return 1;
}
printf(" set ok!\n");
/*将缓冲区buff2中的数据写入到串口1中去*/
nwrite=write(fd,buff2,sizeof(buff2));
printf("nwrite=%d\n",nwrite); /*打印写入的数据*/
/*接下来就是读数据*/
while(1)
{
if((nread = read(fd,buff,1024))>0)
{
buff[nread] = '\0';
printf("\nrecv:%d\n",nread);
printf("%s",buff);
}
}
close(fd);
return 0;
}

本文提供了一个嵌入式Linux系统中用于串口通信的自收自发测试程序,通过打开串口、配置波特率和数据位、写入数据到串口以及从串口读取数据,实现数据的发送与接收。程序中使用了uart_api.h头文件,以115200波特率、8位数据位、无校验、1位停止位进行设置,并使用write()和read()函数进行数据操作。

3293

被折叠的 条评论
为什么被折叠?



