Stm32F103C8T6自用 -- LED闪烁与蜂鸣器

  介于本人也是初学者,本文基于江科大STM32写出,目的在于复习和更加深入掌握,本文仅供参考,如有未写明之处与错误请及时指出,感谢您的观看!

  LED闪烁与蜂鸣器需要配置GPIO

        GPIO:通用输入输出口,可配置的8种输入输出模式:

          GPIO_Mode_AIN                          模拟输入                            
          GPIO_Mode_IN_FLOATING         浮空输入
          GPIO_Mode_IPD                          下拉输入
          GPIO_Mode_IPU                          上拉输入
          GPIO_Mode_Out_OD                   开漏输出
          GPIO_Mode_Out_PP                    推挽输出
          GPIO_Mode_AF_OD                    复用开漏输出
          GPIO_Mode_AF_PP                     复用推挽输出

开时钟:

        GPB1与GPB2需要开APB2时钟

  

程序

#include "stm32f10x.h"    //头文件             
#include "Delay.h"        //头文件,调用延时函数
int main(void)
{
    //开时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);      //GPIOA与GPIOB需要开APB2时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
	
	GPIO_InitTypeDef GPIO_InitLED;    //结构体定义
	GPIO_InitTypeDef GPIO_InitBUZ;
	
	GPIO_InitLED.GPIO_Mode = GPIO_Mode_Out_PP;          //设置为推挽输出
	GPIO_InitLED.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;    //两个LED灯选择A0与A1脚
	GPIO_InitLED.GPIO_Speed = GPIO_Speed_50MHz;         
	
	GPIO_InitBUZ.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitBUZ.GPIO_Pin = GPIO_Pin_12;
	GPIO_InitBUZ.GPIO_Speed = GPIO_Speed_50MHz; 
	
	GPIO_Init(GPIOA, &GPIO_InitLED);    //初始化 
	GPIO_Init(GPIOB, &GPIO_InitBUZ);

	while (1)
	{
		GPIO_ResetBits(GPIOA, GPIO_Pin_0 | GPIO_Pin_1); //点亮LED灯
		Delay_ms(1000);    //延迟1s
		
		GPIO_ResetBits(GPIOB, GPIO_Pin_12);  //开启蜂鸣器
		Delay_ms(1000);    //延迟1s         
		GPIO_SetBits(GPIOB, GPIO_Pin_12);    //关闭蜂鸣器
		Delay_ms(1000);    //延迟1s
			
	}
}

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值