real6410调试串口作为普通串口使用

#include <stdio.h>
#include <assert.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h>
#include <sys/ioctl.h> 
int main(void)
{
	int fp,err;
	unsigned char buff[20];
	unsigned char send_buff[20];
	struct termios options;
	printf("change1\n");
	fp = open("/dev/console",O_RDONLY); // 改变console
	ioctl(fp,TIOCCONS);
	close(fp);


	fp = open("/dev/ttySAC0",O_RDWR|O_NOCTTY|O_NDELAY|O_NONBLOCK); //打开串口0读写
	if(fp == -1)
	{
		perror("open:");
		return -1;
	}
	tcgetattr(fp,&options);
	cfsetispeed(&options,B115200);
	cfsetospeed(&options,B115200);
	options.c_cflag |= (CLOCAL|CREAD);
	tcsetattr(fp,TCSANOW,&options);
    write(fp,"hello world!\n",15);

	while(1)
	{
		

		while(read(fp,buff,4) == 4)/*read(fp,buff,1)>0)*/
		{
       	 write(fp, buff,4);
  		}
	}
	close(fp);                       //关闭串口0

	fp = open("/dev/console",O_RDONLY);  //恢复console 到串口0
	ioctl(fp,TIOCCONS);
	close(fp);
	printf("change2\n");
	return 0;
}

当然也可以修改内核选项使其不生成/dev/console设备节点



©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页