GPIO的使用--点亮外接小灯泡--开关控制

news2024/12/26 12:53:37

目录

一、确定引脚接线模式

接线时注意以下几点:

二、外接小灯泡引脚连接(以F12引脚为例)

1.正极接GPIOF3.3v电压引脚、负极接F12

2.正极接GPIOF3.3v电压引脚、负极接F12

三、问题检查


一、确定引脚接线模式

小灯泡有两级:正极、负极,电流只能从正极流向负极。

接线时注意以下几点:

1.若要USB接口提供电源,则正极接F组引脚,负极接地;输出模式配推挽

gpio_init.GPIO_OType=GPIO_OType_PP;

2.若要板子芯片提供电源,则正极接3.3v电压,负极接引脚;输出模式配开漏

gpio_init.GPIO_OType=GPIO_OType_OD;

二、外接小灯泡引脚连接(以F12引脚为例)

1.正极接GPIOF3.3v电压引脚、负极接F12

#include "stm32f4xx.h"                  // Device header
#include "led.h"
#include "key.h"
#include "BitBand.h"

int main()
{
	Led_Init();
	Key_Init();
	uint8_t key=0;

	//此处为F12引脚的参数配置
	GPIO_InitTypeDef gpio_init;
	//五大参数配置
	gpio_init.GPIO_Mode=GPIO_Mode_OUT;
    //此处可以设置为开漏,引脚正极已经接芯片3.3v电压,只需提供低电压选择开漏即可
	gpio_init.GPIO_OType=GPIO_OType_OD;
	gpio_init.GPIO_Pin=GPIO_Pin_12;
	gpio_init.GPIO_PuPd=GPIO_PuPd_UP;
	gpio_init.GPIO_Speed=GPIO_High_Speed;
	//初始化
	GPIO_Init(GPIOF,&gpio_init);

	while(1)
	{
        //类似PEin();PFout();函数在上一篇文章中已被封装
		key=PEin(4);

		if(key==0)
		{
			PFout(9)=0;
			PFout(10)=0;
			PFout(12)=0;
		    PFout(14)=0;
        }
		else
		{
			PFout(9)=1;
			PFout(10)=1;
			PFout(12)=1;
			PFout(14)=1;
        }
	}
}

结果:

开关控制外接小灯泡1

2.正极接GPIOF3.3v电压引脚、负极接F12

#include "stm32f4xx.h"                  // Device header
#include "led.h"
#include "key.h"
#include "BitBand.h"

int main()
{
	Led_Init();
	Key_Init();
	uint8_t key=0;

	//此处为F12引脚的参数配置
	GPIO_InitTypeDef gpio_init;
	//五大参数配置
	gpio_init.GPIO_Mode=GPIO_Mode_OUT;
    //此处必须配置为推挽,因为负极引脚接地,只能使用推挽提供高电压
	gpio_init.GPIO_OType=GPIO_OType_PP;
	gpio_init.GPIO_Pin=GPIO_Pin_12;
	gpio_init.GPIO_PuPd=GPIO_PuPd_UP;
	gpio_init.GPIO_Speed=GPIO_High_Speed;
	//初始化
	GPIO_Init(GPIOF,&gpio_init);

	while(1)
	{
		key=PEin(4);

		if(key==0)
		{
			PFout(9)=0;
			PFout(10)=0;
			PFout(12)=0;
		    PFout(14)=0;
        }
		else
		{
			PFout(9)=1;
			PFout(10)=1;
			PFout(12)=1;
			PFout(14)=1;
        }
	}
}

结果:

开关控制外接小灯泡2

三、问题检查

如若灯泡不亮,请按照如下注意点检查一下

1.检查正负极接法。千万不可犯正极接地、负极接电源这种低级错误。

2.检查输出模式配置。如若正极接引脚,负极接地,但是输出模式设为了开漏,那就没法提供高电压了,小灯泡自然不亮。

3.代码电压赋值不对。好好检查代码的书写。

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

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

相关文章

春秋云镜:CVE-2022-28512

靶标介绍: Fantastic Blog (CMS)是一个绝对出色的博客/文章网络内容管理系统。它使您可以轻松地管理您的网站或博客,它为您提供了广泛的功能来定制您的博客以满足您的需求。它具有强大的功能,您无需接触任何代码即可启动并运行您的博客。 该…

决策树 算法原理

决策树 算法原理 决策树的原理 决策树: 从训练数据中学习得出一个树状结构的模型 决策树属于判别模型 决策树是一种树状结构,通过做出一系列决策 (选择) 来对数据进行划分,这类似于针对一系列问题进行选择。 决策树的决策过程就是从根节点开始&#…

JDK安装太麻烦?一篇文章搞定

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVMJava系统类库)和JAVA工具。 JDK包含的基本组件包括: javac – 编译器&#xf…

资深老鸟整理,高级测试工程师应具备的能力...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、业务熟悉 熟悉…

JVM:双亲委派(未完结)

类加载 定义 一个java文件从编写代码到最终运行,必须要经历编译和类加载的过程,如下图(图源自b站视频up主“跟着Mic学架构”)。 编译就是把.java文件变成.class文件。类加载就是把.class文件加载到JVM内存中,得到一…

Android Framework 电池提醒相关Dialog熄屏消失的问题

记录一下花了三四天干一天就能完成的需求的傻事。 说在前头,这篇文章记录了电池提醒dialog相关,弹出dialog且熄屏再亮屏dialog不会消失的代码,这篇废话比较多,看正常代码直接跳到代码3。 故事背景 需求要求添加非法电池的弹窗&a…

继承 多态 拆箱装箱 128陷阱 枚举类

继承 在java里一个类只能继承一个类,但可以被多个类继承;c里一个类可以继承多个类; 子类可以使用父类的方法; 在java中,Object是所有类的父类; equals方法比较的是对象是否指向同一个地方,这个方…

【VTKWidgetRepresentation】第二期 vtkHandleRepresentation

很高兴在雪易的CSDN遇见你 ,给你糖糖 欢迎大家加入雪易社区-CSDN社区云 前言 本文系统分享vtkHandleRepresentation及其子类,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞关注,小易会继续努力分享,一起进步&am…

外包干了2个月,技术倒退2年。。。。。

先说一下自己的情况,本科生,20年通过校招进入深圳某软件公司,干了接近4年的功能测试,今年国庆,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

大家口口声声谈私域,到底是什么?

大家口口声声说的私域到底是什么? 私域不是流量,是留量。 那首先得知道私域和私域留量的概念。 私域是指企业或个人在自有平台上建立的用户群体和资源,如自己的网站、APP、微信公众号、微博账号等。这些用户群体和资源不受外部平台的控制和限…

PyQt6 QListWidget列表控件

​锋哥原创的PyQt6视频教程: 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计35条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话…

不会代码(零基础)学语音开发(跟我一起开始吧)

这款语音开发板,性价比非常高,集成了多种外设,包括180度数码舵机、双直流电机、双继电器、电位器、红外寻迹/接近传感器等等语音开发能用到的外部设备,构建了最为完善的语音开发环境。这样我们通过一个小小的开发板,就…

KNN算法实战-健康医疗

健康医疗 算法建模 knn 算法建模构建微观数据和疾病之间的关系knn 调整超参数,准确率提升数据归一化、标准化,提升更加明显 算法实战 导入包 import numpy as np import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklea…

Python 潮流周刊#29:Rust 会比 Python 慢?!

△请给“Python猫”加星标 ,以免错过文章推送 你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。本周刊开源,欢迎投稿[1]。另有电报频道[2]作为副刊,补充发布更加丰富的资讯。 &#x1f43…

sagment-anything官方代码使用详解

文章目录 一. sagment-anything官方例程说明1. 结果显示函数说明2. SamAutomaticMaskGenerator对象(1) SamAutomaticMaskGenerator初始化参数 3. SamPredictor对象(1) 初始化参数(2) set_image()(3) predict() 二. SamPredictor流程说明1. 导入所需要的库2. 读取图像3. 加载模型…

QT之QString

QT之QString 添加容器 点击栅格布局 添加容器,进行栅格布局 布局总结:每一个模块放在一个Group中,排放完之后,进行栅格布局。多个Group进行并排时,先将各个模块进行栅格布局,然后都选中进行垂直布…

Python实现交易策略评价指标-夏普比率

1.夏普比率的定义 在投资的过程中,仅关注策略的收益率是不够的,同时还需要关注承受的风险,也就是收益风险比。 夏普比率正是这样一个指标,它表示承担单位的风险会产生多少超额收益。用数学公式描述就是: S h a r p R…

Java中三种定时任务总结(schedule,quartz,xxl-job)

目录 1、Spring框架的定时任务 2、Quartz Quartz的用法 3、xxl-job 3.1 docker 安装xxl-job 3.2 xxl-job编程测试 补充:Java中自带的定时任务调度 1. java.util.Timer和java.util.TimerTask 2. java.util.concurrent.Executors和java.util.concurrent.Sche…

TI 毫米波雷达器件中的自校准功能(TI文档)

摘要 TI 的毫米波雷达传感器包括一个内部处理器和硬件架构,支持自校准和监控。校准可确保在温度和工艺变化范围内维持雷达前端的性能。监控可以周期性测量射频/模拟性能参数并检测潜在故障。 本应用手册简要介绍了校准和监控机制,主要侧重于内部…

整数的立方和

系列文章目录 进阶的卡莎C++_睡觉觉觉得的博客-CSDN博客数1的个数_睡觉觉觉得的博客-CSDN博客双精度浮点数的输入输出_睡觉觉觉得的博客-CSDN博客足球联赛积分_睡觉觉觉得的博客-CSDN博客大减价(一级)_睡觉觉觉得的博客-CSDN博客小写字母的判断_睡觉觉觉得的博客-CSDN博客纸币(…