serial.c

来自「2410/vxworks/tornado下的基本实验包括 serial,ram」· C语言 代码 · 共 74 行

C
74
字号
#include "ioLib.h"

#define BUFFSIZE			100

void test_write(void)
{
	int serialFd;
	serialFd = open("/tyCo/0",O_RDWR,0);		/*以读写方式打开串口1,得到相应的文件描述符SerialFd*/
	write(serialFd,"Hello,World!\n",13);		/*向串口写入数据"Hello,World!"*/	
	close(serialFd);							/*关闭串口*/								
}	

void test_read(void)
{
	int serialFd;
	int n;
	char buf[BUFFSIZE];
	serialFd = open("/tyCo/0",O_RDWR,0);		/*以读写方式打开串口1,得到相应的文件描述符SerialFd*/

	if(write(serialFd,"Input :  ", 8)  == ERROR) /*输出提示语Input: */
		perror("Write 1 ");
	
	if((n = read(serialFd, buf, BUFFSIZE)) > 0)	/*等待串口输入*/
		{
			if(write(serialFd,"Your Input is ", 15)  == ERROR)  
				perror("Write 2 ");
			else
            {
				#if 1
				if(write(serialFd, buf, n) != n) /*将从串口读到的数据写回串口*/                  
					perror("Write 3 ");
				#endif
            }
		}	
	else
		perror("read");

	close(serialFd);
}

void test_ioctl()
{
	int serialFd;

	serialFd = open("/tyCo/0",O_RDWR,0);	

	/*设置串口速率为38400*/
	if(ioctl(serialFd, FIOBAUDRATE, 115200)== ERROR)
		perror("ioctl 1");

	/*设置串口模式为RAW模式*/
	if(ioctl(serialFd, FIOSETOPTIONS, OPT_RAW)== ERROR)
		perror("ioctl 2");
	else
		printf("\n\rioctl set mode RAW\n\r");
    close(serialFd);
	/*用test_read测试*/
	test_read();
	
	serialFd = open("/tyCo/0",O_RDWR,0);	
	/*设置串口恢复成LINE模式,以及恢复其他终端属性*/
	if(ioctl(serialFd, FIOSETOPTIONS, OPT_TERMINAL)== ERROR)
		perror("ioctl 3");
	else
		printf("\nioctl set mode LINE\n");
	close(serialFd);
	/*用test_read测试*/
	test_read();
	
		
	close(serialFd);																			

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?