页次: 1
因为搜狗是腾讯的
心情复杂 说:无痕 说:reset GPIO能申请到了,但是dc引脚又出问题了,报下面的错误。
[ 1.165851] fbtft_of_value: buswidth = 8 [ 1.169818] fbtft_of_value: debug = 0 [ 1.173478] fbtft_of_value: rotate = 270 [ 1.177395] fbtft_of_value: fps = 10 [ 1.181682] @ pdata->display.buswidth = 8 [ 1.185755] @ par->gpio.dc = 0 [ 1.188882] fb_ili9341 spi0.0: Missing info about 'dc' gpio. Aborting.
追log追到这里,原因是par->gpio.dc = 0导致下面的if条件成立。这问题奇奇怪怪的。
1173 if (pdata->display.buswidth != 9 && par->startbyte == 0 && 1174 !par->gpio.dc) { 1175 printk ("@ pdata->display.buswidth = %d\n", pdata->display.buswidth); 1176 printk ("@ par->gpio.dc = %d\n", par->gpio.dc); 1177 dev_err(par->info->device, 1178 "Missing info about 'dc' gpio. Aborting.\n"); 1179 return -EINVAL; 1180 }
另外我今晚跟着教程走,在4.17的内核中能够成功驱动手上的屏幕,所以屏幕是正常的。
注意屏幕上的LED引脚要接3.3V你这不明显是DC申请不到吗? 可以在 fbtft_request_one_gpio 添加点打印函数 看看?
感谢大佬指点,按照你的指示,在fbtft_request_one_gpio加打印函数调试,发现问题,现在已经解决,屏幕已经点亮。
大佬不敢当 我也是个小菜鸡
啥问题 ? 可以分享上来下,让大家学习下。
reset GPIO能申请到了,但是dc引脚又出问题了,报下面的错误。
[ 1.165851] fbtft_of_value: buswidth = 8 [ 1.169818] fbtft_of_value: debug = 0 [ 1.173478] fbtft_of_value: rotate = 270 [ 1.177395] fbtft_of_value: fps = 10 [ 1.181682] @ pdata->display.buswidth = 8 [ 1.185755] @ par->gpio.dc = 0 [ 1.188882] fb_ili9341 spi0.0: Missing info about 'dc' gpio. Aborting.
追log追到这里,原因是par->gpio.dc = 0导致下面的if条件成立。这问题奇奇怪怪的。
1173 if (pdata->display.buswidth != 9 && par->startbyte == 0 && 1174 !par->gpio.dc) { 1175 printk ("@ pdata->display.buswidth = %d\n", pdata->display.buswidth); 1176 printk ("@ par->gpio.dc = %d\n", par->gpio.dc); 1177 dev_err(par->info->device, 1178 "Missing info about 'dc' gpio. Aborting.\n"); 1179 return -EINVAL; 1180 }
另外我今晚跟着教程走,在4.17的内核中能够成功驱动手上的屏幕,所以屏幕是正常的。
注意屏幕上的LED引脚要接3.3V
你这不明显是DC申请不到吗? 可以在 fbtft_request_one_gpio 添加点打印函数 看看?
我在5.7改了fbtft-core.c 的 fbtft_request_one_gpio fbtft_reset 函数 能用 你可以试试
static int fbtft_request_one_gpio(struct fbtft_par *par,
const char *name, int index,
struct gpio_desc **gpiop)
{
struct device *dev = par->info->device;
struct device_node *node = dev->of_node;
int gpio, flags, ret = 0;
enum of_gpio_flags of_flags;
char gpio_names[32];
sprintf(gpio_names, "%s-gpios", name);
if (of_find_property(node, gpio_names, NULL)) {
gpio = of_get_named_gpio_flags(node, gpio_names, index, &of_flags);
if (gpio == -ENOENT)
return 0;
if (gpio == -EPROBE_DEFER)
return gpio;
if (gpio < 0) {
dev_err(dev,
"failed to get '%s' from DT\n", gpio_names);
return gpio;
}
//active low translates to initially low
flags = (of_flags & OF_GPIO_ACTIVE_LOW) ? GPIOF_OUT_INIT_LOW :
GPIOF_OUT_INIT_HIGH;
ret = devm_gpio_request_one(dev, gpio, flags,
dev->driver->name);
if (ret) {
dev_err(dev,
"gpio_request_one('%s'=%d) failed with %d\n",
gpio_names, gpio, ret);
return ret;
}
*gpiop = gpio_to_desc(gpio);
fbtft_par_dbg(DEBUG_REQUEST_GPIOS, par, "%s: '%s' = GPIO%d\n",
__func__, gpio_names, gpio);
}
return ret;
}
static void fbtft_reset(struct fbtft_par *par)
{
if (!par->gpio.reset)
return;
fbtft_par_dbg(DEBUG_RESET, par, "%s()\n", __func__);
gpiod_set_value_cansleep(par->gpio.reset, 1);
usleep_range(20, 40);
gpiod_set_value_cansleep(par->gpio.reset, 0);
msleep(120);
gpiod_set_value_cansleep(par->gpio.reset, 1);
msleep(10);
}
链接: https://pan.baidu.com/s/16iiiVAHI6GT8ElxTx3VORQ
提取码:qt74
复制这段内容后打开百度网盘手机App,操作更方便哦
7天
卧槽 我又来迟了 还能在分享下吗?
心情复杂 说:Eden 说:sub_widget 是一个新的窗口,按钮按下之后的操作不应该是把Main_widget 关掉然后再去打开新的窗口吗
你是通过Main_widget来创建sub_widget的 那你第一次点按钮之后就把他close了 那以后咋办 难道你的按钮只用一次的?
你好,我是想实现这个功能:
有Main,Sub两个界面,界面上分别有一个按钮, 按下界面Main的按钮之后,跳转到Sub界面同时把Main界面的资源释放掉,再Sub界面按下按钮之后重新绘制Main界面同时把Sub界面的资源释放
我的理解是:在Main界面按下按钮时,使用close关掉这个界面,同时创建sub界面,这样子的话按钮应该就是一次性的,按完之后这个界面关闭,跳到其他界面,如果不用close的话是不是就是 sub界面把main界面覆盖了而已,Main界面还是存在的
上面在析构函数里面delete sub感觉好像是不对的,因为close会触发它的析构函数,但是这样子不知道在哪里释放sub这个指针您方便留个联系方式吗,我好向您请教
请教倒不用,我也是个Qt菜鸟。:rolleyes:
可以提供点思路给你
你可以在A对象的btn的槽函数里:定义B对象 绑定信号A1到 B的槽 B1 B->Show(); 发送信号A1 将A对象的Close和Delete放到B的槽函数里
反之亦然
ARCH=arm
#当前目录
CUR_DIR = $(shell pwd)
#源码目录
KERNEL_DIR = /home/jonsen/f1c100s/linux
#交叉编译工具链
CROSS_COMPILE = arm-linux-gnueabihf-
#模块名字
MODULE_NAME = chrdevbase
ifeq ($(KERNELRELEASE),)
all:
make ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNEL_DIR) M=$(CUR_DIR) modules
clean:
#清除模块
make -C $(KERNEL_DIR) M=$(CUR_DIR) clean
else
obj-m+=$(MODULE_NAME).o
endif
试试这个
那个?
晕哥 就是参考这个帖子 按照流程 走了一遍还是不行 一ping九重启 所以才来发帖求助的
诸位大大,uboot都能使用以太网吗?我按照官方教程https://www.kancloud.cn/lichee/lpi0/470839适配以太网 在uboot中 一Ping 板子就自动重启,不管是v3s-current 还是v3s-spi-experimental的uboot
页次: 1