实验目的
利用温湿度传感器DHT11模块,获取温湿度值,通过OLED液晶屏显示,设计人机交互界面,通过上位机设置三挡温湿度状态,超限led报警,并显示在lcd屏幕上。
- 在实验2的基础上使用ADC模块
- 掌握ADC模块的使用和配置
- 熟悉常用的数字滤波的算法
实验内容
实验项目4:ADC模块实验
利用片上的ADC模块,测量片内参考电压,或者电位器输出电压采样仿真温度值,温度从-40~160°,分辨率0.01°。
利用定时器实现0.1秒(或自定义时间间隔)定时采样。
加入数字滤波,要求利用50个采样数据进行数字滤波。
并利用前面的实验项目的模块,实现,LCD显示,人机界面,设置温度分档,高低温报警;通过串口获取温度信息,以及设定温度报警值等功能。
实验要点
LED对应GPIO的配置
开始学习 GPIO 控制 LED 之前先了解两个概念:端口复用和重映射。
复用的概念解决了外设数量与单片机引脚数量不一致所导致的问题。重映射功能的外设由 A 引脚映射到 B 引脚(假设此时 B 引脚没有用到),通过这种机制就解决了多种外设同时使用同一引脚时所引起的冲突问题。
1 | void initLED(void) |
另外还用到了如下两个函数来点亮或者熄灭 LED:
1 | GPIO_SetBits(GPIOB, GPIO_Pin_5); |
在IDE中打开定义可以查看其内容。
按键对应GPIO的配置
1 | void initKey(void) |
Systick的配置
1 | /** |