【LVGL+GUI-Guider】添加滑块并显示滑块对应的值

本文章用于自己复习回顾,源码以百度网盘链接的形式放在文章末尾了

开发板:正点原子stm32f407zgt6

IDE:MDK-ARM

屏幕:正点原子4.3寸TFTLCD

目录

实际效果

效果简介

LVGL移植

利用GUI-Guider制作触控按钮并控制LED亮灭

在GUI-Guider中添加滑块

在滑块值改变时获取滑块当前值

按下按键改变波形并显示当前输出波形

源码

实际效果

滑块效果展示

效果简介

使用DAC+DMA输出波,并利用方波、三角波、正弦波三个按钮,控制输出波形

滑动滑条Frequency可以调节波的频率:100-5000Hz可调;

滑动滑条Vpp可以调节波的峰峰值

最后,在屏幕上显示当前输出的波形、频率和峰峰值

LVGL移植

可以参考这位博主LVGL移植

利用GUI-Guider制作触控按钮并控制LED亮灭

可以参考我的上一篇博客【LVGL+GUI-Guider】触控按钮控制stm32上LED亮灭

在GUI-Guider中添加滑块

​ 

如图,找到滑动条并添加即可

在滑块值改变时获取滑块当前值

在setup_scr_screen.c中的void setup_scr_screen(lv_ui *ui)函数中,找到滑块的名称

我使用了label_8和label_9来显示当前频率和峰峰值状况

在void setup_scr_screen(lv_ui *ui)函数前编写回调函数

 回调函数:

//滑块:frequency
static void sli_fre_event_cb(lv_event_t *e)
{
    lv_obj_t *target=lv_event_get_target(e);
    Fre=lv_slider_get_value(target);
    sprintf(label_8,"%dHz",Fre*10+100);
    lv_label_set_text(guider_ui.screen_label_8, label_8);

//    printf("Fre=%d\r\n",lv_slider_get_value(target));
}
//滑块:Vpp
static void sli_vpp_event_cb(lv_event_t *e)
{
    lv_obj_t *target=lv_event_get_target(e);
    Vpp=lv_slider_get_value(target);
    sprintf(label_9,"%.2lfV",(double)Vpp/100+1);
    lv_label_set_text(guider_ui.screen_label_9, label_9);
//    printf("Vpp=%d\r\n",lv_slider_get_value(target));
}

 用于label_8和label_9动态显示的字符数组的声明:

char label_8[7]={0};
char label_9[7]={0};

 调用回调函数:

    lv_obj_add_event_cb(ui->screen_slider_1,sli_fre_event_cb,LV_EVENT_VALUE_CHANGED,NULL);
    lv_obj_add_event_cb(ui->screen_slider_2,sli_vpp_event_cb,LV_EVENT_VALUE_CHANGED,NULL);

这样,当我们拉动滑块,滑块的值发生变化,就会进入编写好的回调函数,用于显示当前值的文本框中的文本发生对应变化,就实现了视频中的效果

按下按键改变波形并显示当前输出波形

改变波形这一块不加赘述,显示当前输出波形的步骤很简单

 在按键回调函数的基础上,只需要增加一句修改文本框中文字的语句即可,同样也是注意传参形式为guider_ui.screen_label_7

lv_label_set_text(guider_ui.screen_label_7, "Square");

 另外,也可以采用设置多个文本框,只让特定文本框显示,而其他的文本框隐藏的办法

隐藏文本框的函数调用示例:

lv_obj_add_flag(guider_ui.screen_label_7, LV_OBJ_FLAG_HIDDEN);

显示文本框(清除隐藏文本框的标志位):

lv_obj_clear_flag(guider_ui.screen_label_7, LV_OBJ_FLAG_HIDDEN);

源码

链接:一个百度网盘链接
提取码:1mg2

更多

【LVGL+GUI-Guider】移植完成后添加模块或删去模块

存在诸多不足之处,还望海涵

  • 13
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值