在我们的系统中,LCD的虚拟控制台和控制台TTY不是同一个设备,也就是说,如果在程序里单纯的printf是不行的!这样只能修改你正在使用的TTY的blankinterval,而你用的却是文本方式的设备,不存在黑屏问题。
于是,就需要仔细比较/dev/console、/dev/tty、/dev/ttyn的设备号,在我的系统里,用户程序里/dev /console和/dev/tty都是5,说明他们是一个东西,/dev/ttyn是4,这才是FB上的虚拟控制台。但是/dev/ttyn不是正在使用的TTY,那么怎么printf呢?只好用write函数来解决了。
写这样一段代码:
#include <fcntl.h>
#include <stdio.h>
#include <sys/ioctl.h>
void some_function()
{
int f;
f = open("/dev/tty0", O_RDWR);
write(f, "/033[9;0]", 8);
close(f);
}
修改用户程序,加入设置blankinterval的代码(推荐)
时间: 2024-11-07 17:19:07