lvgl8.2.0没有lv_task_create这个方法
时间: 2023-08-12 18:05:14 浏览: 157
lv_task_create() 方法是在 LVGL v7 中引入的,而在 LVGL v8 中已经被废弃。在 LVGL v8 中,你可以使用 lv_task_create_basic() 方法来创建一个任务。lv_task_create_basic() 方法使用起来与 lv_task_create() 方法类似,但是在参数上略有不同。你可以使用以下代码来创建一个任务:
```c
lv_task_t * task = lv_task_create_basic(
lv_task_handler_t task_cb, // 任务回调函数
lv_task_prio_t prio, // 任务优先级
void * user_data // 用户数据指针
);
```
其中,`task_cb` 是任务回调函数,`prio` 是任务优先级,`user_data` 是用户数据指针。你可以根据自己的需求来设置这些参数。
相关问题
lvgl8.2.0没有lv_task_create这个函数啊
非常抱歉,我犯了一个错误。在LVGL 8.2.0中,`lv_task_create`已经被重命名为`lv_task_create_basic`。因此,您可以按照以下方式设置定时器:
```c
lv_task_t * task1 = lv_task_create_basic(remove_text, NULL);
lv_task_set_repeat_count(task1, 1); // 仅运行一次
lv_task_set_time(task1, 10000); // 10秒后运行
lv_task_t * task2 = lv_task_create_basic(remove_image, NULL);
lv_task_set_repeat_count(task2, 1); // 仅运行一次
lv_task_set_time(task2, 20000); // 20秒后运行
void remove_text(lv_task_t * task) {
lv_obj_del(label);
}
void remove_image(lv_task_t * task) {
lv_obj_del(img);
}
```
请注意,`lv_task_set_repeat_count`和`lv_task_set_time`函数用于设置任务的重复次数和时间。在这种情况下,我们将任务设置为仅运行一次,并在10秒和20秒后运行。
lvgl8.2.0版本lv_txt_get_size
在lvgl 8.2.0版本中,`lv_txt_get_size`函数的原型和参数与之前的版本相同。它仍然可以用于获取一段文本的宽度和高度。以下是该函数的原型:
```
void lv_txt_get_size(const char *txt, lv_coord_t max_w, lv_coord_t *w, lv_coord_t *h, lv_coord_t letter_space, const lv_font_t *font);
```
参数说明:
- `txt`: 要获取宽度和高度的文本字符串
- `max_w`: 最大宽度(如果文本宽度超过该值,则会自动换行)
- `w`: 返回文本的宽度
- `h`: 返回文本的高度
- `letter_space`: 字符之间的间距
- `font`: 使用的字体
例如,要获取字符串“Hello, world”的宽度和高度,可以使用以下代码:
```c
lv_coord_t w, h;
lv_txt_get_size("Hello, world", LV_COORD_MAX, &w, &h, 0, LV_FONT_DEFAULT);
printf("Width: %d\nHeight: %d\n", w, h);
```
其中`LV_COORD_MAX`表示最大宽度无限制。