1. 智能手表概述:从零开始,我们先聊聊这个玩意儿

大家好,我是你们这门课的讲师。在嵌入式这行摸爬滚打了十几年,从最早的MP3播放器做到现在的智能手表,也算是见证了这玩意儿从「电子表」到「腕上手机」的进化史。

今天咱们开篇,不急着敲代码。先聊聊智能手表到底是个啥,它怎么一步步变成今天这样的,以及我们为什么要选RTOS、LiteOS、FreeRTOS这些系统来折腾。

1.1 智能手表的发展历程:从「看时间」到「看世界」

说实话,我第一次接触智能手表是2013年。那时候市面上能买到的,基本就是Pebble那种电子墨水屏的玩意儿。功能嘛,也就是看看通知、计个步数。我当时还在想,这玩意儿能火?

结果呢?打脸了。

智能手表的发展,我大致分了三个阶段:

  • 1.0 时代(2012-2015): 功能机思维。Pebble、初代Android Wear。特点是屏幕小、续航短、功能单一。说白了就是个「腕上通知器」。
  • 2.0 时代(2015-2019): 独立通信。Apple Watch Series 3开始支持eSIM,手表可以脱离手机打电话了。这时候的痛点变成了——续航。一天一充,谁受得了?
  • 3.0 时代(2019至今): 健康生态。血氧、心电图、血压监测……手表开始往医疗级设备靠拢。我去年帮一个客户做项目,他们要求心率监测的精度要达到医疗级±2bpm以内。嗯,这活儿真不好干。

核心变化: 从「功能叠加」变成了「场景融合」。手表不再是手机的附属品,而是一个独立的健康管理终端。

1.2 主流操作系统对比:RTOS vs LiteOS vs FreeRTOS

你可能会问:「老师,为什么不用Android Wear或者Watch OS?」

原因很简单——资源受限。智能手表的MCU,通常只有几百KB的RAM,几MB的Flash。你跑个Linux试试?还没开机就OOM了。

所以,我们只能在实时操作系统(RTOS)里选。我这些年用过的,主要就这三家:

特性 FreeRTOS LiteOS 传统RTOS(如uC/OS)
内核大小 4-9KB 6-12KB 10-20KB
任务调度 抢占式+协作式 抢占式+时间片 抢占式
IPC机制 队列、信号量、互斥量 队列、信号量、事件 邮箱、信号量、事件
功耗管理 Tickless模式 深度睡眠+快速唤醒 需手动实现
生态成熟度 ★★★★★ ★★★☆☆ ★★★★☆
适合场景 通用嵌入式 华为海思芯片 工业控制

我个人习惯是:新手入门用FreeRTOS。为什么?因为资料多、社区活跃、踩坑了能找到人问。我记得2018年做一个手环项目,遇到一个任务优先级反转的问题,在FreeRTOS论坛上发帖,当天就有人回复了。换成LiteOS?嗯……你可能得自己啃源码。

我的建议: 如果你用的是华为海思的芯片(比如Hi3861),那LiteOS是首选,因为底层驱动都给你封装好了。如果是通用MCU(STM32、GD32),FreeRTOS更香。

1.3 课程目标与学习路径:30天,从零到能跑

这门课的目标很明确:30天后,你能自己写一个能跑、能看、能交互的智能手表固件。

不是那种「Hello World」级别的demo,而是真正能处理触摸、显示、传感器数据、蓝牙通信的工程。

学习路径我设计成了四个阶段:

  1. 基础篇(第1-8章): 搭环境、建工程、跑RTOS。说白了就是「先让灯亮起来」。
  2. 驱动篇(第9-16章): 屏幕、触摸、传感器、蓝牙。这部分最折磨人,我当年调一个SPI屏幕的时序,整整调了三天。后来发现是初始化顺序错了……
  3. 应用篇(第17-24章): UI框架、消息处理、功耗优化。这里我会教你如何让手表续航从1天变成3天。
  4. 实战篇(第25-30章): 完整项目——做一个带心率监测、消息通知、表盘切换的智能手表。

避坑指南: 我曾经见过很多学员,一上来就想着「我要做个Apple Watch」。结果呢?卡在驱动层就放弃了。我的建议是——先跑通一个最简单的点灯程序,再慢慢加功能。步子大了,容易扯着蛋。

1.4 你需要准备什么?

硬件方面,我推荐用STM32F407+1.28寸圆形LCD屏的组合。成本大概在80块钱左右。你想想看,80块钱就能拥有一块属于自己的智能手表,是不是很划算?

软件方面,你需要:

  • Keil MDK 或者 STM32CubeIDE(我习惯用CubeIDE,免费)
  • FreeRTOS v10.4.1+
  • 一个串口调试工具(Putty或者SecureCRT)

嗯,这里要注意:不要用盗版软件。我当年刚入行时用了个破解版Keil,结果编译出来的代码在产线上批量出问题。后来发现是编译器优化选项被篡改了。血的教训。

1.5 写在开头的话

做嵌入式开发,说白了就是「戴着镣铐跳舞」。资源有限、功耗敏感、实时性要求高。但正是这种限制,才让这个领域充满了挑战和乐趣。

接下来的29章,我会把我这些年踩过的坑、总结的经验,毫无保留地分享给你。有些内容可能比较枯燥,但请相信我——当你看到自己写的代码在手表上跑起来的那一刻,一切都值了。

准备好了吗?我们开始吧。


公众号:蓝海资料掘金营,微信deep3321