Skip to content

实验5: 温度计

这个实验的目的是理解FreeRTOS的任务调度方式,编写FreeRTOS的应用程序,通过寄存器直接操纵GPIO来驱动外部设备。

本实验配有 实验指南

实验目的

  1. 掌握FreeRTOS的应用程序编写;
  2. 理解如何直接操纵GPIO;
  3. 掌握单总线设备的访问方式;
  4. 掌握7段数码管的时分复用驱动方式。

实验器材

硬件

  • STM32F103核心板1块;
  • ST-Link板1块;
  • USB串口板1块;
  • 面包板1块;
  • 四位7段数码管(共阳)1颗;
  • 360Ω ⅛W电阻2颗;
  • DHT-11 温湿度传感器1个;
  • 杜邦线若干。

软件

  • PC上的ST-Link的驱动程序;
  • PC上的USB-TTL串口线配套的驱动程序;
  • PC上的串口终端软件,如picocom、putty等。

实验步骤

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

  1. 设计输出方案,画连线示意图;
  2. 在面包板上连线,完成外部电路;
  3. 编写程序,测试程序和电路;
  4. 测试、实现FreeRTOS对GPIO的访问;
  5. 实现DHT-11数据的读;
  6. 使用逻辑分析仪查看DHT-11数据线上的时序
  7. 实现以时分复用方式在四位7段数码管上依次显示0000-9999的数字;
  8. 用两个FreeRTOS任务,一个定时读DHT-11数据,一个轮流驱动数码管,一秒一次显示当前温度和湿度。注意处理好两个任务之间的数据共享。

自选扩展内容

无。

实验报告要求

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

  1. 画出你所实际实施的连接示意图;
  2. 给出所用的器材的列表;
  3. 画出外部设备的连线图,并附实物照片;
  4. 描述所做的实验步骤,给出各步操作的命令和结果;
  5. 给出代码并解释。

验收要求

  1. 现场烧录程序,实现从串口每秒输出一次温度和湿度;
  2. 现场烧录程序,实现数码管从0000-9999循环显示;
  3. 现场烧录程序,实现数码管每秒显示一次温度和湿度;
  4. 回答实验相关问题。

若只验收1或者2,验收总分不超过60分;若验收3,验收总分为100分,可省略1和2的验收。