- 博客(25)
- 收藏
- 关注
原创 LVGL 8.3版本 多任务环境下使用LVGL
此外,文档还指出了在中断中使用LVGL函数时需要注意的问题,推荐的最佳做法是使用标志而不是直接在中断中调用LVGL函数。- `lvgl_thread`函数中,无限循环调用`lv_task_handler`,并在调用前后使用`mutex_lock`和`mutex_unlock`锁定和解锁互斥锁。- 文档建议尽量避免在中断处理程序中直接使用LVGL的API函数,除了`lv_tick_inc()`和`lv_disp_flush_ready()`这两个函数。这样可以避免在中断和任务之间直接同步LVGL的调用。
2025-01-09 16:59:24
756
原创 网络程序通信的流程---socket与TCP的简单认识
IP地址是互联网协议地址(Internet Protocol Address)的缩写,用于在IP网络中唯一标识一个设备。它通常由四个数字组成,每个数字在0-255之间,用点号分隔。IP地址分为IPv4和IPv6两种版本,其中IPv4是目前广泛使用的版本。端口是计算机上用于接收和发送数据的接口。每个端口都有一个唯一的端口号,用于标识和区分不同的服务或应用程序。常见的端口号有HTTP(80)、HTTPS(443)、FTP(21)等。1.通过ip地址找到网络中的设备2.通过端口号找到对应进程的端口。
2024-06-19 09:33:03
636
原创 力扣刷题日记--2288.价格减免 难度中等
那么该单词就表示一个价格。我们提取后续的字符,转换成整数,计算折扣(即乘上 1−discount1001 - \dfrac{\textit{discount}}{100}1−100discount),保留两位小数,再转换回字符串,并添加开头的 $ 即可。- "$1" 减免 50% 为 "$0.50" ,所以 "$1" 替换为 "$0.50"。- "$2" 减免 50% 为 "$1" ,所以 "$1" 替换为 "$1.00"。表示价格的单词分别是 "$3"、"$5"、"$6" 和 "$9"。
2024-06-19 09:08:39
1047
原创 我对程序员的职业理解
在一次紧急项目中,他运用刚刚学习的微服务架构知识,快速重构了一部分系统,显著提升了系统的稳定性和响应速度,得到了团队和管理层的认可。1. 持续学习与自我提升:技术日新月异,保持好奇心和学习热情,积极跟进新技术、新工具,不断提升自己的技能水平,是程序员应持之以恒的态度。6. 代码规范与可维护性:遵循良好的编码规范,编写清晰、可读性强的代码,注重代码结构和模块化设计,确保项目的可维护性和扩展性。10. 终身学习:认识到学习是一个持续的过程,不断挑战自我,探索未知领域,拓宽知识边界,保持职业生涯的活力和竞争力。
2024-06-13 10:55:24
1280
原创 2024年,计算机相关专业还值得选择吗?
计算机行业的发展态势既充满挑战也孕育着无限机遇,要求从业者不断学习新技能,紧跟技术前沿,同时也强调了伦理、可持续性与社会责任的重要性。综上所述,计算机相关专业虽然竞争激烈,但凭借其广泛的应用前景和持续的技术创新,仍然是一个充满机遇的领域。关键在于个人是否具备相应的兴趣、能力和持续学习的决心。如果你是今年的高考生,通过自我评估和实践探索,你可以更明智地决定是否踏上这条充满挑战与机遇的道路。
2024-06-13 10:42:36
845
原创 字符串、HEX 十六进制互转工具
最近,在搞BLE相关的项目,需要用到字符串转16进制通过广播包发送出去,但是在网上找了好久都没有找到相应要的工具,终于在我坚持不懈的寻找下,发现了这款免费的转换工具!有需要的自取,使用起来也很方便!我就不一 一列举啦,有兴趣的去首页发掘吧!在网站首页 还有很多实用的工具!
2024-06-12 16:31:10
1781
原创 蓝牙广播包 分析 蓝牙ble接收广播数据
标准的UUID:由SIG发布,采用UUID基数+16位UUID的形式,如心率服务的UUID是0x180D,使用的UUID基数是:00000000-0000-1000-8000 - 00805F9B34FB。厂商自定义的UUID:同样采用UUID基数+16位UUID的形式,由厂商定义,如BLE串口的UUID是0x0001,使用的UUID基数是:6E400001-B5A3-F393-E0A9-E50E24DCCA9E。下图是标准UUID传输的示意图。
2024-06-12 16:21:48
4852
原创 正则表达式的学习与使用
正则表达式是一种强大的模式匹配和字符串搜索工具。它使用特定的语法规则表示一种模式,可以用于在文本中查找、替换或提取特定的字符串。
2024-06-04 17:13:18
802
原创 LVGL--> Flex(弹性布局)
Flex(弹性布局)Overview(概述)Flexbox(或简称 Flex)是的一个子集。它可以将项目排列成行或列(轨道),处理环绕,调整项目和轨道之间的间距,处理 grow 以使项目填充剩余空间的最小/最大宽度和高度。要使对象 flex 容器调用 lv_obj_set_layout(obj, LV_LAYOUT_FLEX)。请注意,LVGL 的 flex 布局功能需要通过 lv_conf.h 中的 LV_USE_FLEX 全局启用。
2024-05-25 10:52:43
2851
2
原创 LVGL Event——事件
可以向一个对象添加更多事件,如下所示:如果传入的用户数据不一样,一个对象可以绑定同一个事件回调函数多次。例如:这些事件将按照添加的顺序被调用。更多的对象可以使用相同的 事件回调。任何自定义事件代码都可以通过 uint32_t MY_EVENT_1 = lv_event_register_id();注册并且可以使用 lv_event_send(obj, MY_EVENT_1, &some_data) 发送到任何对象。
2024-05-21 20:40:07
3921
1
原创 用#define宏替换和typedef那个方式更好?
总结一下,`#define` 主要用于定义常量和宏替换,而 `typedef` 主要用于创建数据类型别名。`typedef` 是一个关键字,用于创建新的数据类型别名。它是在编译之前进行文本替换的。这样在代码中使用 `SQUARE(x)` 将会被替换为 `((x) * (x))`。这样就可以用 `Age` 来代替 `int` 类型。`#define` 和 `typedef` 是在 C/C++ 语言中用于定义类型别名的关键字,它们有一些区别。这将在编译前将所有出现的 `PI` 替换为 `3.14159`。
2023-10-13 20:02:33
219
原创 快速入门排序算法——桶排序(简化版)
快速入门排序算法——桶排序这是简化后易于理解的桶排序,是一个非常快的排序算法,其实这不是真正的桶排序(那会比这个复杂的多),但是简单易懂,对于想要入门排序算法的小白,这是一个非常好的起点。
2023-06-02 10:03:33
122
嵌入式软件工程师自我提升策略
2024-06-12
嵌入式芯片BK7258由上海博通研发,部分说明文档,或许能帮到你!
2024-05-27
BK-UART串口API的分析与使用
2023-11-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人