- 博客(16)
- 收藏
- 关注
原创 FreeRTOS项目:智能手表(5):梳理 “应用层业务逻辑”;
在带 GUI 的设备中,“页面栈” 用于管理 UI 页面的层级切换(如 “打开新页面时压栈、返回时弹出栈”),确保界面切换的顺序和状态一致性(类似手机 APP 的页面导航)。承担系统内部(任务间)或外部(串口、蓝牙等)的消息传输,在多任务间通过 “消息队列” 等机制通信时,作为 “生产者” 封装并发送数据。,负责 GUI 整体初始化(如屏幕驱动绑定、全局样式 / 主题配置),以及各页面、组件的统筹调度,是 GUI 功能的 “总入口”。
2025-09-07 21:28:14
732
原创 FreeRTOS项目:智能手表(3):掌握 “驱动层”;
不用逐行读,但要知道外设的 HAL 接口逻辑(比如 “初始化 I2C” 用 HAL_I2C_Init(),“读取数据” 用 HAL_I2C_Master_Receive()),为后续看 “自定义硬件适配” 打基础。Drivers/User/BSP 是用户自定义的 “硬件适配代码”(比如智能手表的屏幕、心率传感器、按键等专属硬件)。屏幕驱动:看 bsp_lcd.c 里的 “屏幕初始化、数据发送” 函数,理解 “软件如何控制屏幕亮屏、显示图像”;图中展示的是嵌入式开发(如 STM32 单片机项目)里的。
2025-09-07 20:40:27
444
原创 FreeRTOS项目:智能手表(4):学习 “中间件”;
启用抢占式调度和多任务同步机制,满足实时交互需求(如触摸响应、屏幕刷新);配置合理的堆大小和优先级数量,平衡资源占用和功能扩展性;兼容调试工具和标准化 API,降低开发难度。实际使用中,可根据任务数量、内存需求等调整参数(如),确保系统稳定运行。
2025-09-07 20:39:52
1034
原创 STM32F4 系列 HAL 库的 GPIO 外设驱动
这份的核心价值是 **“硬件抽象”**:它将 GPIO 的底层寄存器操作(如MODERBSRREXTI)封装为用户友好的 API,让开发者无需深入硬件细节,只需关注 “要配置什么模式、要读写哪个引脚”,大幅降低了 STM32 GPIO 的使用门槛,同时保证了代码的兼容性和稳定性。所有 GPIO 相关的用户代码(如按键、LED、传感器控制),最终都会依赖这份驱动文件中的函数与硬件交互。
2025-09-07 18:05:11
761
原创 FreeRTOS项目:智能手表(2):理解”启动与系统配置“;
栈(Stack):指定栈大小为1024字节(0x400 是 16 进制,转十进制为 1024)。栈用于函数调用、局部变量存储、上下文切换(比如中断发生时,CPU 会自动把寄存器值压入栈),是 “从高地址向低地址生长” 的内存区域。堆(Heap)PRESERVE8:指定堆大小为512字节。堆用于动态内存分配(比如 C 语言中的mallocfree),是 “从低地址向高地址生长” 的内存区域。启动文件是单片机从 “裸机” 到 “运行 C 程序” 的桥梁。
2025-09-07 17:22:02
1141
原创 FreeRTOS项目:智能手表(1);
从 “最底层启动”→“系统基础配置”→“硬件驱动”→“中间件能力封装”→“上层业务功能”,分层递进、从基础到应用,就能逐步把整个项目的逻辑串联起来~
2025-09-07 11:13:28
1299
原创 嵌入式学习笔记:SPI协议;
SPI 是一种 “简单高效” 的同步通信协议,核心优势在于高速全双工和实现便捷,适合板内短距离、高吞吐量的设备间通信。其设计专注于数据传输效率,而非复杂的网络管理,这也使其成为嵌入式系统中的 “主力协议” 之一。
2025-07-25 15:22:02
1090
原创 嵌入式学习笔记:IIC协议
优点缺点仅需 2 根线,硬件设计简单速率较低(最高 3.4Mbps),不适合高速传输多主从架构,灵活扩展设备总线电容限制(电容过大会降低速率)地址识别 + 应答机制,可靠性高开漏输出依赖上拉电阻,需合理选型支持仲裁,多主设备兼容长距离传输时信号易受干扰。
2025-07-24 22:43:01
897
原创 嵌入式学习笔记:引脚可以同时具备输入和输出能力;
IIC 的 SCL/SDA 引脚之所以能实现双向通信,正是因为它们被配置为 “输出使能(开漏)+ 输入使能” 的复合模式 —— 并非只能选一种模式,而是通过硬件设计允许输出和输入功能同时工作。这种设计是所有双向通信协议(如 UART 的 RX/TX 虽然分离,但单个引脚也可设计为双向)的基础。开漏输出(包括普通开漏和复用开漏)高阻态检测(输入电路使能,不消耗总线电流)。无内部上下拉(电平由外部电路决定,如 IIC 的上拉电阻)。
2025-07-24 22:18:44
937
原创 嵌入式学习笔记:STM32引脚输入输出模式;
STM32 微控制器的 GPIO(通用输入输出)引脚支持多种输入输出模式,不同模式适用于不同的应用场景。输入模式下,引脚用于读取外部信号,此时 GPIO 内部的输出驱动器被关闭。
2025-07-24 21:43:03
1499
原创 C学习笔记:(*( void(*)() )0)() 分析;
> (void(*)())0是将整形数据0转换成函数指针类型;用括号括起来数据类型是。
2025-07-19 18:01:23
409
原创 C学习笔记:struct内存对齐
内存对齐:CPU 读取内存时通常按固定大小的 “块”(如 4 字节、8 字节)访问,若数据未对齐,可能需要多次读取,导致效率降低。
2025-07-18 18:01:13
360
原创 解决:VS调试时内存栏搜索变量名出现错误地址;
搜索num1回车:搜索num2回车:搜索str回车:搜索s回车:可以看出只有数组和字符串是正确显示;而且我们可以通过取num1地址,找到num1的真实地址,显然和内存窗口查找的不一样。显然这才是真的地址,内存窗口查找的是错误的。
2025-07-17 21:49:47
513
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅