01:【江科大stm32】:LED闪烁/LED流水灯/蜂鸣器

1、LED闪烁程序

c 复制代码
/*
	LED灯闪烁,LED正极连接电源,负极连接PA0引脚,所以输出0点亮,输出1熄灭
*/

#include "stm32f10x.h"                 
#include "Delay.h"

int main(void)
{
	//1. 使能挂载在APB2总线上面的片上外设时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	
	//2. 对GPIO_PA0进行配置
	GPIO_InitTypeDef GPIOInitStruct;
	GPIOInitStruct.GPIO_Pin = GPIO_Pin_0;
	GPIOInitStruct.GPIO_Mode = GPIO_Mode_Out_OD;//输出开漏模式,0才有驱动能力
	GPIOInitStruct.GPIO_Speed = GPIO_Speed_2MHz;//最大输出速度
	GPIO_Init(GPIOA,&GPIOInitStruct);
	
	while(1)
	{
		//3. 方式一:使用GPIO_WriteBit()函数
//		GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);//点亮LED
//		Delay_ms(1000);//延迟1s
//		GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);//熄灭LED
//		Delay_ms(1000);
		
		//4. 方式二:使用GPIO_SetBits/GPIO_ResetBits
//			GPIO_ResetBits(GPIOA,GPIO_Pin_0);
//			Delay_ms(1000);
//			GPIO_SetBits(GPIOA,GPIO_Pin_0);
//			Delay_ms(1000);
		
		//5. 方式三:使用GPIO_Write()函数
				GPIO_Write(GPIOA, 0x0000);//一共16位,对应PA0~PA15。
				Delay_ms(1000);
				GPIO_Write(GPIOA, 0x0001);
				Delay_ms(1000);
	}
}

2、LED流水灯

c 复制代码
/*
	LED灯流水灯,LED负极连接电源,正极连接PA0引脚
*/

#include "stm32f10x.h"                  
#include "Delay.h"

int main(void)
{
	uint8_t i;
	//1. 使能挂载在APB2总线上面的片上外设时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	
	//2. 对GPIO_PA0进行配置
	GPIO_InitTypeDef GPIOInitStruct;
	GPIOInitStruct.GPIO_Pin = GPIO_Pin_All;//选择所有引脚,选择引脚可以按位或
	GPIOInitStruct.GPIO_Mode = GPIO_Mode_Out_PP;//输出推挽模式,0,1都有驱动能力,方便位运算
	GPIOInitStruct.GPIO_Speed = GPIO_Speed_2MHz;//最大输出速度,
	GPIO_Init(GPIOA,&GPIOInitStruct);
	
	while(1)
	{
		//5. 方式三:使用GPIO_Write()函数
		uint16_t a = 0x01;//0000 0001
		for(i = 0;i < 8;i++)
		{
				GPIO_Write(GPIOA, a);//0000 0001。一共16位,对应PA0~PA15。
				Delay_ms(500);
		    a = a << 1;//左移
		}
	}
}

3、蜂鸣器的使用

c 复制代码
/*
	蜂鸣器的使用,输出低电平,蜂鸣器响
*/

#include "stm32f10x.h"                 
#include "Delay.h"

int main(void)
{
	//1. 使能挂载在APB2总线上面的片上外设时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	
	//2. 对GPIO_PA0进行配置
	GPIO_InitTypeDef GPIOInitStruct;
	GPIOInitStruct.GPIO_Pin = GPIO_Pin_0;
	GPIOInitStruct.GPIO_Mode = GPIO_Mode_Out_OD;//输出开漏模式,0才有驱动能力
	GPIOInitStruct.GPIO_Speed = GPIO_Speed_2MHz;//最大输出速度
	GPIO_Init(GPIOA,&GPIOInitStruct);
	
	while(1)
	{
		//3. 方式一:使用GPIO_WriteBit()函数
//		GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);//点亮LED
//		Delay_ms(1000);//延迟1s
//		GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);//熄灭LED
//		Delay_ms(1000);
		
		//4. 方式二:使用GPIO_SetBits/GPIO_ResetBits
//			GPIO_ResetBits(GPIOA,GPIO_Pin_0);
//			Delay_ms(1000);
//			GPIO_SetBits(GPIOA,GPIO_Pin_0);
//			Delay_ms(1000);
		
		//5. 方式三:使用GPIO_Write()函数
			GPIO_Write(GPIOA, 0x0000);//一共16位,对应PA0~PA15。
			Delay_ms(100);
			GPIO_Write(GPIOA, 0x0001);
		    Delay_ms(100);
		    GPIO_Write(GPIOA, 0x0000);//一共16位,对应PA0~PA15。
			Delay_ms(100);
			GPIO_Write(GPIOA, 0x0001);
			Delay_ms(100);
			GPIO_Write(GPIOA, 0x0000);//一共16位,对应PA0~PA15。
			Delay_ms(100);
			GPIO_Write(GPIOA, 0x0001);
			Delay_ms(700);
	}
}
相关推荐
笨笨饿9 小时前
#142_VS Code.map文件插件的用法
git·python·stm32·单片机·嵌入式硬件·物联网·vim
三佛科技-187366133979 小时前
HN62512是什么芯片?HN62512多规格5V/12V500mA,24V350mA芯片解析
单片机·嵌入式硬件
早八晚十啊9 小时前
双MCU架构:基于视觉反馈的简易自行瞄准装置(激光云台控制)
单片机·嵌入式硬件
恒锐丰科技林技术员10 小时前
EG27517 高速低侧单通道栅极驱动芯片解析
经验分享·嵌入式硬件·硬件工程
Zw-awa10 小时前
让小车沿线转得顺:循迹位置环 PID
stm32
铅笔小新z10 小时前
【stm32】RTC(实时时钟)
stm32·单片机·实时音视频
Yiran_G10 小时前
LoRa数据帧设计与工程实现:地址、长度、校验及版本兼容
网络·嵌入式硬件·物联网
糖糖单片机设计10 小时前
基于 STM32 的风力发电机控制系统
stm32·单片机·嵌入式硬件
企鹅的蚂蚁11 小时前
Zephyr RTOS 常用 API 详解:从 GPIO、线程到 CAN FD(附 STM32/FreeRTOS 对照)
stm32·单片机·嵌入式硬件·rtos·zephyr
2501_922639581 天前
率能半导体 SS6285L直流双向马达驱动芯片:18V/5A,覆盖电子锁、按摩仪、电动玩具、机器人四大应用场景
单片机·嵌入式硬件·硬件工程