Luckfox pico mini b连接屏幕无法显示
Posted: 2024-10-10 7:56
开发板子:Luckfox Pico Mini B
屏幕:3.2寸电容屏:http://www.lcdwiki.com/zh/3.2inch_IPS_S ... le_ILI9341
我的代码:https://gitee.com/yeqinfu/luckfox_pico_min_b_rv1103
因为官网没有这块屏幕的代码,所以我就抄官网的代码:https://wiki.luckfox.com/zh/Luckfox-Pic ... sTouch-LCD
想把这个代码改一下,然后调通和这块屏幕的驱动。设备树是这样的:
https://gitee.com/yeqinfu/luckfox_pico_ ... mini-b.dts
我这里是听说cs片选随便自己定义就可以。因为我用官方图:
https://wiki.luckfox.com/zh/assets/imag ... e8eb0c.jpg
的引脚图,发现
总是Export Failed ,我也不清楚为啥,所以我代码中定义的cs引脚是普通引脚
理论上执行main文件后,应该屏幕至少点亮才对,但是都不亮。然后我用esp32连接我的屏幕,就没啥问题。示波器也能看到一些输出。
这是我的代码:
且不管后面while循环的东西,按道理在spi和led初始化之后,至少屏幕应该点亮。但是屏幕都没亮。因为刚开始学,也不知道看啥书才能解决这个问题= =!
屏幕:3.2寸电容屏:http://www.lcdwiki.com/zh/3.2inch_IPS_S ... le_ILI9341
我的代码:https://gitee.com/yeqinfu/luckfox_pico_min_b_rv1103
因为官网没有这块屏幕的代码,所以我就抄官网的代码:https://wiki.luckfox.com/zh/Luckfox-Pic ... sTouch-LCD
想把这个代码改一下,然后调通和这块屏幕的驱动。设备树是这样的:
https://gitee.com/yeqinfu/luckfox_pico_ ... mini-b.dts
我这里是听说cs片选随便自己定义就可以。因为我用官方图:
https://wiki.luckfox.com/zh/assets/imag ... e8eb0c.jpg
的引脚图,发现
Code: Select all
int SYSFS_GPIO_Export(int Pin)
{
char buffer[NUM_MAXBUF];
int len;
int fd;
fd = open("/sys/class/gpio/export", O_WRONLY);
if (fd < 0) {
SYSFS_GPIO_Debug( "Export Failed: Pin%d\n", Pin);
return -1;
}
len = snprintf(buffer, NUM_MAXBUF, "%d", Pin);
write(fd, buffer, len);
SYSFS_GPIO_Debug( "Export: Pin%d\r\n", Pin);
close(fd);
return 0;
}
理论上执行main文件后,应该屏幕至少点亮才对,但是都不亮。然后我用esp32连接我的屏幕,就没啥问题。示波器也能看到一些输出。
这是我的代码:
Code: Select all
void lcd_test(void)
{
// Exception handling:ctrl + c
signal(SIGINT, Handler_LCD);
/* Module Init */
if(DEV_ModuleInit() != 0){
DEV_ModuleExit();
exit(0);
}
//SD_Init();
LCD_SCAN_DIR lcd_scan_dir = SCAN_DIR_DFT;
LCD_Init(lcd_scan_dir,800);
//TP_Init(lcd_scan_dir);
// Paint_CreatImage();
// GUI_Show(lcd_scan_dir);
// DEV_Delay_ms(1000);
// LCD_Show_bmp(lcd_scan_dir);
// DEV_Delay_ms(1000);
// TP_GetAdFac();
// TP_Dialog(lcd_scan_dir);
// while(1){
// TP_DrawBoard(lcd_scan_dir);
// }
while (1)
{
LCD_Clear(WHITE);
DEV_Delay_ms(500);
LCD_CS_0;
LCD_DC_0;
DEV_INFO();
LCD_CS_1;
DEV_Delay_ms(500);
/* code */
LCD_ReadAllRegisters();
}
DEV_ModuleExit();
}