登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] STM32

[复制链接]
发表于 2023-1-10 14:48:30 | 显示全部楼层 |阅读模式
学习笔记
学习科目: STM32单片机
学习安排: 光敏传感器控制蜂鸣器
开始时间: 2023-01-10
结束时间: 2023-01-10
光敏传感器控制蜂鸣器代码
main.c
#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "Buzzer.h"
#include "LightSensor.h"

int main(void)
{
        Buzzer_Init();
        LightSensor_Init();
       
        while (1)
        {
                if (LightSensor_Get() == 1)
                {
                        Buzzer_ON();
                }
                else
                {
                        Buzzer_OFF();
                }
        }
}

Buzzer.c
#include "stm32f10x.h"                  // Device header

void Buzzer_Init(void)
{
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
       
        GPIO_InitTypeDef GPIO_InitStructure;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
       
        GPIO_SetBits(GPIOB, GPIO_Pin_12);
}

void Buzzer_ON(void)
{
        GPIO_ResetBits(GPIOB, GPIO_Pin_12);
}

void Buzzer_OFF(void)
{
        GPIO_SetBits(GPIOB, GPIO_Pin_12);
}

void Buzzer_Turn(void)
{
        if (GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_12) == 0)
        {
                GPIO_SetBits(GPIOB, GPIO_Pin_12);
        }
        else
        {
                GPIO_ResetBits(GPIOB, GPIO_Pin_12);
        }
}

Buzzer.h
#ifndef __BUZZER_H
#define __BUZZER_H

void Buzzer_Init(void);
void Buzzer_ON(void);
void Buzzer_OFF(void);
void Buzzer_Turn(void);

#endif

LightSensor.c
#include "stm32f10x.h"                  // Device header

void LightSensor_Init(void)
{
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
       
        GPIO_InitTypeDef GPIO_InitStructure;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
}

uint8_t LightSensor_Get(void)
{
        return GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_13);
}

LightSensor.h
#ifndef __LIGHT_SENSOR_H
#define __LIGHT_SENSOR_H

void LightSensor_Init(void);
uint8_t LightSensor_Get(void);

#endif


好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表