ARMday5

风扇蜂鸣器

1.main.c

#include"led.h"
//封装延时函数
void delay(int ms)
{
    int i,j;
    for(i=0;i<ms;i++)
    {
        for(j=0;j<2000;j++)
        {}

    }
}
int main()
{
    //外设初始化
    all_pplout_init();
    while(1)
    {
        BUZZER_ON();
        delay(2000);
        BUZZER_OFF();
        delay(2000);
        MOTOR_ON();
        delay(2000);
        MOTOR_OFF();
        delay(2000);
        FAN_ON();
        delay(2000);
        FAN_OFF();
        delay(2000);
    }
    return 0;
}

2.led.c

#include "led.h"

void all_pplout_init()//led灯的初始化
{
    //GPIOE/GPIOF时钟使能
   RCC  |= (0x3<<4);
   RCC  |= (0x1<<2);
    //PE10设置为输出
    GPIOE.MODER &= (~(0X3<<12));
    GPIOE.MODER |= (0X1<<12);
    //PF10设置为输出
    GPIOE.MODER &= (~(0X3<<18));
    GPIOE.MODER |= (0X1<<18);
    //PE8设置为输出
    GPIOE.MODER &= (~(0X3<<12));
    GPIOE.MODER |= (0X1<<12);
    //PE10设置为推挽输出
    GPIOB.OTYPER &= (~(0X1<<6));
    //PF10设置为推挽输出
    GPIOE.OTYPER &= (~(0X1<<9));
    //PE8设置为推挽输出
    GPIOF.OTYPER &= (~(0X1<<6));
    //PE10设置为低速输出
    GPIOB.OSPEEDR &= (~(0X3<<12));
    //PF10设置为低速输出
    GPIOE.OSPEEDR &= (~(0X3<<18));
    //PE8设置为低速输出
    GPIOF.OSPEEDR &= (~(0X3<<12));
    //PE10无上拉下拉电阻
    GPIOB.OPUPDR &= (~(0X3<<12));
    //PF10无上拉下拉电阻
    GPIOE.OPUPDR &= (~(0X3<<18));
    //PE8无上拉下拉电阻
    GPIOF.OPUPDR &= (~(0X3<<12));

    //三盏灯默认输出低电平
    GPIOB.ODR &= (~(0X1<<6));
    GPIOE.ODR &= (~(0X1<<9));
    GPIOF.ODR &= (~(0X1<<6));
}

//led1亮
void BUZZER_ON()
{
    GPIOB.ODR |= (0X1<<6);
}
//led2亮
void MOTOR_ON()
{
   GPIOE.ODR |= (0X1<<9);
}
//led1亮
void FAN_ON()
{
    GPIOF.ODR |= (0X1<<6);
}

//LED1灭
void BUZZER_OFF()
{
     GPIOB.ODR &= (~(0X1<<6));
}
//LED2灭
void MOTOR_OFF()
{
     GPIOE.ODR &= (~(0X1<<9));
}
//LED3灭
void FAN_OFF()
{
     GPIOF.ODR &= (~(0X1<<6));
}    

3.led.h

#ifndef __LED_H__
#define __LED_H__
typedef struct
{
    unsigned int MODER;
    unsigned int OTYPER;
    unsigned int OSPEEDR;
    unsigned int OPUPDR;
    unsigned int IDR;
    unsigned int ODR;
}gpio_t;

#define RCC (*(unsigned int *)0X50000A28)
#define GPIOB (*(gpio_t *)0X50003000)
#define GPIOE (*(gpio_t *)0X50006000)
#define GPIOF (*(gpio_t *)0X50007000)

void all_pplout_init();
void BUZZER_ON();
void FAN_ON();
void MOTOR_ON();
void BUZZER_OFF();
void FAN_OFF();
void MOTOR_OFF();

#endif

相关推荐

  1. ARMday5

    2024-03-26 08:06:09       19 阅读
  2. <span style='color:red;'>ARMday</span>7

    ARMday7

    2024-03-26 08:06:09      34 阅读
  3. <span style='color:red;'>ARMday</span>9

    ARMday9

    2024-03-26 08:06:09      37 阅读
  4. ARMday6

    2024-03-26 08:06:09       16 阅读
  5. <span style='color:red;'>ARMday</span>7

    ARMday7

    2024-03-26 08:06:09      21 阅读
  6. ARMday8

    2024-03-26 08:06:09       18 阅读
  7. ARMday1

    2024-03-26 08:06:09       19 阅读
  8. ARMday2

    2024-03-26 08:06:09       10 阅读
  9. ARMday6作業

    2024-03-26 08:06:09       43 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-26 08:06:09       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-26 08:06:09       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-26 08:06:09       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-26 08:06:09       20 阅读

热门阅读

  1. 开发npm上传发布

    2024-03-26 08:06:09       18 阅读
  2. 6、jenkins项目构建类型1-项目类型介绍

    2024-03-26 08:06:09       16 阅读
  3. npm常用命令

    2024-03-26 08:06:09       17 阅读
  4. npm常用命令解释

    2024-03-26 08:06:09       19 阅读
  5. 卷积神经网络基本知识

    2024-03-26 08:06:09       18 阅读
  6. Python实现VMware自动化资源巡检

    2024-03-26 08:06:09       17 阅读
  7. LAMP动态网站

    2024-03-26 08:06:09       18 阅读
  8. 前端理论总结(css3)——css优化的方法

    2024-03-26 08:06:09       13 阅读
  9. Maya FBX导出导入

    2024-03-26 08:06:09       27 阅读