main.c
// #include "gpio.h"
#include "led.h"
#include "uart4.h"
#include"key_inc.h"
#include"fan.h"
#include"si7006.h"
int main()
{
fan_init();
//i2c初始化
i2c_init();
//si7006初始化
si7006_init();
short tem;
unsigned int short hum;
while(1)
{
//读取温度数据
tem=si7006_read_tem();
//读取湿度数据
hum=si7006_read_hum();
//计算温湿度数据
hum=125*hum/65536-6;
tem=175.72*tem/65536-46.85;
printf("hum:%d\n",hum);
printf("tem:%d\n",tem);
//串口打印
delay(1000);
if(tem>20)
{
FAN_ON();
}
}
return 0;
}
fan.c
#include "fan.h"
void fan_init()
{
RCC->MP_AHB4ENSETR |= (0x1<<4);
GPIOE->MODER &= (~(0X3<<18));
GPIOE->MODER |= (0X1<<18);
GPIOE->OTYPER &= (~(0X1<<9));
GPIOE->OSPEEDR &= (~(0X3<<18));
GPIOE->PUPDR &= (~(0X3<<18));
GPIOE->ODR &= (~(0X1<<9));
}
void FAN_ON()
{
GPIOE->ODR |= (0X1<<9);
}
void FAN_OFF()
{
GPIOE->ODR &= (~(0X1<<9));
}