釋放ttyS0作爲通信串口
#include <sys/ioctl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
#include <termios.h>
#include <errno.h>
void CloseConsole(void) {
int fp;
struct termios options;
printf("change1\n");
fp = open("/dev/tty1",O_RDONLY); // 改變console
ioctl(fp,TIOCCONS);
close(fp);
fp = open("/dev/tts/0",O_RDWR|O_NOCTTY|O_NDELAY); //打開串口0讀寫
if(fp == -1) exit(0);
tcgetattr(fp,&options);
cfsetispeed(&options,B115200);
cfsetospeed(&options,B115200);
options.c_cflag |= (CLOCAL|CREAD);
tcsetattr(fp,TCSANOW,&options);
write(fp,"hello world!\n123",15);
close(fp); //關閉串口0
fp = open("/dev/tty0",O_RDONLY); //恢復console 到串口0
ioctl(fp,TIOCCONS);
close(fp);
printf("change2\n");
}
關於關閉SHELL對串口的佔用,使之能做普通的串口通信和撥號
1、步驟:
在內核編譯過程中執行make menuconfig
Character devices --->
Serial drivers --->
S3C2410 serial port support
[ ] Console on S3C2410 serial port 【注】去掉這項即可,不必修改busybox/init.c了
< > 8250/16550 and compatible serial support (EXPERIMENTAL)
2、備註:
這樣就不能用ttyS0口來登錄ARM開發板了,你可以選擇用TELNET的方式來登錄。
做法:telnet 192.168.0.12(你的開發板的IP地址)
輸入:“root”用戶名就可以進入你的開發板了
3、OK..