提出问题:STM32如何控制风扇转动、蜂鸣器响停、光敏电阻光强读取、以及温湿度传感器控制?这些都是学习单片机较为基本的知识, 本文将对以上问题作出详细解答希望能帮到大家:本文以STM32F103R6为例
一、控制风扇转动和蜂鸣器响停直流电风扇在proteus库中的名称是FAN-DC
蜂鸣器在proteus库中的名称是BUZZER #include "stm32f10x.h" #include "led.h" #include "uart.h" #include "stdio.h" #include "lcd.h" void main_delay(u32 time) { int i,j; for(i = 0; i < time; i++) { for(j = 0; j < 1000; j++) { j++; j--; } } } //风扇初始化函数 void fanInit(void) { GPIO_InitTypeDef GPIO_InitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Pin=GPIO_Pin_6; GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitStruct); GPIO_SetBits(GPIOA,GPIO_Pin_6);//置1,风扇关 }
//蜂鸣器初始化函数 void buzzerInit(void) { GPIO_InitTypeDef GPIO_InitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Pin=GPIO_Pin_7; GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOC,&GPIO_InitStruct); GPIO_SetBits(GPIOC,GPIO_Pin_7);//置1,蜂鸣器关 }
int main(void) { int i = 0; fanInit();//风扇初始化 buzzerInit();//蜂鸣器初始化 LED_GPIO_Config(); while(1) { //如果 置1 是关风扇和蜂鸣器 GPIO_ResetBits(GPIOA,GPIO_Pin_6);//清零 风扇开 GPIO_ResetBits(GPIOC,GPIO_Pin_7);//清零 蜂鸣器开 } }
|