Skip to content

实验7: 字母板

这个实验的目的是掌握在嵌入式 Linux 中如何使用已有的函数库编写应用程序操纵 GPIO ,如何编写字符设备驱动程序在内核程序中使用 GPIO ,并学习用面包板搭简单的外部设备电路的方法,掌握 Linux 网络程序和多线程程序的编写,实现一个网络访问的 LED 矩阵显示器。

本实验配有 实验指南

实验目的

  1. 学习嵌入式 Linux 的内核 GPIO 库函数的使用方式;
  2. 学习 Linux 设备驱动程序的开发过程。

实验器材

硬件

  • Linux 实验板卡 1 块;
  • 5V / 1A 电源 1 个;
  • microUSB 线 1 根;
  • 面包板 1 块;
  • SPI接口 8x8 LED 矩阵 MAX7219 1个;
  • 面包线若干。

软件

  • 编译软件等。

实验步骤

此为实验报告的整体步骤,具体的实验步骤请参考 实验指南

  1. 设计方案,画连线示意图;
  2. 在面包板上连线,完成外部电路;
  3. 编写 C 程序,采用 Arduino-ish 库或虚拟文件系统访问 GPIO,实现在矩阵上显示文字或图案;
  4. 编写字符设备驱动程序,通过内核GPIO库访问引脚,能将 write() 送来的单个字符在矩阵上显示出来;
  5. 编写 Linux 应用程序,能通过 MQTT 协议连接自己 MQTT broker,将订阅收到的文字在 LED 矩阵上流动显示出来;
  6. 在 5 的基础上实现实验 6 的 DHT-11 的数据发布到自己的 MQTT broker 上后显示在 LED 矩阵上。

自选扩展内容

  1. 设备驱动程序能将 write() 送来的字符串以每个字母停留 500ms 的速度依次显示;
  2. 1中的 write() 函数是非阻塞类型的,每500ms一个字符的显示是由内核定时器队列实现的。

实验报告要求

此为实验报告的整体要求,具体的实验步骤请参考 实验指南

  1. 画出你所实际实施的连接示意图;
  2. 给出所用的器材的列表;
  3. 描述所做的实验步骤,给出各步操作的命令和结果;
  4. 说明所用的 GPIO 库的来源;
  5. 给出代码并解释;
  6. 说明其他所做的扩展内容的情况。

验收要求

  1. 现场演示通过 Arduino-ish 库或虚拟文件系统访问 GPIO,实现在矩阵上显示文字或图案;
  2. 现场演示使用字符设备驱动所编写的程序,将 DHT-11 的数据发布到自己的 MQTT broker 上后显示在 LED 矩阵上;
  3. 回答和实验相关的问题。