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

news2024/12/23 11:40:06

00. 目录

文章目录

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

01. GPIO之LED电路图

电路图示例1

在这里插入图片描述

电路图示例2

在这里插入图片描述

02. GPIO之LED接线图

在这里插入图片描述

03. LED闪烁程序示例

main.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

#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

#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学习笔记汇总

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1307182.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Navicat 技术指引 | 适用于 GaussDB 分布式的数据查看器

Navicat Premium(16.3.3 Windows 版或以上)正式支持 GaussDB 分布式数据库。GaussDB 分布式模式更适合对系统可用性和数据处理能力要求较高的场景。Navicat 工具不仅提供可视化数据查看和编辑功能,还提供强大的高阶功能(如模型、结…

CNN发展史脉络 概述图整理

CNN发展史脉络概述图整理,学习心得,供参考,错误请批评指正。 相关论文: LeNet:Handwritten Digit Recognition with a Back-Propagation Network; Gradient-Based Learning Applied to Document Recogniti…

leaflet使用热力图报L找不到的问题ReferenceError: L is not defined at leaflet-heat.js:11:3

1.在main.js中直接引入会显示找不到L 2.解决办法 直接在组件中单独引入使用 可以直接显示出来。 至于为什么main中不能引入为全局,我是没找到,我的另外一个项目可以,新项目不行,不知哪里设置的问题

在linux服上使用nginx+tomcat部署若依前后端分离版本(RuoYi-Vue)

一、先拉工程,地址:RuoYi-Vue: 🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本 二、在window上用idea打开跑通,可参考…

GPT-4V 在保险行业的应用

在科技的进步中,人工智能与大数据技术的结合产生了巨大的能量,推动了各行各业的创新与变革。OpenAI,作为全球领先的人工智能研发机构,在今年的9月25日,以一种崭新的方式,升级了其旗下的GPT-4模型。这次的升…

解决msvcr120.dll文件丢失问题

项目场景: 在VMware虚拟机中安装win7家庭版系统,安装MySQL数据库,部署项目文件。 问题描述 安装MySQL数据库过程中提示“msvcr120.dll文件丢失”。 原因分析: 提示丢失msvcr120.dll文件,我们首先要到C:\Windows\Sys…

SD-WAN解决外贸企业网络问题

为了获取全球客户,占领更多的市场,越来越多的外贸企业出现。外贸企业在发展业务的过程中会遇到很多困难,海外网络访问问题就是其中之一。目前该问题主要有三种解决方案:VPN、MPLS专线以及SD-WAN专线。 VPN通过在公网上面建立专用网…

3、ollvm移植

github: https://github.com/obfuscator-llvm/obfuscator/tree/llvm-4.0 先复制 include Obfuscation: /home/nowind/llvm/ollvm/obfuscator/include/llvm/Transforms/Obfuscation /home/nowind/llvm/llvm-project-9.0.1/llvm/include/llvm/Transforms/Obfuscation lib Ob…

【算法Hot100系列】两数相加

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

深度学习|词嵌入的演变

文本嵌入,也称为词嵌入,是文本数据的高维、密集向量表示,可以测量不同文本之间的语义和句法相似性。它们通常是通过在大量文本数据上训练 Word2Vec、GloVe 或 BERT 等机器学习模型来创建的。这些模型能够捕获单词和短语之间的复杂关系&#x…

利用poi实现将数据库表字段信息导出到word中

研发文档对于开发人员来说都不陌生了,而研发文档里重要的一部分就是表结构设计,需要我们在word建个表格把我们数据库中的表字段信息填进去,表多的话靠我们手动去填非常累人!!! 因此作为开发人员可不可以写…

HarmonyOS—实现UserDataAbility

UserDataAbility接收其他应用发送的请求,提供外部程序访问的入口,从而实现应用间的数据访问。Data提供了文件存储和数据库存储两组接口供用户使用。 文件存储 开发者需要在Data中重写FileDescriptoropenFile(Uriuri,Stringmode)方法来操作文件&#xf…

记账本选择标签选择时间,计算器---记录一下

html部分 <template><view class"pages-main"><!-- 标题栏 --><!-- #ifndef MP-TOUTIAO --><view class"" :style"height:barHeight px;"></view><!-- #endif --><!-- #ifdef MP-TOUTIAO -->&…

zookeeper1==zookeeper源码阅读,源码启动ZK集群

下载源码 Tags apache/zookeeper GitHub https://codeload.github.com/apache/zookeeper/zip/refs/tags/release-3.9.1 JDK8 MAVEN3.8.6 mvn -DskipTeststrue package 配置ZK1 zkServer.cmd中指出了启动类是 QuorumPeerMain QuorumPeer翻译成集群成员比较合理&#xf…

Nacos配置Mysql数据库

目录 前言1. 配置2. 测试前言 关于Nacos的基本知识可看我之前的文章: Nacos基础版 从入门到精通云服务器 通过docker安装配置Nacos 图文操作以下Nacos的版本为1.1.3 1. 配置 对应的配置文件路径如下: 对应的application.properties为配置文件 需配置端口号 以及 mysql中的…

Mysql的事务日志

Mysql的事务具有四个特性&#xff1a;原子性、一致性、隔离性、持久性。那么事务的四种特性分别是靠什么机制实现的呢&#xff1f; 事务的隔离性由锁机制来保证 事务的原子性、一致性、持久性则由redo log和Undo log来保证。 - redo log是重做日志&#xff0c;提供再写入操作&…

docker-compose安装nacos和msql

docker-compose安装nacos和msql 前言前提已经安装docker-compose&#xff0c;如果没有安装&#xff0c;则可以查看上面系列文章中的安装教程。并且文章中使用的是mobaxterm连接虚拟机。 1、下载2、创建并运行 前言 前提已经安装docker-compose&#xff0c;如果没有安装&#x…

BugKu-Web-Flask_FileUpload(模板注入与文件上传)

Flask Flask是一个使用Python编写的轻量级Web应用框架。它是一个微型框架&#xff0c;因为它的核心非常简单&#xff0c;但可以通过扩展来增加其他功能。Flask的核心组件包括Werkzeug&#xff0c;一个WSGI工具箱&#xff0c;以及Jinja2&#xff0c;一个模板引擎。 Flask使用BSD…

Windows提权方法

简介 内网提权&#xff0c;本意为通过某些服务的漏洞&#xff0c;从而获取到该服务器的shell&#xff0c;进而内网渗透&#xff0c;最终从普通用户变成超级管理员的一个过程 以下是一些常见的内网提权原理和方法&#xff1a; 横向移动&#xff1a;攻击者通过在内网中的一台受感…

fuxploide,一款针对文件上传的Fuzz检测工具

fuxploide,一款针对文件上传的Fuzz检测工具 1.工具概述2.安装3.参数解析4.使用案例1.工具概述 Fuxploider 是一种开源渗透测试工具,可自动检测和利用文件上传表单缺陷。该工具能够检测允许上传的文件类型,并能够检测哪种技术最适合在所需的 Web 服务器上上传 Web Shell 或任…