硬件外设使用方法——GPIO

这篇具有很好参考价值的文章主要介绍了硬件外设使用方法——GPIO。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

经过与硬件群的小伙伴商量,决定直接找个板子讲实战了- -。

本部分内容为视频内容补充。外设基本使用方法+pyb(STM32)+machine(micropython通用。)


GPIO基本概念

GPIO是General Purpose Input/Output的缩写,意思是通用输入/输出。它是一种可以通过软件控制的电子接口,可实现与其他硬件设备的连接和交互。

在树莓派、Arduino等单板电脑中,GPIO常被用于连接各种传感器、执行器、LED灯等外部设备,使得这些设备可以和计算机进行通讯和交互。

通过编写程序,可以实现对GPIO的读写操作,实现各种功能。

GPIO应用

GPIO可以应用在很多方面,例如:

  1. 控制LED灯:通过将GPIO引脚设置为输出模式,并对其进行控制,可以实现对连接在GPIO上的LED灯的开关。

  2. 连接传感器:树莓派和Arduino等单板电脑常常用GPIO来读取温度、湿度、气压等传感器的数据。

  3. 控制电机:电机通常需要连接到GPIO引脚上使用单片机或芯片内部PWM输出的信号来控制转速、方向等参数。

  4. 控制舵机:舵机可以通过PWM信号控制角度,因此也可以将GPIO引脚设置为PWM输出,并连接到舵机控制线上进行控制。

  5. 控制继电器:GPIO引脚还可以控制继电器,用于控制家电、电机等高电流负载的开关操作。

GPIO的应用范围很广,可以用于控制各种外接设备,是单片机和嵌入式系统中不可缺少的一个模块。下面是一个GPIO基本结构图。
硬件外设使用方法——GPIO,AI知识专题,单片机,stm32,嵌入式硬件

pyb与micropython

总有小伙伴分不清pyb和micropython,这里简单说一下啊

什么是pyb

Pyboard(pyb)是一个MicroPython的开发板,它提供了一个基于Python的快速原型设计平台,使得使用Python语言来开发嵌入式系统更加容易。

Pyboard基于ARM® Cortex®-M4处理器,具有高速存储器和实时时钟,同时内置有各种外设(例如LED、USB、UART、SPI、I2C等),可以快速构建各种具有交互性的嵌入式系统。
Pyboard还支持通过wifi进行网络通信,使得连接其他设备变得更加容易。

什么是micropython

MicroPython是一种适用于微控制器的Python3解释器,它支持在资源受限的嵌入式设备上运行

Python代码。MicroPython由德国裔澳洲人Damien George发起开发,旨在为硬件爱好者、物联网应用开发人员、科研工作者、教育界等提供一个简单易用的嵌入式开发平台。
除了标准的Python语法和库外,MicroPython还提供了一些针对嵌入式设备的专用库和功能,例如控制GPIO、I2C、SPI、ADC等硬件接口。
并且,由于使用的是Python语言,使得从桌面应用程序的开发跨越到嵌入式设备的开发更加容易。与其他嵌入式开发平台相比,MicroPython在开发效率和代码可读性方面拥有明显的优势。

pyb与micropython关系

Pyboard(pyb)是MicroPython的一种开发板,它提供了一个硬件平台,可以在上面运行MicroPython解释器,并使用Python语言进行嵌入式开发。

Pyboard为MicroPython提供了高性能的ARM Cortex-M4处理器,以及与嵌入式开发相关的硬件接口,例如GPIO、UART、SPI、I2C等。使用Pyboard可以轻松地利用MicroPython解释器和硬件接口快速开发各种嵌入式应用程序。
同时,在Pyboard上运行的MicroPython解释器也可以在其他支持MicroPython的嵌入式设备上运行,使得MicroPython成为一个通用的嵌入式系统开发工具。因此,可以说Pyboard是MicroPython的一种实现方式,提供了一个方便的开发硬件平台,来支持使用Python语言进行嵌入式开发。

GPIO在micropython中的用法

这里主要是pyb库,和machine库。两种方式都列举一下。买板子的时候注意板子支持哪一个。

什么是pyb库

Pyb库是MicroPython中的一个标准库,是为了更方便地访问Pyboard硬件而开发的。Pyboard是MicroPython官方推出的开发板,而Pyb库则提供了一系列针对该开发板的API函数,可以简化对各种硬件模块(如GPIO、I2C、SPI、串口等)的操作。

Pyb库的主要特点包括:

  1. 简单易用:Pyb库提供了简单易用的API函数,使用户能够轻松地访问Pyboard硬件。

  2. 全面支持Pyboard:Pyb库支持大部分Pyboard硬件资源,包括GPIO、ADC、DAC、I2C、SPI、PWM、定时器、U(S)ART等。

  3. 可扩展性:Pyb库允许用户编写自定义的驱动程序来扩展其功能,从而满足更多的应用需求。

使用Pyb库能够很方便地在MicroPython中控制外设硬件,并且代码能够在Pyboard上直接运行。这样既节省了开发时间,又提高了代码的可读性和可维护性。

关系图如下:
硬件外设使用方法——GPIO,AI知识专题,单片机,stm32,嵌入式硬件

pyb库中的GPIO用法

详细用法 咸鱼Micropython—GPIO 可以不看,本篇内容仅了解概念即可。还得看实战。

pyb.Pin()是MicroPython中的一个模块,用于控制单片机的引脚,与machine.Pin()类似。但pyb.Pin()主要用于控制嵌入式板载设备上与Pyboard硬件相关的引脚。

该函数的语法如下:

pyb.Pin(id, mode=-1, pull=None, *, drive=None)

其中,

  1. 参数id表示引脚编号,可以是数字或字符串类型;
  2. 参数mode表示设置引脚工作模式,可选值有pyb.Pin.IN(输入模式)、pyb.Pin.OUT_PP(推挽输出模式)、pyb.Pin.OUT_OD(开漏输出模式)等;
  3. 参数pull表示设置引脚上拉或下拉电阻,可选值有pyb.Pin.PULL_UP(上拉电阻)、pyb.Pin.PULL_DOWN(下拉电阻)和None(不使用上下拉电阻);参数drive表示设置引脚驱动能力(即能够输出的最大电流),可选值有pyb.Pin.LOW_POWERpyb.Pin.MED_POWERpyb.Pin.HIGH_POWER

例如,以下代码将与Pyboard硬件相关的LED引脚(即绿色LED)设置为输出模式,同时将引脚电平设置为低电平:

import pyb

led = pyb.Pin('LED_GREEN', pyb.Pin.OUT_PP)  # 将绿色LED引脚设置为推挽输出模式

led.low()  # 将绿色LED引脚电平设置为低电平

这样操作后,绿色LED将被关闭。如果需要将引脚设置为高电平,可以使用以下代码:

import pyb

led = pyb.Pin('LED_GREEN', pyb.Pin.OUT_PP)  # 将绿色LED引脚设置为推挽输出模式

led.high()  # 将绿色LED引脚电平设置为高电平

micropython下的GPIO用法

machine.Pin()是MicroPython中的一个模块,用于控制单片机的引脚,包括输入输出模式、设置引脚电平等。

该函数的语法如下:

machine.Pin(id, mode=-1, pull=None, *, value)

其中,

  1. 参数id表示引脚编号,可以是数字或字符串类型;参数mode表示设置引脚工作模式,可选值有machine.Pin.IN(输入模式)、machine.Pin.OUT(输出模式)、machine.Pin.OPEN_DRAIN(开漏模式)等;
  2. 参数pull表示设置引脚上拉或下拉电阻,可选值有machine.Pin.PULL_UP(上拉电阻)、machine.Pin.PULL_DOWN(下拉电阻)和None(不使用上下拉电阻);
  3. 参数value表示设置引脚电平,仅在mode为输出模式时有效,可选值有0(低电平)和1(高电平)。

例如,以下代码将D1引脚设置为输出模式,同时将引脚电平设置为高电平:

import machine

pin = machine.Pin(5, machine.Pin.OUT, value=1)  # 将D1引脚设置为输出模式,初始电平为高电平

这样操作后,D1引脚将输出高电平。如果需要将引脚设置为低电平,可以使用以下代码:

import machine

# 将D1引脚设置为输出模式,初始电平为高电平
pin = machine.Pin(5, machine.Pin.OUT, value=1)

# 将引脚电平设置为低电平
pin.value(0)

提醒:买开发时注意支不支持pyb。文章来源地址https://www.toymoban.com/news/detail-685653.html

到了这里,关于硬件外设使用方法——GPIO的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 帝国CMS专题调用标签eshowzt不支持标签模板使用程序代码的解决方法

    本文讲述了帝国CMS专题调用标签eshowzt不支持标签模板使用程序代码的解决方法。涉及针对帝国CMS源码的修改。分享给大家供大家参考,具体如下: 一、问题: 在项目开发中需要在首页调用专题,且专题增加了“专题自定义字段”:副标题(ftitle),需要在栏目名调用出比较

    2023年04月20日
    浏览(27)
  • zlmediakit 新增可以使用硬件加速的转码http api接口方法

    根据项目需求,我们需要使用硬件解码的方式进行网络摄像头数据帧的解析,给到算法模块使用 1、通过ffmpeg命令实验,ffmpeg -i IPC_URL -f rtsp rtsp://*/live 该命令默认是使用cpu进行解码的,我们需要使用GPU进行解码。 2、ffmpeg硬件加速,这个需要安装相关的驱动,并且在编译ffmp

    2024年02月04日
    浏览(35)
  • 【硬件外设使用】——SPI

    SPI是一种串行端口通信接口,它是一种同步的全双工协议,用于在数字电路之间传输数据。SPI代表串行外设接口,是一种非常流行的数字通讯接口,特别适合在嵌入式系统和单片机上使用。 SPI总线由以下几个主要部分组成: 主设备:主设备通常是芯片、微控制器或单片机,

    2024年02月11日
    浏览(32)
  • 【硬件外设使用】——UART

    UART全称为Universal Asynchronous Receiver/Transmitter,是通过异步(Asynchronous)方式传输数据的一个串行通信协议 。UART可以实现点对点的全双工通信,即发送方和接收方可以同时发送和接收数据。 UART常见于嵌入式系统、计算机外设、通讯设备等领域。 UART的特点是无需传输时钟信号

    2024年02月11日
    浏览(35)
  • 【滤波专题-第7篇】“类EMD”算法分解后要怎样使用(3)——EMD降噪方法及MATLAB代码实现

    使用EMD分解(以及其他“类EMD”分解方法,以下为了简便统称EMD)做信号降噪,是EMD的一个比较重要的应用方向。EMD可以将复杂的信号分解为一系列的固有模态函数(IMFs),每一个IMF都包含了信号的一部分频率信息。在信号降噪的过程中,如何选择和筛选IMFs是关键步骤之一

    2024年02月16日
    浏览(30)
  • 一个简单的HAL库STM32使用DMA+硬件IIC驱动0.96寸OLED的方法

    自己在刚入坑嵌入式的时候,加入学校科协的一道免试题是开发一个简易的示波器,当时萌新不会做,中间又在准备比赛没时间,最近帮女朋友做课设需要做一个简易的交流电压表,而且终于有空做一下自己感兴趣的项目了,就想到了之前想做有没得做的一个简易示波器。

    2024年02月19日
    浏览(34)
  • python 面向对象的概念及使用方法~(基础小知识)

    编程语言中,一般有两种编程思维,面向过程和面向对象。 面向过程,看重的是解决问题的过程。 这好比我们解决日常生活问题差不多,分析解决问题的步骤,然后一步一步的解决。 而面向对象是一种抽象,抽象是指用分类的眼光去看世界的一种方法。 Python 就是一门面向

    2024年02月06日
    浏览(41)
  • 超强AI绘画Midjourney使用方法

    手把手教你入门绘图超强的AI绘画程序Midjourney,用户只需要输入一段图片的文字描述,即可生成精美的绘画。下面是Midjourney注册和使用的方法。 第一步: 先注册一个 Discord 账号 https://discord.gg/ ,注册的时候要人机验证,按照流程走就可以了。 第二步: 登陆,输入刚注册的

    2023年04月10日
    浏览(29)
  • 使用AI自动生成文章的方法

    自动生成文章的方法可以分为两种:基于模板和基于机器学习。 基于模板的自动生成文章方法是先制定好文章的模板,然后通过填充模板中的空白部分来生成文章。 这种方法不需要依赖大量的数据和复杂的算法,只需要人工设计好模板,然后通过简单的程序实现即可。 基于

    2024年02月11日
    浏览(33)
  • ai写作工具使用方法?我来教你几招

    今天来给大家聊一聊一个神奇的东西!那就是ai智能文案自动生成软件,它们可是能让你的文案轻松脱颖而出的秘密武器! 不管是要写广告词,还是要撰写推销文案,ai智能文案自动生成软件可以在短时间内为你匠心独运地创作出独特的作品。 这个软件正如一位文字小达人,

    2024年01月19日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包