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

📄 com.c

📁 com口接led灯源码
💻 C
字号:
/* ************************************************************
 * 
 * copyright wenyanEmbedded 2007-xxxx
 * using serial's DTR or RTS to light the led
 * 2007-03-08 First coded by mark wang
 * 
 *
 * ************************************************************
 */
//includes
#include<stdio.h>				//stand libs for io
#include<stdlib.h>				//stand libs for system
#include<string.h>				//string libs
#include<errno.h>				//error libs
#include<unistd.h>				//unix posix libs
#include<fcntl.h>				//file control libs
#include<pthread.h>				//multiple threads libs
#include<sys/types.h>				//serial ports status libs
#include<sys/stat.h>				//status libs
#include<termio.h>				//serial ports status struct libs
#include<sys/io.h>					//io driver libs
int main(void)					//majoy function
{
	int fd;					//file description for serial port
	int status;				//status variable for serial port
	
	//logo message
	fprintf(stdout,"****************************************\r\n");
	fprintf(stdout,"**                                    **\r\n");
	fprintf(stdout,"**        COM & LED TEST              **\r\n");
	fprintf(stdout,"**                                    **\r\n");
	fprintf(stdout,"****************************************\r\n");
//call the io ports driver for io ports access
	if(ioperm(0x2fc,1,1))
	{
		fprintf(stdout,"Error for 0x2fc\n");
		exit(1);
	}	
	//change the DTR PIN
	while(1)
	{
		//get the status for the serial port
		//ioctl(fd,TIOCMGET,&status);
		status=inb(0x2fc);
		fprintf(stdout,"status A = 0x%2X\n",status);		//for debug
		
		//enable the DTR signal
		status |=1;
		//status&=~TIOCM_RTS;														//for extented
		
		//reset the DTR signal
		//ioctl(fd,TIOCMSET,&status);
		outb(status,0x2fc);
		//see if setting is successful
		//ioctl(fd,TIOCMGET,&status);
		status=inb(0x2fc);
		fprintf(stdout,"status B = 0x%2X\n",status);		//for debug
		
		sleep(3);																				//last for a certain time to see the changes
		
		fprintf(stdout,"=================================================\n");
		
		//same process as above
		status=inb(0x2fc);
		fprintf(stdout,"status A = 0x%2X\n",status);		//for debug

		status &=0;
		//status&=~TIOCM_RTS;
		
		outb(status,0x2fc);
		
	status=inb(0x2fc);
		fprintf(stdout,"status B == 0x%2X\n",status);
		sleep(3);
		
		fprintf(stdout,"-------------------------------------------------\n");
	}
}

⌨️ 快捷键说明

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