DAY 7蜂鸣器和led gpio控制

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 //

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值