【NUCLEO-L476RG开发】MBED下的12864液晶驱动
近日买了一块 12864 的液晶模块,模块上所使用的芯片是 ST7565R,在 MBED 官网上搜寻了相关的例程,MBED 环境下编程的优势是网上有丰富的例程可供参考,并且也支持了多家厂家的开发板,而目前看起来 ST 的板子支持度似乎是最高的,貌似有新的板子推出不久后 MBED 官网上就有相关的支持了,这当然也包括了 NUCLEO-L476RG 这块板子。MBED 官网上找到了这个例程:
将例程 Import 进来:
底下的 Update 选项一定要勾选,否则编译时会出现这样的错误信息:
这个错误信息是表示 CMSIS 版本太旧了,Update 勾选后就不会出现这个信息。
再一次编译,又出现了一个错误信息:
line3d() 函数竟然会有错误?原来参数里面有 2 个 z0!正确的写法后面那一个应该是 z1 才对。原作者没有发现吗?在错误的信息上双击后跳到错误的地方将错误修正。
再一次编译,出现了更多的错误信息:
错误的地方在这里:
这是因为这个例程原先是使用在 NXP 的板子上运行的,而 ST 与 NXP 在管脚上的名称定义是不一样的,在 ST 的 SPI 例程中对于 SPI 的宣告是这样的:
SPI device(SPI_MOSI, SPI_MISO, SPI_SCK);
我们将这 2 行程序管脚的名称修改成 ST 所使用的名称,其他的控制管脚依 NUCLEO 板扩充接头上的管脚顺序排列如下:
SPI spi(SPI_MOSI, NC, SPI_SCK);
DogLCD dog(spi, PA_8, PB_6, PA_9, PC_7); //spi, power, cs, a0, reset
再一次编译,成功了。
下载到板上运行,有显示内容,不过看起来不太对!
这应该是显示初始行设置不正确,在 DogLCD::init() 函数里面参考了我使用的液晶屏的参数将初始行设置由 0x40 改成 0x60 之后显示就正常了。
运行结果:
实验所使用的液晶模块资料:
官网例程所使用的液晶模块资料:
程序码:
演示视频:
https://v.youku.com/v_show/id_XMTM5NDk2NDE5Mg==.html
https://v.youku.com/v_show/id_XMTM5NDk2NDE5Mg==.html
谢谢分享。有没有使用STM32CubeMx来驱动12864。。。:) 挺不错的 超級稻草人 发表于 2015-11-24 20:33
谢谢分享。有没有使用STM32CubeMx来驱动12864。。。
找个时间试试。 :D dsjsjf 发表于 2015-11-24 21:07
挺不错的
感谢关注 :handshake 多谢分享 目前支援最好的應該是NXP,mbed的USB程序在ST還沒支援得很好 cropse 发表于 2015-11-25 00:14
目前支援最好的應該是NXP,mbed的USB程序在ST還沒支援得很好
嗯,你说的是没错,毕竟 mbed 是从 NXP 板子开始发展的。 感谢分享 后面显示的是什么?