【已解决】驱动RGB-LCD的缓冲区问题
Moderator: ESP_Bob
【已解决】驱动RGB-LCD的缓冲区问题
我现在初始化屏幕的结构体时候,用了.num_fbs = 3,是不是就代表我分配了三个缓冲区?然后使用的时候该怎么知道那个时候用的是哪个呢?我新手想弄明白这些问题,大佬们帮我解答一下疑惑,谢谢啦
-
- Posts: 156
- Joined: Tue Jul 11, 2023 6:55 am
Re: 驱动RGB-LCD的缓冲区问题
你好,这个参数的作用是控制在屏幕显示图像时使用多少个帧缓冲,默认情况下被设置为 0 或 1,最大可被设置为 3。分配缓冲区后可以使用
中的 *color_data 指针来指向绘制的图像数据的源缓冲区。该函数的作用是将图像数据从 color_data 缓冲区绘制到 RGB 面板的帧缓冲中。
参考下方实现。 首先检查 color_data 是否等于当前帧缓冲中的任一缓冲区。如果是,则会更新 rgb_panel->cur_fb_index,以指示当前使用的帧缓冲索引。如果 color_data 不等于任何一个帧缓冲,那么就需要执行数据复制操作,将 color_data 缓冲区的图像数据复制到当前帧缓冲中。
API 文档:
https://docs.espressif.com/projects/esp ... t7num_fbsE
https://docs.espressif.com/projects/esp ... e_tiiiiPKv
Github 链接:https://github.com/espressif/esp-idf/bl ... #L682-L692
Code: Select all
rgb_panel_draw_bitmap(esp_lcd_panel_t *panel, int x_start, int y_start, int x_end, int y_end, const void *color_data)
参考下方实现。 首先检查 color_data 是否等于当前帧缓冲中的任一缓冲区。如果是,则会更新 rgb_panel->cur_fb_index,以指示当前使用的帧缓冲索引。如果 color_data 不等于任何一个帧缓冲,那么就需要执行数据复制操作,将 color_data 缓冲区的图像数据复制到当前帧缓冲中。
API 文档:
https://docs.espressif.com/projects/esp ... t7num_fbsE
https://docs.espressif.com/projects/esp ... e_tiiiiPKv
Github 链接:https://github.com/espressif/esp-idf/bl ... #L682-L692
Re: 驱动RGB-LCD的缓冲区问题
好的谢谢啦ESP_Penguin_Helper wrote: ↑Fri Aug 18, 2023 6:38 am你好,这个参数的作用是控制在屏幕显示图像时使用多少个帧缓冲,默认情况下被设置为 0 或 1,最大可被设置为 3。分配缓冲区后可以使用中的 *color_data 指针来指向绘制的图像数据的源缓冲区。该函数的作用是将图像数据从 color_data 缓冲区绘制到 RGB 面板的帧缓冲中。Code: Select all
rgb_panel_draw_bitmap(esp_lcd_panel_t *panel, int x_start, int y_start, int x_end, int y_end, const void *color_data)
参考下方实现。
rgb_panel_draw_bitmap.png
首先检查 color_data 是否等于当前帧缓冲中的任一缓冲区。如果是,则会更新 rgb_panel->cur_fb_index,以指示当前使用的帧缓冲索引。如果 color_data 不等于任何一个帧缓冲,那么就需要执行数据复制操作,将 color_data 缓冲区的图像数据复制到当前帧缓冲中。
API 文档:
https://docs.espressif.com/projects/esp ... t7num_fbsE
https://docs.espressif.com/projects/esp ... e_tiiiiPKv
Github 链接:https://github.com/espressif/esp-idf/bl ... #L682-L692
Who is online
Users browsing this forum: No registered users and 5 guests