#include "stm32f10x.h"
#include "delay.h"
#include "sys.h"
#include <stdio.h>
#include <string.h>
#include "OLED_IIC.h"
#include "dht11.h"
#include "usart.h"
#include "sgp30.h"
/************************************************
STM32F103C8T6
12864_IIC_OLED_STM32驱动
OLED显示驱动模块: SSD1306
SGP30传感器
IIC: SCL, SDA
对应接口: PB0, PB1
SGP30:VCC, SCL, SDA, GND
对应接口: 3V, PB6, PB7, GND
CH340:TXD, RXD, GND
对应接口: PA10, PA9, GND
************************************************/
int main(void)
{
u16 co2;
u16 tvoc;
delay_init(); //延时初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(9600);
SGP30_Init();
OLED_Init(); //初始化OLED
initial_olcd(); //初始化
clear_screen(); //清屏
delay_ms(50000);
delay_ms(50000);
delay_ms(50000);
while(1)
{
Read_Air_Quality(&co2, &tvoc);
USART_SendData(USART1, 1);
delay_ms(12);
USART_SendData(USART1, co2>>8);
delay_ms(12);
USART_SendData(USART1, 2);
delay_ms(12);
USART_SendData(USART1, co2&0x00ff);
delay_ms(12);
USART_SendData(USART1, 3);
delay_ms(12);
USART_SendData(USART1, tvoc>>8);
delay_ms(12);
USART_SendData(USART1, 4);
delay_ms(12);
USART_SendData(USART1, tvoc&0x00ff);
delay_ms(12);
while(USART_GetFlagStatus(USART1, USART_FLAG_TC)!=SET);
USART_RX_STA = 0;
display_number_16x8(1,1,co2);
display_number_16x8(3,1,tvoc);
}
}
|