⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serial.c

📁 2410/vxworks/tornado下的基本实验包括 serial,ramdrv,interrupt,multi-tasking,FTP,TCP,UDP
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -