嵌入式实验---实验一 通用GPIO实验

一、实验目的

1、掌握STM32F103 GPIO程序设计流程;

2、熟悉STM32固件库的基本使用。

二、实验原理

1、通过按键实现:按键按下,LED点亮;按键释放,LED熄灭。

三、实验设备和器材

电脑、Keil uVision5软件、Proteus 8 Professional软件

四、实验内容和步骤

4.1 代码开发

按照书本中实验流程在Keil中完成GPIO实验的代码开发;

4.2 原理图设计

在Proteus中完成原理图的设计,如图1所示。

图1 GPIO实验原理图

五、实验记录和实验结果

5.1 实验效果记录(附照片即可)

5.2 实验效果说明

单击Proteus左下方的仿真运行图标后,工程仿真运行效果如上图所示,当按键BUTTON1弹起释放时,LED呈现黑色表示熄灭状态。当按键BUTTON1被按下时,LED被点亮变成黄色。

六、实验预习要求

  1. 实验前认真阅读本实验指导;
  2. 熟悉书本中相关操作及相关器件。
  3. 完成5.1和5.2内容。

七、思考题

1. GPIO常用的功能有哪些

  1. 数字输入:用于接收外部数字信号,例如传感器的数据、按钮的状态等。

  1. 数字输出:用于向外部设备发送数字信号,例如控制LED灯、驱动电机等。

  1. 模拟输入:有些GPIO引脚还具有模拟输入功能,可以接收模拟信号,例如模拟传感器的输出。

  1. 模拟输出:有些GPIO引脚还具有模拟输出功能,可以输出模拟信号,例如控制模拟电路中的某些参数。

  1. 中断控制:可以配置GPIO引脚触发中断,以便在外部事件发生时及时通知处理器。

  1. PWM输出:某些GPIO引脚支持脉冲宽度调制(PWM)输出,用于控制电机速度、调节背光亮度等应用。

  1. 串行通信:部分GPIO引脚还可以配置为串行通信接口,例如SPI、I2C、UART等。

2、使用GPIO引脚的配置流程

  1. 选择合适的硬件平台和开发环境:硬件平台可以是树莓派、Arduino、ESP8266/ESP32等。开发环境可能涉及到Arduino IDE、PlatformIO、树莓派的Raspbian系统等。

  1. 了解硬件的GPIO引脚分布:确定要使用的具体GPIO引脚编号。不同的平台和开发板可能有不同的引脚编号和功能分配,需要查阅相应的文档。

  1. 初始化GPIO引脚:在大多数情况下,需要初始化引脚,以确定它们是输入还是输出,以及它们的初始状态(高电平或低电平)。

  1. 配置引脚的输入输出模式:如果要将引脚配置为输入模式,通常需要设置输入电阻(上拉或下拉)。如果要将引脚配置为输出模式,通常需要设置输出电平(高或低)。

  1. 编写和加载代码:使用选定的编程语言(例如C/C++、Python等)编写控制GPIO引脚的程序。编译或解释代码,并将其加载到硬件平台中。

  1. 测试和调试:将程序加载到硬件平台后,通过连接到引脚的传感器、LED等外部设备来测试GPIO引脚的功能。如果有必要,进行调试以确保引脚按预期工作。

  1. 维护和更新:随着项目的发展,可能需要修改GPIO引脚的配置或功能。根据需要更新代码,并进行相关测试。

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

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

相关文章

清凉夏日运动新选择——气膜体育馆—轻空间

随着气温的不断攀升,夏天成为许多运动爱好者的挑战季节。炎热的天气不仅容易让人感到疲倦,更可能带来中暑等健康风险。然而,气膜体育馆的出现,为爱好运动的你提供了一个理想的避暑之地。气膜体育馆以其独特的结构和诸多优势&#…

【ARM】如何通过Keil MDK查看芯片的硬件信息

【更多软件使用问题请点击亿道电子官方网站】 1、文档目标: 解决在开发过程中对于开发项目所使用的的芯片的参数查看的问题 2、问题场景: 在项目开发过程中,经常需要对于芯片的时钟、寄存器或者一些硬件参数需要进行确认。大多数情况下是需…

【科研基础】通感一体化讲座

通信和感知在硬件结构上相似,高效地利用资源,实现相互的增益; 感知是基于不同的任务,比如

从零开始的<vue2项目脚手架>搭建:vite+vue2+eslint

前言 为了写 demo 或者研究某些问题,我经常需要新建空项目。每次搭建项目都要从头配置,很麻烦。所以我决定自己搭建一个项目初始化的脚手架(取名为 lily-cli)。 脚手架(scaffolding):创建项目时…

MaxWell实时监控Mysql并把数据写入到Kafka主题中

配置mysql 启用MySQL Binlog MySQL服务器的Binlog默认是未开启的,如需进行同步,需要先进行开启 修改MySQL配置文件/etc/my.cnf sudo vim/etc/my.cof 增加如下配置 注:MySQL Binlog模式 Statement-based:基于语句,…

通过sql语句直接导出excel文件

SELECT column1 as 名字 FROM your_table INTO OUTFILE /path/to/your_file.csv FIELDS TERMINATED BY , ENCLOSED BY " LINES TERMINATED BY \n 这里的注意事项是,INTO OUTFILE 这后面的路径需要通过下面的SQL查出来 show variables like %secure%; 操作步骤…

Windows桌面运维----第四天

1、U盘故障打不开: 操作方式:WinR打开运行,输入cmd确定,在(C:\Users\Administrator>)后输入chkdsk,空格,输入U盘盘符,例如F:/F,回车,等待修复完成。 2、…

密码学及其应用——为什么选择接近的质数因子对RSA加密算法不安全?

RSA加密算法是一种广泛使用的非对称加密算法,它的安全性依赖于大整数分解的难度。具体来说,RSA算法生成的公钥包含一个大整数N,这是两个大质数p和q的乘积。然而,如果这两个质数p和q太接近,则可以相对容易地对N进行因式…

汽车IVI中控开发入门及进阶(三十一):视频知识扫盲

有效的视频资源管理需要集成许多不同的底层技术,共同为用户提供给定应用程序的最佳体验。其中许多技术是从早期电视广播中使用的技术演变而来的。其他方法,如用于通过网络流式传输视频的压缩方法,相对较新且不断发展。 以下详细概述了与图形和视频处理和传输相关的一些基本…

初阶 《数组》 1. 一维数组的创建和初始化

1. 一维数组的创建和初始化 1.1 数组的创建 数组是一组相同类型元素的集合 数组的创建方式: type_t arr_name [const_n]; //type_t 是指数组的元素类型 //const_n 是一个常量表达式,用来指定数组的大小数组创建的实例: //代码1 int ar…

C#.Net筑基-类型系统②常见类型

01、结构体类型Struct 结构体 struct 是一种用户自定义的值类型,常用于定义一些简单(轻量)的数据结构。对于一些局部使用的数据结构,优先使用结构体,效率要高很多。 可以有构造函数,也可以没有。因此初始…

数据结构:4.1.1二叉搜素树及查找

静态查找:要找的集合的元素是不动的,主要是find操作,没有delete操作 动态查找:要查找的集合会经常发生插入删除的操作 静态查找的一个很好的方法就是二分查找 把数据直接放在树上 结点右子树的值>结点的值>结点左子树的…

昇思25天学习打卡营第1天|基本介绍及快速入门

1.第一天学习总体复盘 1)成功注册昇思大模型平台,并成功申请算力; 2)在jupyter环境下学习初学入门/初学教程的内容; 在基本介绍部分,快速撸了一边内容,有了一个基本的了解(没理解到位的计划采用…

Ansys Mechanical|学习方法

Ansys Mechanical是Ansys的旗舰产品之一,涉及的学科体系全面丰富,包括的力学分支主要有理论力学,振动理论,连续介质力学,固态力学,物理力学,爆炸力学及应用力学等。 在自媒体及数字经济飞速发展…

HTML(11)——CSS三大特性

CSS拥有三大特性&#xff0c;分别是&#xff1a;继承性&#xff0c;层叠性&#xff0c;优先级 继承性 说明&#xff1a;子级标签默认继承父级标签的文字控制属性。 如果子级自己有样式&#xff0c;则父级的属性不生效 例如&#xff1a; <style> body{ font-size:30px;…

[机器学习算法]决策树

1. 理解决策树的基本概念 决策树是一种监督学习算法&#xff0c;可以用于分类和回归任务。决策树通过一系列规则将数据划分为不同的类别或值。树的每个节点表示一个特征&#xff0c;节点之间的分支表示特征的可能取值&#xff0c;叶节点表示分类或回归结果。 2. 决策树的构建…

Python基础-引用参数、斐波那契数列、无极分类

1.引用参数的问题 &#xff08;1&#xff09;列表&#xff08;list&#xff09; 引用参数&#xff0c;传地址的参数&#xff0c;即list1会因list2修改而改变。 list1 [1,2,3,4] list2 list1 print(list1) list2[2] 1 print(list2) print(list1)非引用参数&#xff0c;不传…

Jenkins+K8s实现持续集成(一)

镜像仓库的搭建 docker run -d \--restartalways \--name registry \-p 5000:5000 \-v /root/devops/registry/data:/var/lib/registry \registry安装完之后&#xff0c;执行下面命令可以看到镜像仓库已经安装成功 docker ps 然后在浏览器上输入下面地址进行访问 http://ip:…

关于app爬虫的环境准备

摘要 有些数据需要在手机应用中才能查看&#xff0c;没有网页版&#xff0c;所以学习移动端的爬虫是有必要的。 手机系统分为安卓和苹果两大系统&#xff0c;本次讲解主要以安卓手机为例 有安卓手机的可以使用手机&#xff0c;没有的可以使用模拟器&#xff0c;本次以夜神模…

.net 奇葩问题调试经历之1——在红外相机获取温度时异常

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不仅仅是技术还有人心,人心不可测,海水不可量,唯有技术,才是深沉黑夜中的一座闪烁的灯塔序言 我们在研发中,经常除了造产品…