平头哥RVB2601开发板测评——OLED与LVGL移植介绍

编程入门 行业动态 更新时间:2024-10-15 20:25:48

<a href=https://www.elefans.com/category/jswz/34/1748533.html style=平头哥RVB2601开发板测评——OLED与LVGL移植介绍"/>

平头哥RVB2601开发板测评——OLED与LVGL移植介绍

本文作者:溪悦哦

一、OLED介绍

我们的屏幕采用的是128*64的分辨率的,驱动ic应该是SSD1306,这个刚好支持129*64的,但是就是单色屏,用的是spi接口。

 


首先初始化io口:csi_gpio_pin_t pin_clk;csi_gpio_pin_t pin_mosi;csi_gpio_pin_t pin_cs;csi_gpio_pin_t pin_miso;static void oled_pinmux_init(){csi_pin_set_mux(PA28, PIN_FUNC_GPIO); //clkcsi_pin_set_mux(PA29, PIN_FUNC_GPIO); //mosicsi_pin_set_mux(PA27, PIN_FUNC_GPIO); //cscsi_pin_set_mux(PA30, PIN_FUNC_GPIO); //miso}static void oled_gpio_init(){csi_gpio_pin_init(&pin_clk, PA28);csi_gpio_pin_dir(&pin_clk, GPIO_DIRECTION_OUTPUT);     csi_gpio_pin_init(&pin_mosi, PA29);csi_gpio_pin_dir(&pin_mosi, GPIO_DIRECTION_OUTPUT);csi_gpio_pin_init(&pin_cs, PA27);csi_gpio_pin_dir(&pin_cs, GPIO_DIRECTION_OUTPUT);csi_gpio_pin_init(&pin_miso, PA30); //dccsi_gpio_pin_dir(&pin_miso, GPIO_DIRECTION_OUTPUT);}然后写命令、数据函数void Write_Command(unsigned char Data){unsigned char i;lcd_cs(0);lcd_dc(0);for (i = 0; i < 8; i++) {lcd_sclk(0);lcd_sdin((Data & 0x80) >> 7);Data = Data << 1;lcd_sclk(1);}lcd_dc(1);lcd_cs(1);}void Write_Data(unsigned char Data){unsigned char i;lcd_cs(0);lcd_dc(1);for (i = 0; i < 8; i++) {lcd_sclk(0);lcd_sdin((Data & 0x80) >> 7);Data = Data << 1;lcd_sclk(1);}lcd_dc(1);lcd_cs(1);}对于这种单色屏,我们直接开一个缓冲区就行:uint8_t g_oled_ram[8][128];画点就是修改缓存区的内容:void oled_draw_point(uint8_t r, uint8_t c, uint8_t t){if (t) {SET_BIT(g_oled_ram[r / 8][c], ((r % 8)));} else {CLR_BIT(g_oled_ram[r / 8][c], (r % 8));}}最后要调用刷新函数来修改一整个屏幕:void oled_reflesh(){unsigned char

更多推荐

平头哥RVB2601开发板测评——OLED与LVGL移植介绍

本文发布于:2024-03-08 09:23:13,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1720467.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:平头   开发板   LVGL   OLED

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!