|
如题:
我用STM32ZE
我看3.2中rtgui是这样写的:
struct rtgui_graphic_driver _rtgui_lcd_driver =
{
"lcd",
2,
240,
320,
rt_hw_lcd_update,
rt_hw_lcd_get_framebuffer,
rt_hw_lcd_set_pixel,
rt_hw_lcd_get_pixel,
rt_hw_lcd_draw_hline,
rt_hw_lcd_draw_vline,
rt_hw_lcd_draw_raw_hline
};
rt_err_t rt_hw_lcd_init(void)
{
/* add lcd driver into graphic driver */
rtgui_graphic_driver_add(&_rtgui_lcd_driver);
return RT_EOK;
}
void rtgui_init(void *p)
{
rtgui_rect_t rect;
/* 初始化RT-Thread/GUI server */
rtgui_system_server_init();
/* 注_册面板1 */
rect.x1 = 0;
rect.y1 = 0;
rect.x2 = 240;
rect.y2 = 24;
/* 注_册区域, 名字,以及位置 */
rtgui_panel_register("info", &rect);
/* 注_册面板2 */
rect.x1 = 0;
rect.y1 = 24;
rect.x2 = 240;
rect.y2 = 320;
/* 注_册区域, 名字,以及位置 */
rtgui_panel_register("main", &rect);
rtgui_panel_set_default_focused("main");
/* 初始化LCD驱动 */
rt_hw_lcd_init();
/* 初始化workbench应用 */
workbench_init();
}
SVN66中增加了这段:
_rtgui_lcd_driver.name = "lcd";
_rtgui_lcd_driver.byte_per_pixel = 2;
_rtgui_lcd_driver.width = 240;
_rtgui_lcd_driver.height = 320;
_rtgui_lcd_driver.draw_hline = rt_hw_lcd_draw_hline;
_rtgui_lcd_driver.draw_raw_hline = rt_hw_lcd_draw_raw_hline;
_rtgui_lcd_driver.draw_vline = rt_hw_lcd_draw_vline;
_rtgui_lcd_driver.get_pixel = rt_hw_lcd_get_pixel;
_rtgui_lcd_driver.set_pixel = rt_hw_lcd_set_pixel;
_rtgui_lcd_driver.screen_update = rt_hw_lcd_update;
_rtgui_lcd_driver.get_framebuffer = rt_hw_lcd_get_framebuffer;
mini4020中这样写:
struct rtgui_graphic_driver _rtgui_lcd_driver;
struct rtgui_graphic_driver_ops _rtgui_graphic_driver_ops;
void radio_rtgui_init(void)
{
rtgui_rect_t rect; // rtgui_color_t c=0xff;
rtgui_system_server_init();
/* register dock panel */
rect.x1 = 0;
rect.y1 = 0;
rect.x2 = 320;
rect.y2 = 25;
rtgui_panel_register("info", &rect);
rtgui_panel_set_nofocused("info");
/* register main panel */
rect.x1 = 0;
rect.y1 = 25;
rect.x2 = 320;
rect.y2 = 240
; rtgui_panel_register("main", &rect);
rtgui_panel_set_default_focused("main");
_rtgui_graphic_driver_ops.set_pixel=lcd_set_pixel;
_rtgui_graphic_driver_ops.get_pixel=lcd_get_pixel;
_rtgui_graphic_driver_ops.draw_hline=lcd_draw_hline;
_rtgui_graphic_driver_ops.draw_vline=lcd_draw_vline;
_rtgui_graphic_driver_ops.draw_raw_hline=lcd_draw_raw_hline;
_rtgui_lcd_driver.bits_per_pixel = 16;
_rtgui_lcd_driver.width = 320;
_rtgui_lcd_driver.height = 240;
_rtgui_lcd_driver.ops = &_rtgui_graphic_driver_ops;
// _rtgui_lcd_driver.screen_update = lcd_update;
// _rtgui_lcd_driver.get_framebuffer = lcd_get_framebuffer;
sep4020_lcd_init();
rt_memset((char*)pVideoBuffer,0xff,320*240*2); // rt_memcpy((char*)pVideoBuffer,pic,320*240*2); //TESTING IMAGE
/* add lcd driver into graphic driver */
// rtgui_graphic_driver_add(&_rtgui_lcd_driver);
这几种写法的区别是什么呢?? |
阿莫论坛20周年了!感谢大家的支持与爱护!!
如果天空是黑暗的,那就摸黑生存;
如果发出声音是危险的,那就保持沉默;
如果自觉无力发光,那就蜷伏于牆角。
但是,不要习惯了黑暗就为黑暗辩护;
也不要为自己的苟且而得意;
不要嘲讽那些比自己更勇敢的人。
我们可以卑微如尘土,但不可扭曲如蛆虫。
|