近日买了一块 12864 的液晶模块,模块上所使用的芯片是 ST7565R,在 MBED 官网上搜寻了相关的例程,MBED 环境下编程的优势是网上有丰富的例程可供参考,并且也支持了多家厂家的开发板,而目前看起来 ST 的板子支持度似乎是最高的,貌似有新的板子推出不久后 MBED 官网上就有相关的支持了,这当然也包括了 NUCLEO-L476RG 这块板子。 MBED 官网上找到了这个例程: 将例程 Import 进来: 底下的 Update 选项一定要勾选,否则编译时会出现这样的错误信息: 这个错误信息是表示 CMSIS 版本太旧了,Update 勾选后就不会出现这个信息。 再一次编译,又出现了一个错误信息: line3d() 函数竟然会有错误?原来参数里面有 2 个 z0!正确的写法后面那一个应该是 z1 才对。原作者没有发现吗?在错误的信息上双击后跳到错误的地方将错误修正。 再一次编译,出现了更多的错误信息: 错误的地方在这里: 这是因为这个例程原先是使用在 NXP 的板子上运行的,而 ST 与 NXP 在管脚上的名称定义是不一样的,在 ST 的 SPI 例程中对于 SPI 的宣告是这样的:
我们将这 2 行程序管脚的名称修改成 ST 所使用的名称,其他的控制管脚依 NUCLEO 板扩充接头上的管脚顺序排列如下:
再一次编译,成功了。 下载到板上运行,有显示内容,不过看起来不太对! 这应该是显示初始行设置不正确,在 DogLCD::init() 函数里面参考了我使用的液晶屏的参数将初始行设置由 0x40 改成 0x60 之后显示就正常了。 运行结果: 实验所使用的液晶模块资料: |
嗯,你说的是没错,毕竟 mbed 是从 NXP 板子开始发展的。
找个时间试试。
感谢关注
me too