main.c
#include "led.h"
#include"uart.h"
#include "key_inc.h"
#include"si7006.h"
#include "beefan.h"
int main()
{
//led��ʼ��
all_led_init();/*
while(1)
{
LED1_ON();
LED2_OFF();
LED3_OFF();
delay(500);
LED2_ON();
LED1_OFF();
LED3_OFF();
delay(500);
LED3_ON();
LED2_OFF();
LED1_OFF();
delay(500);
}
return 0;*/
//���ڳ�ʼ��
//uart4_init();
//char i;
//key1_it_config();
//key2_it_config();
//key3_it_config();
//char buf[32];
//i2c��ʼ��
//si7006��ʼ��
i2c_init();
si7006_init();
short tem;
unsigned int short hum;
beefan_init();
while(1)
{
// i=getchar();
// putchar(i+1);
//���յ�����������a�����ڹ�����ʾb
//printf("int main pro\n");
//��ȡ�¶�����
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);
//�����¶���ֵ�����¶ȹ���ʱ�����Ⱥͷ���������
//PB6
if(tem>30)
{
BEE_ON();
FAN_ON();
}
//ʪ�ȹ���ʱ������led1�ƣ�����������
if(hum>200)
{
BEE_ON();
LED1_ON();
}
//ͨ��i2c�������մ���������
delay(1000);
//gets(buf);
//puts(buf);
}
return 0;
}
beefan.c
#include "beefan.h"
//������ PB6
//���� PE9
void beefan_init()
{
//GPIOB/GPIOEʱ��ʹ��
RCC->MP_AHB4ENSETR |= (0x1<<4);
RCC->MP_AHB4ENSETR |= (0x1<<1);
//PE9��������
GPIOE->MODER &= (~(0X3<<18));
GPIOE->MODER |= (0X1<<18);
//PB6��������
GPIOB->MODER &= (~(0X3<<12));
GPIOB->MODER |= (0X1<<12);
//PB6������������
GPIOB->OTYPER &= (~(0X1<<6));
//PE9������������
GPIOE->OTYPER &= (~(0X1<<9));
//PB610������������
GPIOB->OSPEEDR &= (~(0X3<<12));
//PE9������������
GPIOE->OSPEEDR &= (~(0X3<<18));
//PB6��������������
GPIOB->PUPDR &= (~(0X3<<12));
//PE9��������������
GPIOE->PUPDR &= (~(0X3<<18));
//��յ��Ĭ�������͵�ƽ
GPIOB->ODR &= (~(0X1<<6));
GPIOE->ODR &= (~(0X1<<9));
}
//
void BEE_ON()
{
GPIOB->ODR |= (0X1<<6);
}
//
void FAN_ON()
{
GPIOE->ODR |= (0X1<<9);
}
beefan.h
#ifndef __BEEFAN_H__
#define __BEEFAN_H__
#include "stm32mp1xx_gic.h"
#include "stm32mp1xx_exti.h"
#include "stm32mp1xx_rcc.h"
#include "stm32mp1xx_gpio.h"
#include "stm32mp1xx_i2c.h"
//#define GPIOE_MODER (*(unsigned int *)0X50006000)
//#define GPIOE_OTYPER (*(unsigned int *)0X50006004)
//#define GPIOE_OSPEEDR (*(unsigned int *)0X50006008)
//#define GPIOE_OPUPDR (*(unsigned int *)0X5000600C)
//#define GPIOE_ODR (*(unsigned int *)0X50006014)
void beefan_init();
void BEE_ON();
void FAN_ON();
#endif //