本帖最后由 hbzjt2011 于 2020-8-2 10:24 编辑
一、程序架构:程序架构如下图所示,包含Drivers(外设驱动)、Startup(STM32启动文件)、Application(主函数和中断处理函数文件)和FWLib(STM32F0标准固件库)。 其中每个外设都有各自的文件夹,用于包含源文件和头文件。 如果需要增加新的外设驱动,同样可以建立新的文件夹,并在Keil中添加头文件所在目录,所有的头文件都放在main.h文件中。 二、硬件接线:
单片机的8个串口都已经使用,其对应关系见下表。 PM2.5传感器接线说明: PM2.5传感器数据主动上传,串口接收到新的数据后刷新数据并输出。
CO传感器接线说明:
CO传感器数据采用问答式,在tim2定时器中1秒发送一次读取指令,串口接收到新的数据后刷新数据并输出。
CO2传感器T6703接线说明:
CO2传感器T6703数据采用问答式,在tim2定时器中1秒发送一次读取指令,串口接收到新的数据后刷新数据并输出。
甲醛传感器AS04接线说明:
甲醛传感器AS04数据采用问答式,在tim2定时器中1秒发送一次读取指令,串口接收到新的数据后刷新数据并输出。
CO2传感器S8-0053接线说明:
CO2传感器S8-0053数据采用问答式,在tim2定时器中1秒发送一次读取指令,串口接收到新的数据后刷新数据并输出。
甲醛传感器Dart-2-FE5接线说明:
甲醛传感器数据Dart-2-FE5主动上传,串口接收到新的数据后刷新数据并输出。
此外USART2接口说明,此接口为ST-Link的虚拟串口,直接可以使用,printf函数重定向于此串口,可通过此串口查看各传感器的输出和调试信息。 USART2-TX PA2 USART2-RX PA3
USART8用于输出气体数据,每秒输出一次,此外用于接收外部命令。
1、通过多余的串口输出所有传感器数据: 0x41 + PM25+ PM10+ TVOC+甲醛+ CO2 + CO+温度+ 湿度 (高字节在前低字节在后); 2、当串口接收到串口助手发送的这种格式(53 32 04 3100 00 32 00 00 33 00 00 34 00 00 35 00 00)数据时,将完整数据保存到flash,并读取出黄色数据保存到变量中;
3、当接收53 32 01时,串口返回53 32 01 3900 00 00;
4、当接收53 32 0c 32时,串口读取出0c后的数据并保存到变量中,并返回53 32 0c 32 00 00 00 00;
SHT30温湿度传感器接线说明:
W25Q64 Flash 接线说明:
IAQ-engine接线说明: 三、 上位机软件Gas_Sensors_WinForm:四、 源码:
所有程序源文件均已上传至Github: https://github.com/hbzjt2012/Gas_Sensors
|