当前位置: 首页 > news >正文

嵌入式实验---实验一 通用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.lryc.cn/news/376937.html

相关文章:

  • 中国首例!「DataKit」上架亚马逊云科技 Marketplace add-ons
  • 【博士每天一篇文献-算法】Progressive Neural Networks
  • 深圳中小企业融资攻略,贷款方法大盘点!
  • Android的自启动
  • 开源VisualFbeditor中文版,vb7 IDE,VB6升级64位跨平台开发安卓APP,Linux程序
  • github安全问题token和sshkeys
  • 超详细的selenium使用指南
  • LogicFlow 学习笔记——1. 初步使用 LogicFlow
  • 场外个股期权通道业务是什么意思?
  • 分页插件结合collection标签后分页数量不准确的问题
  • git diff 命令
  • Code Review常用术语
  • HashMap 源码中的巧妙小技巧
  • 极具吸引力的小程序 UI 风格
  • 数据库 | 试卷五试卷六试卷七
  • 网页五子棋对战项目测试(selenium+Junit5)
  • stable diffusion 局部重绘 reference-only api 接口调试
  • 浪潮信息内存故障预警技术再升级 服务器稳定性再获提升
  • JWT整合Gateway实现鉴权(RSA与公私密钥工具类)
  • vue实现全屏screenfull-封装组件
  • 【LinkedList与链表】
  • 为数据安全护航,袋鼠云在数据分类分级上的探索实践
  • Spring 循环依赖详解
  • 项目经理真的不能太“拧巴”
  • 企业如何选择合适的CRM工具?除Salesforce之外的10大主流选择
  • 每年1-1.2万人毕业,男女比例约3:1,测绘工程的就业率如何
  • JimuReport 积木报表 v1.7.6 版本发布,免费的低代码报表
  • “灵活就业者“超两亿人 游戏开发者如何破局?
  • MySQL事务与存储引擎
  • 总是给数据库表字段设置默认值的好处