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

📄 serial.c

📁 vxworks中串口操作
💻 C
字号:
#include "vxworks.h"
#include "stdio.h"
#include "ioLib.h"
#include "sioLib.h"
int fd;
char buf[100];
void OpenS(int num)
{
	char tyName[20];
	char consoleName[20];
    
    	sprintf (tyName, "%s%d", "/tyCo/", num);
    	strcpy (consoleName, tyName);
    	
        fd=open(consoleName,O_RDWR,0);
	if(fd<0)
		printf("open serial error\n");
	else
		printf("open serial succeed\n");
        ioctl(fd,FIOSETOPTIONS,OPT_RAW);
        ioctl(fd,FIOBAUDRATE,9600);
	ioctl(fd,SIO_HW_OPTS_SET,CS8);
}

int tty_receive()
{
    int width;
    int bytes_in;
    struct fd_set readFds;

    OpenS(1);
    
    FD_ZERO(&readFds);   
    FD_SET(fd,&readFds);
    width=fd+1;
    if(select(width,&readFds,NULL,NULL,NULL)==ERROR)
          return(ERROR);
    if(FD_ISSET(fd,&readFds))
    {
    	while(1)
    	{
    		while((bytes_in=read(fd,buf,100))>0)
    	        {
		         SetT(buf);
    	        }
    	}
    }
    close(fd);
    return 1;
}

int app()
{
	int taskIdOne;
	taskIdOne = taskSpawn("t1",90,0x100,2000,(FUNCPTR)tty_receive,0,0,0,0,0,0,0,0,0,0);
}


int tty_send(char* buff)
{
    int bytes_out;
    OpenS(1);
    bytes_out=write(fd,buff,strlen(buff));
    printf("output chars total: %d\n",bytes_out);
    close(fd);
    return 1;
}

⌨️ 快捷键说明

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