【STM32】STM32学习笔记-LED闪烁 LED流水灯 蜂鸣器(06-2)

00. 目录

文章目录

    • [00. 目录](#00. 目录)
    • [01. GPIO之LED电路图](#01. GPIO之LED电路图)
    • [02. GPIO之LED接线图](#02. GPIO之LED接线图)
    • [03. LED闪烁程序示例](#03. LED闪烁程序示例)
    • [04. LED闪烁程序下载](#04. LED闪烁程序下载)
    • [05. LED流水灯接线图](#05. LED流水灯接线图)
    • [06. LED流水灯程序示例](#06. LED流水灯程序示例)
    • [07. 蜂鸣器接线图](#07. 蜂鸣器接线图)
    • [08. 蜂鸣器程序示例](#08. 蜂鸣器程序示例)
    • [09. 下载](#09. 下载)
    • [10. 附录](#10. 附录)

01. GPIO之LED电路图

电路图示例1

电路图示例2

02. GPIO之LED接线图

03. LED闪烁程序示例

main.c

c 复制代码
#include "stm32f10x.h"

#include "delay.h"



 int main(void)
 {	
	 GPIO_InitTypeDef GPIO_InitStruct;
	//使能GPIOA时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
	 
	
	//GPIO初始化
	 GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
	 GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;
	 GPIO_InitStruct.GPIO_Speed = GPIO_Speed_10MHz;
	
	 GPIO_Init(GPIOA, &GPIO_InitStruct);
	 
	 while(1)
	 {
		#if 0
		 //设置为高电平
		GPIO_SetBits(GPIOA, GPIO_Pin_0);
		delay_ms(100);

		 //设置为低电平
		GPIO_ResetBits(GPIOA, GPIO_Pin_0);
		delay_ms(100);
		#endif

		#if 0
		//设置为低电平
		GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_RESET);
		delay_ms(500);

		 //设置为高电平
		GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET);
		delay_ms(500);
		#endif
		 
		 
		//设置为低电平
		GPIO_WriteBit(GPIOA, GPIO_Pin_0, (BitAction)0);
		delay_ms(100);

		 //设置为高电平
		GPIO_WriteBit(GPIOA, GPIO_Pin_0, (BitAction)1);
		delay_ms(100);
	 }
	 
	 
	 return 0;
 }

04. LED闪烁程序下载

接线图如下图所示:

点击下载,现象为LED闪烁。

05. LED流水灯接线图

06. LED流水灯程序示例

main.c

c 复制代码
#include "stm32f10x.h"

#include "delay.h"



 int main(void)
 {	
	 GPIO_InitTypeDef GPIO_InitStruct;
	//使能GPIOA时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
	 
	
	//GPIO初始化
	 GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
	 GPIO_InitStruct.GPIO_Pin = GPIO_Pin_All; //初始化所有的引脚
	 GPIO_InitStruct.GPIO_Speed = GPIO_Speed_10MHz;
	
	 GPIO_Init(GPIOA, &GPIO_InitStruct);
	 
	 while(1)
	 {
		GPIO_Write(GPIOA, ~0x0001);	//0000 0000 0000 0001
		delay_ms(100);
		 
		GPIO_Write(GPIOA, ~0x0002);	//0000 0000 0000 0010
		delay_ms(100);
		 
		GPIO_Write(GPIOA, ~0x0004);	//0000 0000 0000 0100
		delay_ms(100);
		 
		GPIO_Write(GPIOA, ~0x0008);	//0000 0000 0000 1000
		delay_ms(100);
		 
		GPIO_Write(GPIOA, ~0x0010);	//0000 0000 0001 0000
		delay_ms(100);
		 
		GPIO_Write(GPIOA, ~0x0020);	//0000 0000 0010 0000
		delay_ms(100);
		 
		GPIO_Write(GPIOA, ~0x0040);	//0000 0000 0100 0000
		delay_ms(100);
		 
		GPIO_Write(GPIOA, ~0x0080);	//0000 0000 1000 0000
		delay_ms(100);
	 }
	 
	 return 0;
 }

07. 蜂鸣器接线图

08. 蜂鸣器程序示例

main.c

c 复制代码
#include "stm32f10x.h"

#include "delay.h"



 int main(void)
 {	
	 GPIO_InitTypeDef GPIO_InitStruct;
	//使能GPIOB时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
	 
	
	//GPIO初始化 PB12
	 GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
	 GPIO_InitStruct.GPIO_Pin = GPIO_Pin_12; //初始化所有的引脚
	 GPIO_InitStruct.GPIO_Speed = GPIO_Speed_10MHz;
	
	 GPIO_Init(GPIOB, &GPIO_InitStruct);
	 
	 while(1)
	 {

		 GPIO_SetBits(GPIOB, GPIO_Pin_12);
		 delay_ms(100);
		 
		 GPIO_ResetBits(GPIOB, GPIO_Pin_12);
		 delay_ms(100);
		 
		 GPIO_SetBits(GPIOB, GPIO_Pin_12);
		 delay_ms(100);
		 
		 GPIO_ResetBits(GPIOB, GPIO_Pin_12);
		 delay_ms(700);
	 }
	 
	 
	 return 0;
 }

09. 下载

stm32F103工程模板

01-LED闪烁.rar

02-LED流水灯.rar

03-蜂鸣器示例程序.rar

10. 附录

参考: 【STM32】江科大STM32学习笔记汇总

相关推荐
wuyk5555 小时前
1.栈:后进先出的线性数据结构
c语言·数据结构·stm32·单片机
Hotchip_MEMS5 小时前
TWS耳机微米级较量:超薄LGA封装如何助力MEMS麦克风小型化?
人工智能·笔记·物联网·电脑
Ztt6666666666 小时前
金泉方壶四面端正,月白釉却把棱角放柔了
经验分享·笔记·其他·百度·微信公众平台
for_ever_love__6 小时前
python基础语法学习: 变量, 输入输出, 运算符
网络·python·学习
学习和思考6 小时前
非自动化专业如何自学PLC?我的6个月学习路线图
笔记·学习·自动化·学习方法
拾陆楼6 小时前
PT: DMSA辅助调tree报告前后级余量脚本
后端·学习
某林2127 小时前
从“仿真能跑”到“真机能走”:一套轮腿机械狗强化学习系统的工程化实践
人工智能·stm32·嵌入式硬件·架构·机器人·机械狗
疯狂打码的少年7 小时前
【数据结构】栈的应用:表达式求值(后缀表达式)
java·数据结构·笔记·算法
sbjdhjd8 小时前
大三网安秋招核心学习前言(AI 安全 + Web 漏洞 + 内网渗透全考点)
人工智能·网络协议·学习·安全·网络安全·开源·php
東隅已逝,桑榆非晚8 小时前
类和对象(中)
c++·笔记