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

📄 meter.c

📁 uclinux里面涉及到的一个button的demo代码
💻 C
字号:
#include <stdio.h>#include <unistd.h>#include <termios.h>#include <sys/types.h>#include <fcntl.h>#include <sys/ioctl.h>#include <string.h>#define SERIALPORT     "/dev/ttyS0"	/* Serial port to read from */#define CYCLE		(1000 * 500)	/* Delta between samples (us) */int rts_line = TIOCM_RTS;         /* ioctl reference to rts line      */int fd_metex, fd_et;struct termios newtio;int main(int argc, char *argv[]){	int fd;	struct termios tios;	int rts = TIOCM_RTS;	char buf[14];	int l;	int res;	close(0);		fd = open(SERIALPORT, O_RDWR | O_NOCTTY | O_SYNC);	if (fd == -1) {		res = 1;		fprintf(stderr, "cannot open %s\n", SERIALPORT);	} else {		close(2);		tios.c_cflag = B1200 | CS7 | CSTOPB | CREAD | CLOCAL;		tios.c_iflag = 0;		tios.c_oflag = 0;		tios.c_lflag = 0;		tios.c_cc[VEOL] = 13;		//tios.c_cc[VMIN] = 14;		tcsetattr(fd, TCSANOW, &tios);		ioctl(fd, TIOCMBIC, &rts);			for (;;) {	printf("Sleeping...\n");fflush(stdout);			usleep(CYCLE);	printf("Writing...\n");fflush(stdout);			write(fd, "D", 1);	printf("Reading...\n");fflush(stdout);			for (l=0; l<14; l++) {				read(fd, buf+l, 1);				write(1, buf+l, 1);			}			//read(fd, buf, 14);	printf("Decoding...\n");fflush(stdout);			buf[13] = '\0';			l = strlen(buf);			if (l != write(1, buf, l)) {				res = 0;				break;			}		}		ioctl(fd, TIOCMBIS, &rts);		close(fd);	}	close(1);	return res;}	

⌨️ 快捷键说明

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