声明:个人水平有限,如果有错的希望指出。谢谢。
序号 | 函数名 | 函数功能 |
---|---|---|
1 | user_lcd_init_cb | 屏幕初始化函数 |
2 | user_lcd_set_window_cb | 设置屏幕绘制窗口 |
3 | user_lcd_clear_cb | 将屏幕全屏设置为指定颜色 |
4 | user_lcd_power_on_cb | 退出休眠模式和打开背光 |
5 | user_lcd_power_off_cb | 进入休眠模式和关闭背光 |
6 | user_dma_single_block_init_cb | DMA模块初始化 |
7 | user_dma_single_block_start_cb | DMA开始传输数据 |
8 | user_wait_dma_transfer_cb | 等待DMA传输完成 |
9 | user_wait_lcd_transfer_cb | 等待DMA传输完成,和第9项是一样的 |
10 | user_dma_set_multi_block_for_x_cb | 暂时没用到 |
11 | user_dma_set_multi_block_for_y_cb | 暂时没用到 |
12 | user_lcd_get_font_dot_cb | 获取字模函数 |
13 | user_show_char_cb | 显示一个字符 |
DMA回调函数简单分析:
rtl_gui_dma_single_block_init(0x00000001);
-》user_dma_single_block_init_cb
--》lcd_dma_single_block_init//最终这个函数
rtl_gui_lcd_sectionconfig(0, y_start, LCD_WIDTH - 1, y_end);
-》user_lcd_set_window_cb(xStart, yStart, xEnd, yEnd);
--》lcd_st7789_set_window//最终这个函数
rtl_gui_dma_single_block_start(NULL, (uint32_t)readbuf, length);
-》user_dma_single_block_start_cb(destination_addr, source_addr, len);
--》lcd_dma_single_block_start//最终这个函数
rtl_gui_wait_lcd_control_transfer((y_end - y_start + 1) * LCD_WIDTH * PIXEL_BYTES);
-》user_wait_lcd_transfer_cb(count);
--》lcd_wait_lcd_control_transfer//最终这个函数
rtl_gui_wait_dma_transfer();
-》user_wait_dma_transfer_cb();
--》lcd_wait_dma_transfer//最终这个函数
使用sbee2_wristband_sdk 的GUI框架显示指针表盘