用的一块RK3566板子,linux5.10内核,使用FBTFT驱动2.4寸ili9341显示屏,改了设备树和内核,可以正常出现fb0设备,但写入随机数的时候屏幕只会闪烁一下,其他操作没反应。查看内核日志如下
[ 10.878726] fb_ili9341 spi3.0: fbtft_property_value: buswidth = 8
[ 10.878734] fb_ili9341 spi3.0: fbtft_property_value: debug = 0
[ 10.878739] fb_ili9341 spi3.0: fbtft_property_value: rotate = 270
[ 10.878745] fb_ili9341 spi3.0: fbtft_property_value: fps = 10
[ 12.544071] fb_ili9341 spi3.0: SPI transfer failed: -110
[ 12.544492] fb_ili9341 spi3.0: fbtft_update_display: write_vmem failed to update display buffer
求助一下大神们是什么问题啊
最近编辑记录 qztx (2024-11-30 19:43:37)
离线
这些日志显示了 fb_ili9341(一个支持 ILI9341 显示屏的驱动)初始化时读取的配置参数:
buswidth = 8:SPI 数据总线宽度是 8 位。
rotate = 270:屏幕旋转角度设置为 270 度。
fps = 10:帧率设置为每秒 10 帧。 这表明驱动初始化成功,读取到了配置。错误日志
[ 12.544071] fb_ili9341 spi3.0: SPI transfer failed: -110
[ 12.544492] fb_ili9341 spi3.0: fbtft_update_display: write_vmem failed to update display buffer
SPI transfer failed: -110:SPI 数据传输失败,错误码 -110 通常表示 超时。
fbtft_update_display:显示驱动尝试更新屏幕时,由于 SPI 通信失败,导致未能更新显示缓冲区。
1. 硬件连接问题
原因:显示屏与设备(如树莓派或其他嵌入式设备)之间的物理连接可能有问题。
SPI 引脚(MOSI、MISO、SCLK、CS)连接不正确。
供电不足或电压不匹配(显示屏可能需要 3.3V 或 5V)。
解决方法:
检查所有硬件连接是否正确。
确保电源电压符合显示屏要求。
使用万用表检查电路,确保 SPI 引脚通路正常。
2. SPI 配置错误
原因:SPI 通信速度过高,导致设备无法正常通信。
解决方法:
降低 SPI 时钟速度。例如在设备的启动配置文件中(如树莓派的 /boot/config.txt),调整 spi_speed 参数:
dtoverlay=fb_ili9341,rotate=270,spi_speed=16000000
将时钟速度从默认的 32MHz 降低到 16MHz 或更低(如 8MHz)。
检查 SPI_MODE 是否匹配显示屏的要求,通常 ILI9341 使用 SPI 模式 0 或 3。
3. 驱动不匹配或不支持
原因:驱动配置不正确,或者显示屏型号与驱动不完全兼容。
解决方法:
确保使用了正确的驱动(如 fb_ili9341)。
检查设备树配置是否匹配显示屏的型号。
尝试更换为通用的显示驱动,如 fbtft_device,并手动配置参数。
4. 软件问题
原因:操作系统内核、驱动或库版本存在问题。
解决方法:
确保操作系统和内核版本支持 fb_ili9341。
检查是否需要安装额外的软件包或驱动。
更新内核或使用社区推荐的镜像文件。
5. SPI 引脚冲突
原因:其他设备(如其他 SPI 外设或 GPIO)占用了 SPI 总线。
解决方法:
确保 SPI 总线仅用于连接显示屏。
检查 /boot/config.txt 中是否有冲突的设备配置。
6. 显示屏硬件故障
原因:显示屏可能已损坏或存在质量问题。
解决方法:
更换显示屏测试是否仍然报错。
离线
更新一下,看了站内几个大佬的帖子,修改了一下fbtft-core.c和设备树,现在没有看到报错了,但是屏幕还是没反应 晕
root@orangepi3b:/dev# dmesg | grep "spi"
[ 10.289509] rockchip-spi fe640000.spi: register misc device rkspi-dev3
[ 10.289528] rockchip-spi fe640000.spi: probed, poll=0, rsd=0, cs-inactive=0, ready=0
[ 10.293155] spi-nor spi4.0: XM25QU128C (16384 Kbytes) read_data x4
[ 10.879915] fb_ili9341 spi3.0: fbtft_property_value: buswidth = 8
[ 10.879923] fb_ili9341 spi3.0: fbtft_property_value: debug = 0
[ 10.879930] fb_ili9341 spi3.0: fbtft_property_value: rotate = 270
[ 10.879936] fb_ili9341 spi3.0: fbtft_property_value: fps = 10
[ 11.225415] graphics fb0: fb_ili9341 frame buffer, 320x240, 150 KiB video memory, 16 KiB buffer memory, fps=10, spi3.0 at 15 MHz
离线