(ESP-IDF)BLE GATTS
移动设备可发现ESP的BLE并且连接通讯 首先在sdkconfig中打开BT 然后在ESPIDF的GATTS例程修改,实现了一个服务,两个特征值,一个值用于发送,一个用于接收 理解代码之前先理解蓝牙,具体参考本博客低功耗蓝牙BLE文章 #include "dh_p1_blu_task.h" #in
(LVGL)案例预览 动画
本质是一个值的变化,以点击事件触发一个动画为例 // 创建动画 lv_anim_t a; lv_obj_t *lv_example_time_page(lv_obj_t *scr){ // 添加点击事件 lv_obj_add_event_cb(status_bar, status_b
(ESP-IDF)LVGL 定时回调
每1秒执行一次回调内容 static void update_time(lv_timer_t *timer){ //update } v_obj_t *lv_example_time_page(lv_obj_t
(Flutter)导航栏
CODE import 'package:flutter/material.dart'; import 'package:google_nav_bar/google_nav_bar.dart'; void main() { return runApp(MyApp()); } class My
(Flutter)登录页面
CODE import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:flutter_login/flutter_login.dart'; import 'package:shared_preferen
(Flutter)进度列表
CODE import 'dart:developer'; import 'package:flutter/material.dart'; import 'package:timeline_tile/timeline_tile.dart'; void main() { return runA
(Flutter)消息滑块
CODE import 'package:flutter/material.dart'; import 'package:flutter_slidable/flutter_slidable.dart'; void main() { return runApp(MyApp()); } clas
(Flutter)滑条控件
CODE import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : su
(Flutter)图标动画
CODE import 'package:flutter/material.dart'; void main() { return runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key
(Flutter)输入文本框
CODE import 'package:flutter/material.dart'; void main() { return runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key
(Flutter)Tab栏
CODE import 'package:flutter/material.dart'; void main() { return runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key
(Flutter)侧浮动顶栏
CODE import 'package:flutter/material.dart'; void main() { return runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key
(Flutter) 侧边导航栏的实现
跟着视频敲了几天到今天开始有了一些手感,能自己独立完成部分代码了 CODE import 'package:flutter/material.dart'; void main() { return runApp(MyApp()); } class MyApp extends Stateles
(Flutter)一种简单布局
CODE import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : su
(Flutter) 带阴影的图标
Code 基本的代码框架 这个代码框架是Flutter应用的标准结构,它遵循了一些最佳实践和设计模式。以下是为什么要这么写框架以及这样做的好处: 分离关注点: MyApp类专注于应用的总体配置,如主题、路由等。 MyHomePage类专注于具体页面的实现。 _MyHomePageState类管理页面
(Flutter)语法
基础类型与变量声明 void main() { var name = 'Alice'; // String var age = 25; // int var height = 1.68; // double var isStud
(ESP-IDF)简单的webserver
#include <esp_wifi.h> #include <nvs.h> #include <sys/param.h> #include "
(ESP-IDF)NVS
基本概念 命名空间(Namespace):NVS 数据按命名空间分组,避免键名冲突。 键值对(Key-Value):支持存储整数、字符串、二进制数据等类型。 存储限制:每个键值对最大 1984KB,单个命名空间总大小取决于分区表配置(默认约 24KB)。 示例代码 #include <stdio.h
(ESP-IDF)STA & AP
STA 对官方示例进行了代码精简,方便自己随时取用 # Name, Type, SubType, Offset, Size, Flags # Note: if you have increased the bootloader size, make sure to update the off
(LIB)多级菜单
使用方法 以下四个函数分别放进各自按键的回调中,点击一次调用相关函数 void menu_up(); void menu_down(); void menu_confirm();