#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h> //头文件定义
#include <unistd.h>
#include <termios.h>
int main(void)
{
int fd;
int len;
char sbuf[]={"Hello,this is a uart1 test\n"}; /*待发送的书数据*/
int send_len=sizeof(sbuf);
struct termios opt; /*定义指向termios 结构类型的指针opt*/
//open
if((fd=open("/dev/ttyS1",O_RDWR| O_NOCTTY))==-1){ //打开/dev/ttyS1设备,此处必须加O_NOCTTY选项
perror("Cannot open the serial port");
return 1;
}
tcgetattr(fd, &opt); /*获得串口指向termios结构的指针*/
cfsetispeed(&opt, B9600); /*指定输入波特率,9600bps*/
cfsetospeed(&opt, B9600); /*指定输出波特率,9600bps*/
opt.c_cflag &= ~CSIZE;
opt.c_cflag |=CS8; /*将数据位修改为8bit*/
opt.c_cflag &= ~PARENB; /*无校验*/
opt.c_cflag &= ~CRTSCTS; /*不使用数据流控制*/
//将修改后的termios数据设置到串口中
tcsetattr(fd,TCSANOW,&opt);
len= write(fd,sbuf,send_len); //
if(len == -1)
printf("Wirte sbuf error./n");
else
printf("write len = %d.\n", len);
close(fd);
}