使用FR8008GP-U LVGLDemo创建控件反复重启
工程:fr8000u_sdk\examples\evm\gui_demo_8_1_BLE
修改部分:将蓝牙,PSRAM部分和触摸都去掉了,初始化LVGL和LCD7789驱动都没问题,只要我创建LVGL控件,芯片就会复位
屏蔽掉创建按键就不会复位了,是不是栈和堆溢出,如果是在哪设置呢
static void my_disp_flush(lv_disp_drv_t * disp, const lv_area_t * area, lv_color_t * color_p)
{
st7789v_disp_flush(area->x1,area->x2,area->y1,area->y2,color_p->full);
lv_disp_flush_ready(disp);
}
void gui_main(void)
{
//touchpad_init(NULL);
display_init();
lv_init();
static lv_disp_draw_buf_t draw_buf_dsc_1;;
static lv_color_t buf_1[LV_BUFFER_SIZE];
// static uint16_t buf[LV_BUFFER_SIZE];
// lv_disp_buf_init(&disp_buf, buf, NULL, LV_BUFFER_SIZE); /Initialize the display buffer/
// lv_disp_draw_buf_init(&disp_buf, (void )0x22000000, (void )0x22050000/(0x22000000+LV_HOR_RES_MAX * LV_VER_RES_MAX * sizeof(lv_color_t))/, LV_HOR_RES_MAX * LV_VER_RES_MAX); /Initialize the display buffer/
lv_disp_draw_buf_init(&draw_buf_dsc_1,buf_1,NULL,LV_BUFFER_SIZE);
/* Implement and register a function which can copy the rendered image to an area of your display */
static lv_disp_drv_t disp_drv; /*Descriptor of a display driver*/
lv_disp_drv_init(&disp_drv); /*Basic initialization*/
disp_drv.flush_cb = my_disp_flush; /*Set your driver function*/
disp_drv.draw_buf = &draw_buf_dsc_1; /*Assign the buffer to the display*/
disp_drv.hor_res = LV_HOR_RES_MAX;
disp_drv.ver_res = LV_VER_RES_MAX;
disp_drv.full_refresh = 0;
lv_disp_drv_register(&disp_drv); /*Finally register the driver*/
/* Implement and register a function which can read an input device. E.g. for a touch pad */
// static lv_indev_drv_t indev_drv; /Descriptor of a input device driver/
// lv_indev_drv_init(&indev_drv); /Basic initialization/
// indev_drv.type = LV_INDEV_TYPE_POINTER; /Touch pad is a pointer-like device/
// indev_drv.read_cb = my_touchpad_read; /Set your driver function/
// lv_indev_drv_register(&indev_drv); /Finally register the driver/
__SYSTEM_TIMER_CLK_ENABLE();
timer_init(Timer0, system_get_clock_config()*1000*LV_TICK_COUNT, TIMER_DIV_NONE);
timer_start(Timer0);
NVIC_SetPriority(TIMER0_IRQn, 5);
NVIC_EnableIRQ(TIMER0_IRQn);
os_timer_init(&lv_schedule_timer, lv_schedule_timer_handler, NULL);
os_timer_start(&lv_schedule_timer, 20, true);
// timer_init(Timer1, system_get_clock_config()1000100, TIMER_DIV_NONE);
// timer_start(Timer1);
// NVIC_SetPriority(TIMER1_IRQn, 6);
// NVIC_EnableIRQ(TIMER1_IRQn);
lv_obj_t *myBtn = lv_btn_create(lv_scr_act()); // ????; ???:??????
lv_obj_set_pos(myBtn, 10, 10); // ????
lv_obj_set_style_bg_color(myBtn, lv_color_hex(0xFF0000), 0); // ?????
lv_obj_set_size(myBtn, 120, 50); // ????
lv_obj_center(myBtn);
//create_btn(lv_scr_act(), 20, 20, 120, 50, "btn1");
//lv_demo_widgets();
//lv_demo_benchmark();
//lv_ex_calendar_1();
//lv_demo_music();
}


