【江科大STM32单片机】day1点亮LED灯流水灯蜂鸣器

知识点

推挽模式:高-》低、低-》高电平都能驱动
开漏模式:只能低-》高电平能驱动,高电平相当于高阻态
GPIO_WriteBit 操作单个
GPIO_ResetBits 操作同组

3-2 led闪烁

配置相关驱动

USE_STDPERIPH_DRIVER
在这里插入图片描述

配置输出文件格式+debug配置slink+勾选闪存自动复位

在这里插入图片描述
在这里插入图片描述

添加批处理

点灯三个步骤

第一步使用RCC开启 GPIO的时钟
第二步使用GPIO_init函数初始化GPIO
第三步使用输入或者输出的函数控制GPIO口

使用APB2设备2控制各种GPIO外设

在这里插入图片描述

在这里插入图片描述

实验结果

运行备注灯泡结果
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;开启推挽模式低-》高正常
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;开启推挽模式小灯泡改为高电平转低电平不亮
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;开启开漏模式小灯泡改为高电平转低电平不亮
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;开启开漏模式低-》高正常
#include "stm32f10x.h" // Device header
#include "delay.h"
int main(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //推挽模式 0x10,最大输出速度为2MHzGPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;         //使用GPIOA外设0号引脚 ((uint16_t)0x0001)GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速度为50MHz
/**
*
*给GPIO配置结构体,初始化GPIO对象 给
*&GPIO_InitStructure 取地址
*
*/GPIO_Init(GPIOA,&GPIO_InitStructure); //给GPIO配置结构体,初始化GPIO对象 给while(1){GPIO_ResetBits(GPIOA,GPIO_Pin_0);Delay_ms(500);GPIO_ResetBits(GPIOA,GPIO_Pin_0);Delay_ms(500);GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);Delay_ms(500);GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);Delay_ms(500);GPIO_WriteBit(GPIOA,GPIO_Pin_0, (BitAction)0);Delay_ms(500);GPIO_WriteBit(GPIOA,GPIO_Pin_0, (BitAction)1);Delay_ms(500);}}

3-3流水灯

#include "stm32f10x.h" // Device header
#include "delay.h"
int main(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //推挽模式 0x10,最大输出速度为2MHzGPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;         //使用GPIOA所有引脚 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速度为50MHz
/**
*
*给GPIO配置结构体,初始化GPIO对象 给
*&GPIO_InitStructure 取地址
*
*/GPIO_Init(GPIOA,&GPIO_InitStructure); //给GPIO配置结构体,初始化GPIO对象 给while(1){GPIO_Write(GPIOA,~0x0001);//0000 0000 0000 0001Delay_ms(500);GPIO_Write(GPIOA,~0x0002);//0000 0000 0000 0010Delay_ms(500);GPIO_Write(GPIOA,~0x0004);//0000 0000 0000 0100Delay_ms(500);GPIO_Write(GPIOA,~0x0008);//0000 0000 0000 1000Delay_ms(500);GPIO_Write(GPIOA,~0x0010);//0000 0000 0001 0000Delay_ms(500);GPIO_Write(GPIOA,~0x0020);//0000 0000 0010 0000Delay_ms(500);GPIO_Write(GPIOA,~0x0040);//0000 0000 0100 0000Delay_ms(500);GPIO_Write(GPIOA,~0x0080);//0000 0000 1000 0000Delay_ms(500);}}

3-3蜂鸣器

#include "stm32f10x.h" // Device header
#include "delay.h"
int main(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//RCC_APB2Periph_GPIOBGPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //推挽模式 0x10,最大输出速度为2MHzGPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;         //使用GPIOA12引脚 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速度为50MHz
/**
*
*给GPIOB配置结构体,初始化GPIO对象 给
*&GPIO_InitStructure 取地址
*
*/GPIO_Init(GPIOB,&GPIO_InitStructure); //给GPIOB配置结构体,初始化GPIO对象 给while(1){GPIO_ResetBits(GPIOB,GPIO_Pin_12);//Delay_ms(100);GPIO_SetBits(GPIOB,GPIO_Pin_12);//		Delay_ms(100);}}

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

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

相关文章

华为认证 | HCIE自学通过率有多高?

01 什么是HCIE认证? HCIE(Huawei Certified ICT Expert 华为认证 ICT 专家)是华为认证体系中最高级别的 ICT 技术认证,表示通过认证的人具有ICT 领域专业知识和丰富实践经验。 02 HCIE考试可以自学吗? HCIE考试可以自…

Leetcode242.有效的字母异位词

文章目录 原题链接思路1(字符串排序后比较)代码1思路2(哈希表)代码2 原题链接 Leetcode242.有效的字母异位词 思路1(字符串排序后比较) t 是 s 的字母异位词 等价于 将 t 和 s 排序后,两个字符串…

基于Springboot的课程答疑系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的课程答疑系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&…

Python知识点(史上最全)

Python期末考试知识点(史上最全) python简介 Python是一种解释型语言 Python使用缩进对齐组织代码执行,所以没有缩进的代码,都会在载入时自动执行 数据类型:整形 int 无限大 浮点型 float…

小程序基础学习(组件化)

(一)创建 找到components文件夹下面创建新的文件夹 然后再文件夹内创建component格式的文件 创建后这样 我创建的是my-info的文件夹以及my-info的components文件,跟着普通的页面一样 (二) 注册组件 找到你需要使用组…

Android Debug Bridge(ADB)常用指令记录

ADB简介 Android Debug Bridge(ADB)是用于在计算机和 Android 设备之间进行通信和调试的命令行工具。它提供了一组命令,可以帮助执行各种与 Android 设备相关的操作,如安装应用程序、调试应用程序、访问设备的文件系统等。 下载…

392. 判定子序列

给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列&#…

轴承故障诊断系统的需求说明,仅供参考使用

项目名称:轴承故障诊断系统 项目目标 开发一个自动化系统,用于测试和诊断工业轴承的潜在故障。系统将通过分析从轴承收集的振动数据来检测异常模式,以预测故障并提供维护建议。 硬件需求 传感器:高精度振动传感器,…

微信小程序-----宿主环境(组件介绍和代码编写)

目录 前言 宿主环境简介 1. 什么是宿主环境 ​编辑 2.小程序的宿主环境 3. 小程序宿主环境包含的内容 一、通信模型 1. 通信的主体 2. 小程序的通信模型 二、运行机制 1.小程序启动的过程 2.页面渲染的过程 三、组件 常用的视图容器类组件 1.view 组件 2.scroll-…

RK3399平台入门到精通系列讲解(驱动篇)eventpoll结构体详解

🚀返回总目录 文章目录 一、eventpoll 结构体二 、epitem 结构体三、eppoll_entry 结构体eventpoll 结构体:eventpoll 结构体是 epoll 在内核中的核心结构epitem 结构体:epitem 结构体用于表示 epoll 实例中的事件项eppoll_entry 结构体:它的作用就是关联Socket等待队列中…

OpenXP(Windows Server 2003 RTM,NT 5.2.3790.0)构建指南

OpenXP(Windows Server 2003 RTM,NT 5.2.3790.0)构建指南 版本 11,最后更新于 2023 年 10 月 1 日 Discord |信使极客 注意 OpenXP(Windows Server 2003 RTM,NT 5.2.3790.0)构建指南 (rentry…

Leetcode16-有多少小于当前数字的数字(1365)

1、题目 给你一个数组 nums&#xff0c;对于其中每个元素 nums[i]&#xff0c;请你统计数组中比它小的所有数字的数目。 换而言之&#xff0c;对于每个 nums[i] 你必须计算出有效的 j 的数量&#xff0c;其中 j 满足 j ! i 且 nums[j] < nums[i] 。 以数组形式返回答案。…

MES数据采集在制造业的应用

MES设备数据采集的流程包括以下几个步骤&#xff1a; 1. 设备接入&#xff1a;将设备接入MES系统&#xff0c;建立设备与MES系统之间的连接。 2. 数据采集&#xff1a;通过传感器和采集器等设备&#xff0c;采集设备运行数据和状态信息。 3. 数据存储&#xff1a;将采集到的设…

【JaveWeb教程】(19) MySQL数据库开发之 MySQL数据库操作-DML 详细代码示例讲解

目录 3. 数据库操作-DML3.1 增加(insert)3.2 修改(update)3.3 删除(delete)3.4 总结 3. 数据库操作-DML DML英文全称是Data Manipulation Language(数据操作语言)&#xff0c;用来对数据库中表的数据记录进行增、删、改操作。 添加数据&#xff08;INSERT&#xff09;修改数据…

中央处理器CPU(1)----指令周期和微程序

前言&#xff1a;由于期末复习计算机组成效率太慢所以抽时间写一下文章总结一下思路&#xff0c;理解不是很深&#xff0c;欢迎各位不吝赐教。 由于时间不是很充分&#xff0c;所以有些考点由于我们不考试&#xff0c;一笔带过了。 我这是期末复习总结&#xff0c;不是考研知识…

vue.js环境在window和linux安装

nodei官网&#xff1a;https://nodejs.org/en/download/ 一.windows环境下安装vue 1&#xff1a;node安装 在node.js的官网上下载node的安装包&#xff0c;下载下来之间安装即可&#xff0c;在命令行输入 npm -vnode -v 如下表示安装成功 2&#xff1a;cnpm安装 npm inst…

Java并发(二十二)----wait notify的正确姿势

开始之前先看看&#xff0c;sleep(long n) 和 wait(long n) 的区别&#xff1a; 1) sleep 是 Thread 的静态方法&#xff0c;而 wait 是 Object 的方法 2) sleep 不需要强制和 synchronized 配合使用&#xff0c;但 wait 需要和 synchronized 一起用 3) sleep 在睡眠的同时&…

第十二章Session

第十二章Session 1.什么是Session2.Session的创建与获取3.session域中数据的存取4.Session超时的控制5.浏览器和session之间关联的技术内幕 1.什么是Session 注意&#xff1a;前面的Cookie是保存在客户端&#xff0c;而session是在服务端的 2.Session的创建与获取 这里Session…

让企业的招投标文件、生产工艺、流程配方、研发成果、公司计划、员工信息、客户信息等核心数据更安全。

PC端访问地址1&#xff1a;www.drhchina.com PC端访问地址2&#xff1a; https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee 全方位立体式防护  让数据泄密无处遁形 信息防泄漏是一项系统的整体部署工程&#xff0c;加密监控已成为多数企事业单…

微信小程序Burp抓包

方法有很多&#xff0c;工具也各有差异&#xff0c;主要是学代理流量的思路 Burp流量代理工具小程序 一、Burp证书导入 1、开启代理 开启浏览器的代理&#xff0c;火狐推荐FoxyProxy&#xff0c;Google推荐SwitchyOmega&#xff0c;设置代理为127.0.0.1:8080。 2、下载证书…