对于BPI-CanMV-K230D-Zero开发板来讲,其标准的显示器配置是基于芯片ST7701的LCD显示屏,该显示屏的显示分辨率为800x480像素点,可在智能设备时实现摄像内容的输出和识别结果的显示等。可能是价格的元素,在套件中并没有提供该显示屏给用户。
此外,厂家还在例程中提供了一个SPI接口显示屏的程序框架,之所以称之为程序框架,是因为所提供的信息十分有限,需要自行加以探索。
该显示屏程序的框架内容为:
import time, image
from machine import FPIOA, Pin, SPI, SPI_LCD
fpioa = FPIOA()
fpioa.set_function(19, FPIOA.GPIO19)
pin_cs = Pin(19, Pin.OUT, pull=Pin.PULL_NONE, drive=15)
pin_cs.value(1)
fpioa.set_function(20, FPIOA.GPIO20)
pin_dc = Pin(20, Pin.OUT, pull=Pin.PULL_NONE, drive=15)
pin_dc.value(1)
fpioa.set_function(35, FPIOA.GPIO35, pu = 1)
pin_rst = Pin(35, Pin.OUT, pull=Pin.PULL_UP, drive=15)
fpioa.set_function(15, fpioa.QSPI0_CLK)
fpioa.set_function(16, fpioa.QSPI0_D0)
spi1 = SPI(1,baudrate=1000*1000*50, polarity=1, phase=1, bits=8)
lcd = SPI_LCD(spi1, pin_dc, pin_cs, pin_rst)
lcd.configure(320, 240, hmirror = False, vflip = True, bgr = False)
print(lcd)
img = lcd.init()
print(img)
img.clear()
img.draw_string_advanced(0,0,32, "RED, 你好世界~", color = (255, 0, 0))
img.draw_string_advanced(0,40,32, "GREEN, 你好世界~", color = (0, 255, 0))
img.draw_string_advanced(0,80,32, "BLUE, 你好世界~", color = (0, 0, 255))
lcd.show()
通过对程序的分析可知,该显示屏的分辨率应是320*240,显示屏的引脚连接关系为:
CS-----GPIO19
DC-----GPIO20
RST-----GPIO44
CLK-----GPIO15
DO-----GPIO16
为了对其进行探索,就为其选了一款显示分辨率同是320*240的显示屏,由于开发板上并未查找到GPIO44,故用GPIO35来替代其使用。
经测试,该程序的输出信息见图1所示。

图1 输出信息
在连接显示屏的情况下,其显示效果如图2所示,说明该程序对这款显示屏还是起一些作用的。只是程序中以指定色彩显示“你好世界~”的语句并没有执行效果。

图2 测试效果
有鉴于此,只好自行动手为其打造一个显示驱动程序及相应信息显示功能啦。
在实现显示屏驱动的情况下,其字符及字符串显示函数见图3所示,其测试主程序见图4所示。

图3 字符及字符串显示函数

图4 测试主程序
在所用引脚不变的情况下,采用模拟SPI的方式所实现的效果如图5所示。

图5 显示效果
后面,争取将它与AI识别功能结合起来,以实现信息的显示屏输出。