实验5: 温度计¶
这个实验的目的是理解FreeRTOS的任务调度方式,编写FreeRTOS的应用程序,通过寄存器直接操纵GPIO来驱动外部设备。
本实验配有 实验指南 。
实验目的¶
- 掌握FreeRTOS的应用程序编写;
- 理解如何直接操纵GPIO;
- 掌握单总线设备的访问方式;
- 掌握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等。
实验步骤¶
此为实验报告的整体步骤,具体的实验步骤请参考 实验指南 。
- 设计输出方案,画连线示意图;
- 在面包板上连线,完成外部电路;
- 编写程序,测试程序和电路;
- 测试、实现FreeRTOS对GPIO的访问;
- 实现DHT-11数据的读;
- 使用逻辑分析仪查看DHT-11数据线上的时序
- 实现以时分复用方式在四位7段数码管上依次显示0000-9999的数字;
- 用两个FreeRTOS任务,一个定时读DHT-11数据,一个轮流驱动数码管,一秒一次显示当前温度和湿度。注意处理好两个任务之间的数据共享。
自选扩展内容¶
无。
实验报告要求¶
此为实验报告的整体要求,具体的实验步骤请参考 实验指南 。
- 画出你所实际实施的连接示意图;
- 给出所用的器材的列表;
- 画出外部设备的连线图,并附实物照片;
- 描述所做的实验步骤,给出各步操作的命令和结果;
- 给出代码并解释。
验收要求¶
- 现场烧录程序,实现从串口每秒输出一次温度和湿度;
- 现场烧录程序,实现数码管从0000-9999循环显示;
- 现场烧录程序,实现数码管每秒显示一次温度和湿度;
- 回答实验相关问题。
若只验收1或者2,验收总分不超过60分;若验收3,验收总分为100分,可省略1和2的验收。