完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
RISC-V RVB2601 U8g2库测试_x264RVB2601板子自带了一块128x64的OLED单色屏幕,可以用来进行图形和文字的显示。RVB2601的例程中,有使用LVGL库进行OLED显示的例程,LVGL也是一个十分优秀的图形库,支持彩色界面的设计。由于前段时间刚好在用另一个支持单色显示的图形库——U8g2,所以就想着尝试将U8g2库移植到RVB2601板子中。 U8g2 是一个用于嵌入式设备的单色图形库。U8g2支持单色OLED和LCD,并支持如SSD1306等多种类型的OLED驱动。 U8g2源码的开源库地址:https://github.com/olikraus/u8g2 移植步骤 首先下载U8g2的源码,因为RVB2601板子主要是使用C语言编程,所以只需关注源码中的C源码部分,即csrc文件夹下的文件。 精简c源码U8g2支持多种显示驱动的屏幕,因为源码中也包含了各个驱动对应的文件,为了减小整个工程的代码体积,在移植U8g2时,可以删除一些无用的文件。 去掉无用的驱动文件这些驱动文件通常是u8x8_d_xxx.c,xxx包括驱动的型号和屏幕分辨率。RVB2601板子的OLED,可以使用u8x8_ssd1306_128x64_noname.c这个文件,其它的屏幕驱动文件可以删掉。 只留一个本次要用到的u8g2_Setup_ssd1306_128x64_noname_f就好,其它的可以删掉或注释掉
精简u8g2_d_memory.c 只留一个本次要用到的u8g2_m_16_8_1就好,其它的可以删掉或注释掉
编写移植函数 精简源码之后,还需要编写如下的配置函数。 因为RVB2601板子上的OLED是SPI接口,因此需要在函数中,调用对应引脚的高低电平设置函数,以实现U8g2对OLED的SPI引脚的控制。另外还要赋予U8g2一个oled的初始化函数,可以使用CDK中hello_world程序中的oled_init函数。最后还要赋予U8g2一个延时函数,可以使用CDK中hello_world程序中的Delay函数。 u8x8_gpio_and_delay
u8g2Init U8g2的初始化,可以调用下面这个u8g2_Setup_ssd1306_128x64_noname_1函数(最后的1代表128字节页大小),该函数的4个参数含义:
注:以上函数可以放到hello_world例程的oled.c文件中。 显示测试函数使用U8g2提供的测试函数,用于查看显示效果
源码加入到CDK编译 在CDK的hello_world例程的基础上进行修改。 添加u8g2源码到工程左侧工程目录添加U8g2源码,然后工程上右键,第一个Options for xxx,继续进行工程的配置,主要是添加U8g2的头文件搜寻目录,如下: 在hello_world例程的基础上,修改主函数,主要就是去掉原来的oled_init,改用u8g2Init,while(1)中调用U8g2的测试函数
测试效果 CDK中编译程序,下载运行,效果如下: 利用U8g2库,可以方便的进行图形的和字符的显示,测试视频: 总结 本篇介绍了如何将U8g2图形库移植到RVB2601板子中,通过CDK开发环境进行编译测试。 |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
【平头哥Sipeed LicheeRV 86开发板试用体验】Waft初体验
15675 浏览 1 评论
13730 浏览 4 评论
【平头哥Sipeed LicheeRV 86开发板试用体验】四、烧写waft系统&搭建waft测试环境
19649 浏览 2 评论
59079 浏览 19 评论
【限时福利】加入芯片开发社区,领100G电子工程师资料大礼包
88012 浏览 121 评论
邀请函 | 3月2日 来上海参加平头哥“玄铁RISC-V生态大会”
762浏览 0评论
读书分享会 | 玄铁RISC-V处理器入门与实战电子书免费下载!
660浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 01:39 , Processed in 0.450340 second(s), Total 40, Slave 32 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号