- 博客(27)
- 收藏
- 关注
原创 FreeRTOS学习笔记>CPU使用率统计
总结来说,CPU 利用率是衡量系统资源使用效率的重要指标,在 FreeRTOS 中,通过合理的任务调度和时间管理,可以优化系统的 CPU 利用率,提升整体性能。
2024-08-25 18:47:05
437
原创 FreeRTOS学习笔记>中断管理
总结来说,FreeRTOS通过灵活的中断和异常处理机制,帮助开发者在保证系统实时性的同时,提高了系统的稳定性和效率。
2024-08-25 18:46:06
493
原创 FreeRTOS学习笔记>内存管理
FreeRTOS 内存管理模块通过高效的内存分配与释放机制,最大化内存利用率,并减少内存碎片的产生。开发者可以根据应用需求选择合适的内存管理策略,从而确保嵌入式系统在运行过程中稳定高效。
2024-08-25 18:44:26
472
原创 FreeRTOS学习笔记>任务通知
任务通知为 FreeRTOS 提供了一种高效、灵活的任务间通信方式,可以替代传统的信号量、队列等机制。在需要高效通信且只涉及单一任务的场景下,任务通知是一个理想的选择。然而,对于需要多个任务同步的场景,传统的 IPC 机制仍然有其独特的优势。
2024-08-25 18:43:38
434
原创 FreeRTOS学习笔记>软件定时器
软件定时器在 FreeRTOS 中提供了一个灵活且功能强大的定时机制,能够扩展硬件定时器的功能,支持更多的定时需求。通过合理使用软件定时器,可以在嵌入式系统中实现复杂的定时控制和任务调度。
2024-08-25 18:42:10
761
原创 FreeRTOS学习笔记>事件
事件组是 FreeRTOS 中一个强大且灵活的同步工具,它提供了多任务环境下任务间同步的高效机制,允许复杂的同步条件和多任务、多事件的协同处理。在实际应用中,合理利用事件组可以简化任务间的同步操作,提升系统的响应效率。
2024-08-25 18:41:08
398
原创 FreeRTOS学习笔记>互斥量
高优先级任务(Task A)需要访问某个共享资源。低优先级任务(Task B)已经持有该共享资源。中优先级任务(Task C)阻塞了低优先级任务(Task B)。在这种情况下,高优先级任务(Task A)必须等待低优先级任务(Task B)释放资源,但由于中优先级任务(Task C)的存在,低优先级任务(Task B)无法运行并释放资源,导致优先级反转。
2024-08-25 18:39:32
867
原创 FreeRTOS学习笔记>信号量
信号量(Semaphore)是FreeRTOS中一种常用的同步机制,用于管理多个任务之间的访问资源的控制。信号量(Semaphore)是一种实现任务间通信的机制,可以实现任务之间同步或临界资源的互斥访问,常用于协助一组相互竞争的任务来访问临界资源。在多任务系统中,各任务之间需要同步或互斥实现临界资源的保护。
2024-08-25 18:38:20
382
原创 FreeRTOS 学习笔记>队列
FreeRTOS 中的队列是任务之间进行通信的一种重要机制。通过队列,任务可以发送和接收数据,从而实现同步和数据共享。队列又称消息队列,是一种常用于任务间通信的数据结构,队列可以在任务与任务间、中断和任务间传递信息,实现任务接收来自其他任务或中断的不固定长度的消息,任务能够从队列中读取消息,当队列中的消息是空时,读取消息的任务将被阻塞,用户还可以指定阻塞的任务时间xTicksToWait,在这段时间中,如果队列是空,该任务将保持阻塞状态以等待队列数据有效。
2024-08-25 18:37:08
1257
2
原创 FreeRTOS学习笔记>基础知识
函数用于创建一个新任务。pvTaskCode:任务函数,即任务执行的代码。这个函数必须是void类型且没有返回值,并接受一个void*类型的参数。pcName:任务的名字,用于调试和跟踪,任务名称可以帮助识别任务,但在任务的实际执行中不起作用。:任务的栈大小,指定任务所需的栈空间的深度。这个值的单位通常是以字(Word)为单位,而非字节(Byte),具体单位取决于硬件架构。:传递给任务函数的参数,可以是任意类型的指针。如果不需要传递参数,可以设为NULL。uxPriority:任务的优先级。
2024-08-25 18:34:58
1056
原创 ESP32学习笔记----Siri语音助手遥控空调
ESP32-C3 的硬件设计注重低功耗、高性能和丰富的外设接口,适用于各种物联网应用。MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅消息传递协议,专为低带宽、高延迟或不可靠的网络环境设计。它由 IBM 于 1999 年开发,现由 OASIS 标准化。MQTT 在物联网(IoT)应用中广泛使用,因为它的设计理念非常适合资源受限的设备和远程传感器。
2024-07-25 00:23:10
1379
原创 ESP32学习笔记----天气时钟
低功耗蓝牙高性能 Xtensa® 32 位 LX7 双核处理器运行 RISC-V 或 FSM 内核的超低功耗协处理器多种外设内置安全硬件USB OTG 接口USB 串口/JTAG 控制。
2024-06-22 13:01:04
555
原创 ESP32学习笔记----http获取网络数据并显示
低功耗蓝牙高性能 Xtensa® 32 位 LX7 双核处理器运行 RISC-V 或 FSM 内核的超低功耗协处理器多种外设内置安全硬件USB OTG 接口USB 串口/JTAG 控制为腾讯云的ntp服务器地址。
2024-04-15 00:54:55
966
1
原创 ESP32学习笔记----lvgl使用
低功耗蓝牙高性能 Xtensa® 32 位 LX7 双核处理器运行 RISC-V 或 FSM 内核的超低功耗协处理器多种外设内置安全硬件USB OTG 接口USB 串口/JTAG 控制LVGL是一个开源的图形库,专门为嵌入式系统设计,用于创建具有触摸支持的图形用户界面(Graphical User Interfaces, GUIs)。主要特点轻量级(Lightweight):它针对资源受限的系统优化,占用的内存和处理器资源非常少。
2024-04-05 21:28:16
1509
1
原创 ESP32学习笔记----iBeacon
低功耗蓝牙协议栈框架结构如下所示:如图所示,ATT和GATT是蓝牙协议栈重要的2层,也是蓝牙应用开发者打交道最多的两层,用户开发应用程序或者说service/profile的时候,调用的都是GATT API,而GATT又调用了ATT API。iBeacon是苹果公司在2013年推出的一种基于蓝牙低功耗(BLE, Bluetooth Low Energy)技术的室内定位系统技术标准。它允许移动应用(在iOS和Android设备上)侦听信号,并在接近iBeacon设备时做出响应。
2024-03-05 00:00:57
1844
3
原创 ESP32学习笔记----WiFi使用(网页控制)
一、简介1.1 硬件介绍ESP32-S3 SoC 芯片支持以下功能:2.4 GHz Wi-Fi低功耗蓝牙高性能 Xtensa® 32 位 LX7 双核处理器运行 RISC-V 或 FSM 内核的超低功耗协处理器多种外设内置安全硬件USB OTG 接口USB 串口/JTAG 控制1.2 官方资料ESP-IDF编程指南Wi-Fi库HTTP服务器1.3 开发环境软件:IDF 5.1.1硬件:ESP32-S3-LCD-EV-Board-MB 开发板1.4 Wi-Fi介绍Wi
2024-02-23 00:38:23
5857
6
原创 ESP32学习笔记----MPU6050使用
MPU-6050是一款由InvenSense公司生产的集成6轴运动追踪设备(MotionTracking device),它结合了3轴陀螺仪和3轴加速度计,可以通过I2C总线进行通信。MPU-6050能够提供包括加速度、角速度、温度等在内的全方位运动追踪数据,非常适合需要运动或姿态检测的应用场合,如手势识别、游戏控制器、可穿戴设备等。主要特性六轴感应:内置3轴陀螺仪和3轴加速度计。I2C接口:支持标准和快速模式,最高400kHz。输入电压:通常为3.3V或者5V(通过外部逻辑电平转换)。
2024-02-04 00:53:54
4845
1
原创 ESP32学习笔记----WS2812使用
WS2812是一种智能控制LED灯源,集成了控制电路和RGB芯片在一个5050封装组件中。集成设计:WS2812将控制电路和RGB芯片集成在同一个封装中,大大简化了电路设计和安装过程信号重塑电路:内置信号重塑电路,可以保证波形在每次传递到下一个驱动器时不会发生失真累积电源丢失重置电路:内置的电源丢失重置电路确保了在电源失效的情况下灯具能够正确重置颜色和亮度:每个像素可以在三原色中实现256级亮度控制,总共可以显示16777216种颜色。扫描频率不低于400Hz/s。
2024-01-30 02:32:14
6738
2
原创 ESP32初体验LVGL
LVGL(轻巧而多功能的图形库)是一个免费的开放源代码图形库,它提供创建具有易于使用的图形元素,精美的视觉效果和低内存占用的嵌入式GUI所需的一切。
2023-08-09 22:50:22
953
1
原创 C Primer Plus编程题-第六章 C控制语句:循环
例如,第二个数组的第 4个元素的值是第一个数组前4个元素之和,第二个数组的第5个元素的值是第一个数组前5个元素之和(用嵌套循环可以完成,但是利用第二个数组的第5个元素是第二个数组的第4个元素与第一个数组的第5个元素之和,只用一个循环就能完成任务,不需要使用嵌套循环)。最后,使用循环显示两个数组的内容,第一个数组显示成一行,第二个数组显示在第一个数组的下一行,而且每个元素都与第一个数组各元素相对应。13.编写一个程序,创建一个包含8个元素的int类型数组,分别把数组元素设置为2的前8次幂。
2022-12-26 15:19:55
157
原创 C Primer Plus编程题-第五章 运算符、表达式和语句
修改程序,使其可以与用户交互,根据用户输入的数进行计算(即,用读入的一个变量来代替20)。编写一个程序,提示用户输入一个整数,然后打印从该数到比该数大10的所有整数(例如,用户输入5,则打印5~15的所有整数,包括5和15)。通过while循环让用户重复输入天数,当用户输入一个非正值时(如0或-20),循环结束。修改编程练习5的程序,使其能计算整数的平方和(可以认为第1天赚$1、第2天赚$4、第3天赚$9,以此类推,这看起来很不错)。编写一个程序,提示用户输入一个double类型的数,并打印该数的立方值。
2022-12-19 19:30:18
140
原创 C Primer Plus编程题-第四章 字符串和格式化输入/输出
接下来,使用1加仑大约3.785升,1英里大约为1.609千米,把单位是英里/加仑的值转换为升/100公里(欧洲通用的燃料消耗表示法),并显示结果,显示小数点后面 1 位数字。注意,美国采用的方案测量消耗单位燃料的行程(值越大越好),而欧洲则采用单位距离消耗的燃料测量方案(值越低越好)。编写一个程序,将一个double类型的变量设置为1.0/3.0,一个float类型的变量设置为1.0/3.0。编写一个程序,提示用户输入以兆位每秒(Mb/s)为单位的下载速度和以兆字节(MB)为单位的文件大小。
2022-12-19 19:15:17
417
原创 C Primer Plus编程题-第三章 数据和C
在美国的体积测量系统中,1品脱等于2杯,1杯等于8盎司,1盎司等于2大汤勺,1大汤勺等于3茶勺。编写一个程序,提示用户输入杯数,并以品脱、盎司、汤勺、茶勺为单位显示等价容量。编写一个程序,读取一个浮点数,先打印成小数点形式,再打印成指数形式。编写一个程序,提示用户输入身高(/英寸),然后以厘米为单位显示身高。编写一个程序,提示用户输入水的夸脱数,并显示水分子的数量。编写一个程序,要求提示输入一个ASCII码值(如,66),然后打印输入的字符。编写一个程序,提示用户输入年龄,然后显示该年龄对应的秒数。
2022-12-19 18:50:47
166
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人