江科大stm32学习笔记——【3-2】GPIO输出:LED闪烁LED流水灯蜂鸣器

(一) 硬件连接

1.LED闪烁

LED灯正极连接面包板电源正极,LED负极连接单片机A0口

(也可以LED负极连面包板负极,LED正极连接单片机A0口)

跳线连接单片机3.3和面包板正极,连接单片机GND和面包板负极

2.LED流水灯

 

3.蜂鸣器

(二)代码

一.基础代码

以下所有库函数从gpio.h文件最下方查找,参数也是对函数定义查找后自己填写

1.使用RCC开启GPIO时钟: 

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

2.使用GPIO_Init函数初始化GPIO

GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);

开漏输出的模式高电平没有驱动能力

3.使用输出或者输入的函数控制GPIO口:

GPIO_SetBits(GPIOA,GPIO_Pin_0);//将指定端口设置为高电平
GPIO_ResetBits(GPIOA,GPIO_Pin_0);//将指定端口设置为低电平
GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);//将指定端口设置为高电平或低电平

二.LED闪烁

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
int main(void){
	//使用RCC开启GPIO时钟:
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	//使用GPIO_Init函数初始化GPIO:
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	while(1)
	{
		GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);
		Delay_ms(500);
		GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);
		Delay_ms(500);
	}
}

延时函数要加头文件注明

三.LED流水灯

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
int main(void){	
	//使用RCC开启GPIO时钟:
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	//使用GPIO_Init函数初始化GPIO:
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	
	while(1)
	{
		//加~是因为低电平点亮,要按位取反
		GPIO_Write(GPIOA,~0x0001);//对应二进制:0000 0000 0000 0001 PA0
		Delay_ms(500);
		GPIO_Write(GPIOA,~0x0002);//对应二进制:0000 0000 0000 0010 PA1
		Delay_ms(500);
		GPIO_Write(GPIOA,~0x0004);//对应二进制:0000 0000 0000 0100 PA2
		Delay_ms(500);
		GPIO_Write(GPIOA,~0x0008);//对应二进制:0000 0000 0000 1000 PA3
		Delay_ms(500);
		GPIO_Write(GPIOA,~0x0010);//对应二进制:0000 0000 0001 0000 PA4
		Delay_ms(500);
		GPIO_Write(GPIOA,~0x0020);//对应二进制:0000 0000 0010 0000 PA5
		Delay_ms(500);
		GPIO_Write(GPIOA,~0x0040);//对应二进制:0000 0000 0100 0000 PA6
		Delay_ms(500);
		GPIO_Write(GPIOA,~0x0080);//对应二进制:0000 0000 1000 0000 PA7
		Delay_ms(500);
	}
}

 三.蜂鸣器

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
int main(void){
	//使用RCC开启GPIO时钟:
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
	//使用GPIO_Init函数初始化GPIO:
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB,&GPIO_InitStructure);
	while(1)
	{
		GPIO_WriteBit(GPIOB,GPIO_Pin_12,Bit_RESET);
		Delay_ms(500);
		GPIO_WriteBit(GPIOB,GPIO_Pin_12,Bit_SET);
		Delay_ms(500);
	}
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2个wordpress优化SEO主题模板

SEO优化wordpress主题 简洁的SEO优化wordpress主题,效果好不好,结果会告诉你,适合SEO公司使用的主题。 https://www.jianzhanpress.com/?p2804 SEO优化海外WordPress主题 简洁的SEO优化海外服务商WordPress主题,为中国制造202…

GaussDB SQL调优:建立合适的索引

背景 GaussDB是华为公司倾力打造的自研企业级分布式关系型数据库,该产品具备企业级复杂事务混合负载能力,同时支持优异的分布式事务,同城跨AZ部署,数据0丢失,支持1000扩展能力,PB级海量存储等企业级数据库…

微服务篇之分布式系统理论

一、CAP定理 1.什么是CAP 1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标: 1. Consistency(一致性)。 2. Availability(可用性)。 3. Partition tolerance &#xff0…

突破企业发展瓶颈:解决人、机、物数据关联难题

在当今竞争激烈的商业环境中,企业面临着诸多挑战,而这些痛点正逐渐成为企业发展的绊脚石。人、机、物数据采集复杂,关联困难,导致全方位产能协同难以实现;产品多样性使得精准管控变得愈发困难。同时,库存积…

干货 | 如何通过 Navicat Monitor 3 创建自定义指标

Navicat Monitor 3 是一款安全、简单且无需代理的远程服务器监控工具,包含许多强大的功能,尽可能使你的监控工作更加有效。你可以通过 Web 浏览器从任何地方访问 Navicat Monitor,获取关于服务器负载和性能的统计数据,包括可用性、…

开源图表库Echarts 简介与基本使用

ECharts 是一个使用 JavaScript 实现的开源可视化图表库,由百度团队开发。它提供了丰富的图表类型,如折线图、柱状图、饼图、地图、雷达图等,并且可以轻松地与其他前端框架和库集成。ECharts 的设计目的是为了满足复杂数据的可视化需求&#…

ES6内置对象 - Set

Set(es6提供的一种数据结构,类似数组,是一个集合,可以存储任何类型的元素且唯一、不重复,so,多用于元素去重) 如上图,Set数据结构自带一些方法 1.Set对象创建 let a new Set([1,2,3,3,1,2,4,…

C++力扣题目 739--每日温度 496--下一个更大元素I 503--下一个更大元素II

739. 每日温度 力扣题目链接(opens new window) 请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。 例如,…

【Unity】【VR开发】Unity云同步功能使用心得

【背景】 有时出差,旅行等等也带着电脑,晚上想要继续编辑项目,就需要用到云同步功能。目前实践下来,发现有些内容可以同步,有些内容则是不可以同步的,总结如下。 【如何云同步一个本地项目】 UnityHub的项目面板中有两个选项卡:项目和云端项目。 鼠标挪动到想要云同步…

web基础及http协议 (二)----------Apache相关配置与优化

一、httpd 安装组成 http 服务基于 C/S 结构 1 .常见http 服务器程序 httpd apache,存在C10K(10K connections)问题 nginx 解决C10K问题lighttpd IIS .asp 应用程序服务器 tomcat .jsp 应用程序服务器 jetty 开源的servlet容器&#xf…

Springboot+Vue为技术栈的低代码平台“JNPF”

目录 1.什么是JNPF 2.设计原理 3.自动化解决方案 4.平台亮点展示 5.总结 如果你有软件开发的需求,推荐你使用以Vue为技术栈的低代码JNPF。 这款低代码和市面上的其他低代码区别很大的,相较于轻流、简道云、轻宜搭、微搭、帆软、活字格等等&#xff…

Spring 类型转换、数值绑定与验证(二)—PropertyEditor与Conversion

Spring 中,属性类型转换是在将数值绑定到目标对象时完成的。例如在创建ApplicationContext 容器时,将XML配置的bean 转换成Java类型对象,主要是借助了PropertyEditor类,而在Spring MVC 的Controller的请求参数转化为特定类型时&am…

[力扣 Hot100]Day33 排序链表

题目描述 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 出处 思路 归并排序即可。 代码 class Solution { public:ListNode* merge(ListNode *h1,ListNode *h2) {ListNode *head nullptr;if(h1->val<h2->val){head h1;h1h1-…

Python代码实现2024年刘谦春晚魔术

import randomdef main():# 扑克牌随机抽取4张牌playingCards [A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K]cardTackA []for i in range(4):k random.choice(playingCards)cardTackA.append(k)# 将抽取的4张牌随机打乱cnt 0while cnt < 100:random.shuffle(cardTackA)cnt …

中国AIGC技术与应用,发展峰会来啦!

随着技术的快速发展&#xff0c;AIGC正高歌猛进&#xff0c;已经成为推动创新、重塑行业边界的关键力量。AIGC技术利用人工智能算法&#xff0c;如自然语言处理&#xff08;NLP&#xff09;和深度学习模型&#xff0c;自动化地生成文字、图片、视频和音频等内容&#xff0c;这些…

Java对象内存图和垃圾回收

多个对象的内存图 两个变量指向同一个对象内存图 垃圾回收 ⚫ 注意&#xff1a;当堆内存中的 类对象 或 数组对象 &#xff0c;没有被任何变量引用&#xff08;指向&#xff09;时&#xff0c;就会被判定为内存中的 “垃圾”。 ⚫ Java存在自动垃圾回收器&#xff0c;会定…

RF 框架实现企业级 UI 自动化测试

RobotFramework 框架可以作为公司要做自动化 但是又不会代码的一种临时和紧急情况的替代方案&#xff0c;上手简单。 前言 现在大家去找工作&#xff0c;反馈回来的基本上自动化测试都是刚需&#xff01;没有自动化测试技能&#xff0c;纯手工测试基本没有什么市场。 但是很多…

ChatGPT在数据分析岗位了解阶段的应用

ChatGPT在数据分析岗位了解阶段的应用 ​ 1.1 数据分析师的职责与技能要求 ​ 如果想成为数据分析师&#xff0c;首先要了解这个岗位的具体职责和技能要求。这个问题可以直接询问ChatGPT&#xff1a; ​ ChatGPT收到上述内容后&#xff0c;返回如下结果。 ​ ChatGPT给出的信…

本地配置多个git账户及ll设置

本地配置多个git账户 清除全局配置将命令行&#xff0c;切换到ssh目录生成GitLab和Gitee的公钥、私钥去对应的代码仓库添加 SSH Keys添加私钥ll设置 管理密钥验证仓库配置关于gitgitee.com: Permission denied (publickey) 清除全局配置 此步骤可以不做&#xff0c;经测试不影…

mysql优化指南之优化篇

二、优化 现在的理解数据库优化有四个维度&#xff0c;分别是&#xff1a; 硬件升级、系统配置、表结构设计、SQL语句及索引。 那优化的成本和效果分别如下&#xff1a; 优化成本&#xff1a;硬件升级>系统配置>表结构设计>SQL语句及索引。 优化效果&#xff1a;…