P.4 实验:裸机读 B1(无 OS)

L0-4

学习目标

B1 是 GPIO 输入;裸机用循环反复读电平。这是输入外设的最简路径,后面会变成 HDF Dispatch,再变成 UI 任务。

  • 输入要先配置方向与上拉/下拉,再读数据寄存器。B1 对齐 Mixly 的板载用户键。
  • 轮询:主循环每次都读,按下就打印。实现简单,CPU 一直醒着。
  • 机械按键有抖动:一次按下可能读到多次跳变,可用短延时或计数消抖。
  • 中断把变化变成异步事件,第六章再展开;本课只要轮询能区分按下与松开。

做 · 实验

  • 编译按键实验,按下与松开都要有可见串口变化。
  • 若出现连发,记录你准备用计数还是延时抑制抖动。

打开工作台

代码导读

本课在工作台编译烧录。先读 user 实验入口,再对照 kernel / HDF 中被调用的函数,不要一上来改链接脚本。

总结与提升

  • 按下与松开可以区分,不是随机乱报。
  • 能说明本实验仍是裸机轮询,没有中断向量。

延伸思考

  • 消抖应放在应用还是驱动?给出你会选的一种理由。
  • 若要同时闪灯和读键,裸机死循环怎么排?这会把你推向调度。

← 本阶段封面 · 课程列表