<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>STM32 on KnightLi Blog</title>
        <link>https://knightli.com/es/tags/stm32/</link>
        <description>Recent content in STM32 on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Tue, 18 Mar 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://knightli.com/es/tags/stm32/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Una explicación detallada de los 8 modos de entrada y salida de GPIO de STM32, PY32 y otros microcontroladores</title>
        <link>https://knightli.com/es/2025/03/18/stm32-py32-gpio-modes/</link>
        <pubDate>Tue, 18 Mar 2025 00:00:00 +0000</pubDate>
        
        <guid>https://knightli.com/es/2025/03/18/stm32-py32-gpio-modes/</guid>
        <description>&lt;h2 id=&#34;8-modos-de-entrada-y-salida-de-gpio&#34;&gt;8 modos de entrada y salida de GPIO
&lt;/h2&gt;&lt;p&gt;GPIO (entrada/salida de uso general) es uno de los periféricos comúnmente utilizados en los microcontroladores STM32 y se utiliza para conectar y controlar circuitos externos. Los pines GPIO se pueden utilizar como entrada (como entrada de señal para un sensor) o como salida (un controlador que controla un dispositivo externo)
En los microcontroladores STM32, hay ocho modos comunes de entrada y salida (GPIO), a saber, entrada flotante, entrada pull-up, entrada pull-down, entrada analógica, salida push-pull, salida de drenaje abierto, salida push-pull multiplexada y salida de drenaje abierto multiplexada.&lt;/p&gt;
&lt;h2 id=&#34;modo-de-entrada&#34;&gt;Modo de entrada
&lt;/h2&gt;&lt;h3 id=&#34;entrada-flotante-gpio_mode_in_floating&#34;&gt;Entrada flotante (GPIO_Mode_IN_FLOATING)
&lt;/h3&gt;&lt;p&gt;Entrada flotante: Flotante significa que el dispositivo lógico y el pin no están conectados a nivel alto o bajo. Debido a la estructura interna del dispositivo lógico, cuando su pin de entrada se deja flotando, equivale a que el pin se conecte a un nivel alto. En el uso real general, no se recomienda dejar el pasador flotando ya que es susceptible a interferencias. En términos sencillos, flotar significa flotar en el aire, lo que significa que este puerto no está conectado a nada de forma predeterminada y se encuentra en un estado de alta impedancia. Esta configuración se utiliza a menudo durante la transmisión de datos. La característica más importante de la flotación es la incertidumbre del voltaje. Puede ser 0V, puede ser VCC o puede ser un valor entre los dos (lo más probable). La flotación se usa generalmente para la entrada de ADC, lo que puede reducir el impacto de las resistencias pull-up y pull-down en los resultados.&lt;/p&gt;
&lt;p&gt;Características: El pin está en estado de alta impedancia, no está conectado a un circuito externo, mide el nivel de señal externa.&lt;br&gt;
Escenario de aplicación: el estado de recepción de señales externas, como entrada clave, entrada de sensor, etc.
&lt;img src=&#34;https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/1-1.webp&#34;
	width=&#34;3668&#34;
	height=&#34;2004&#34;
	srcset=&#34;https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/1-1_hu_f18ddbd2828c91d6.webp 480w, https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/1-1_hu_62dfbe61888e86c9.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;183&#34;
		data-flex-basis=&#34;439px&#34;
	
&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;// 初始化浮空输入模式的GPIO
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GPIO_InitStruct.Pin = GPIO_PIN_0;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GPIO_InitStruct.Mode = GPIO_MODE_INPUT;          // 浮空输入模式
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GPIO_InitStruct.Pull = GPIO_NOPULL;              // 不设置上拉或下拉
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;HAL_GPIO_Init(GPIOA, &amp;amp;GPIO_InitStruct);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;entrada-pull-up-gpio_mode_ipu&#34;&gt;Entrada pull-up (GPIO_Mode_IPU)
&lt;/h3&gt;&lt;p&gt;Ingrese al modo pull-up: Pull-up significa tirar del punto hacia arriba, como a Vcc. Pull-up consiste en fijar una señal incierta a un nivel alto a través de una resistencia. La resistencia también actúa como limitador de corriente. La diferencia entre débil y fuerte es solo el valor de resistencia de la resistencia pull-up, no existe una distinción estricta.
Características: Con resistencia pull-up interna, el nivel predeterminado del pin es nivel alto.&lt;br&gt;
Escenario de aplicación: Detecta cuando la señal externa es de bajo nivel, como al presionar un botón.&lt;br&gt;
&lt;img src=&#34;https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/2-1.webp&#34;
	width=&#34;3592&#34;
	height=&#34;1972&#34;
	srcset=&#34;https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/2-1_hu_f8a5265721434e3.webp 480w, https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/2-1_hu_677a45cdeffd1251.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;182&#34;
		data-flex-basis=&#34;437px&#34;
	
&gt;
&lt;strong&gt;MANTENER_1&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;menú-desplegable-de-entrada-gpio_mode_ipd&#34;&gt;Menú desplegable de entrada (GPIO_Mode_IPD)
&lt;/h3&gt;&lt;p&gt;Menú desplegable de entrada: significa bajar el voltaje a GND. Similar al principio de dominadas.
Características: Con resistencia desplegable interna, el nivel predeterminado del pin es de nivel bajo.&lt;br&gt;
Escenario de aplicación: Detecta cuando la señal externa es de alto nivel, como cuando se levanta el botón.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/3-1.webp&#34;
	width=&#34;3596&#34;
	height=&#34;1976&#34;
	srcset=&#34;https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/3-1_hu_6d3dd93703b23bf8.webp 480w, https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/3-1_hu_f18257eb84884c7d.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;181&#34;
		data-flex-basis=&#34;436px&#34;
	
&gt;
&lt;strong&gt;MANTENER_2&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;entrada-analógica-gpio_mode_ain&#34;&gt;Entrada analógica (GPIO_Mode_AIN)
&lt;/h3&gt;&lt;p&gt;Entrada analógica: La entrada analógica se refiere a la entrada tradicional. La entrada digital es la entrada de la señal digital PCM, es decir, una señal digital binaria de 0,1. Se convierte en una señal analógica mediante conversión de digital a analógico y luego ingresa al amplificador de potencia mediante preamplificación. El amplificador de potencia sigue siendo analógico.&lt;br&gt;
Características: Se utiliza para recibir señales analógicas que cambian continuamente, generalmente se usa junto con ADC (convertidor analógico a digital).&lt;br&gt;
Escenario de aplicación: Mida cambios en señales analógicas, como señales de sensores y entradas de audio.&lt;br&gt;
&lt;img src=&#34;https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/4-1.webp&#34;
	width=&#34;3440&#34;
	height=&#34;2004&#34;
	srcset=&#34;https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/4-1_hu_f24693b68952479a.webp 480w, https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/4-1_hu_ee5ee1d0d9b4eccd.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;171&#34;
		data-flex-basis=&#34;411px&#34;
	
&gt;
&lt;strong&gt;MANTENER_3&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;modo-de-salida&#34;&gt;Modo de salida
&lt;/h2&gt;&lt;h3 id=&#34;abrir-salida-de-drenaje-gpio_mode_out_od&#34;&gt;Abrir salida de drenaje (GPIO_Mode_Out_OD)
&lt;/h3&gt;&lt;p&gt;Salida de drenaje abierto: el terminal de salida es equivalente al colector del transistor. Para obtener un estado de alto nivel, se requiere una resistencia pull-up. Es adecuado para conducción de tipo actual. Su capacidad para absorber corriente es relativamente fuerte (generalmente dentro de 20 mA).&lt;/p&gt;
&lt;p&gt;Los circuitos de drenaje abierto tienen las siguientes características:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Utilice la capacidad de conducción del circuito externo para reducir la conducción interna del IC. Cuando el MOSFET interno del IC está encendido, la corriente del variador fluye desde el VCC externo a través del pull-up R, MOSFET a GND. Sólo se requiere una corriente de accionamiento de puerta muy alta dentro del IC.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;En términos generales, el drenaje abierto se utiliza para conectar dispositivos de diferentes niveles y combinar niveles. Porque el pin de drenaje abierto solo puede generar un nivel bajo cuando no está conectado a una resistencia pull-up externa. Si necesita tener la función de generar un nivel alto al mismo tiempo, necesita conectar una resistencia pull-up. Una buena ventaja es que el nivel de transmisión se puede cambiar cambiando el voltaje de la fuente de alimentación pull-up. Por ejemplo, agregar una resistencia pull-up puede proporcionar una salida de nivel TTL/CMOS, etc. (La resistencia de la resistencia pull-up determina la velocidad del borde de conversión de nivel lógico. Cuanto mayor es la resistencia, menor es la velocidad y menor es el consumo de energía. Por lo tanto, la selección de la resistencia de carga debe tener en cuenta tanto el consumo de energía como la velocidad).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;OPEN-DRAIN proporciona un método de salida flexible, pero también tiene su debilidad, que es el retraso del flanco ascendente. Debido a que el flanco ascendente carga la carga a través de una resistencia pasiva pull-up externa, cuando se selecciona la resistencia pequeña, el retraso es pequeño, pero el consumo de energía es grande; por el contrario, cuando el retraso es grande, el consumo de energía es pequeño. Por lo tanto, si existen requisitos de retraso, se recomienda utilizar salida de flanco descendente.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Se pueden conectar varios pines de salida de drenaje abierto a una línea. A través de una resistencia pull-up, se forma una relación &amp;ldquo;lógica Y&amp;rdquo; sin agregar ningún dispositivo. Este es también el principio para que autobuses como I2C y SMBus determinen el estado de ocupación del autobús. Suplemento: ¿Qué es la &amp;ldquo;línea Y&amp;rdquo;?:&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;En un nodo (línea), conecte una resistencia pull-up a la fuente de alimentación VCC o VDD y al colector C o drenaje D de n transistores NPN o NMOS. El emisor E o la fuente S de estos transistores están todos conectados a la línea de tierra. Mientras un transistor esté saturado, este nodo (línea) será llevado al nivel del suelo. Debido a que la base de estos transistores inyecta corriente (NPN) o la puerta agrega un nivel alto (NMOS), el transistor se saturará. Por lo tanto, la relación entre estas bases o puertas y este nodo (línea) es lógica NOR. Si se agrega un inversor detrás de este nodo, es lógica O.&lt;/p&gt;
&lt;p&gt;De hecho, puede entenderse simplemente como: cuando todos los pines están conectados entre sí, se conecta una resistencia pull-up externa. Si un pin genera un 0 lógico, es equivalente a conexión a tierra, y el circuito conectado en paralelo con él es &amp;ldquo;equivalente a un cortocircuito con un cable&amp;rdquo;, por lo que el nivel lógico del circuito externo es 0. Solo cuando todos están altos, el resultado del AND es 1 lógico.&lt;/p&gt;
&lt;p&gt;Características: Solo puede generar un nivel bajo y requiere una resistencia pull-up externa para elevar el pin; Tiene ciertas capacidades de conducción.&lt;br&gt;
Escenario de aplicación: cuando se conecta a dispositivos externos, como el bus I2C, se utiliza para comunicarse con otros dispositivos.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/5-1.webp&#34;
	width=&#34;3596&#34;
	height=&#34;1976&#34;
	srcset=&#34;https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/5-1_hu_76ecad8b89653dd0.webp 480w, https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/5-1_hu_54ffd4e2322724ec.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;181&#34;
		data-flex-basis=&#34;436px&#34;
	
&gt;
&lt;strong&gt;MANTENER_4&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;función-de-multiplexación-de-drenaje-abierto-gpio_mode_af_od&#34;&gt;Función de multiplexación de drenaje abierto (GPIO_Mode_AF_OD)
&lt;/h3&gt;&lt;p&gt;Función de multiplexación de drenaje abierto: puede entenderse como la situación de configuración cuando el puerto GPIO se usa como una segunda función (es decir, no se usa como un puerto IO de uso general). El puerto debe configurarse en modo de salida de función alternativa (push-pull o drenaje abierto)&lt;/p&gt;
&lt;p&gt;Características: Tiene características de salida de drenaje abierto, que se pueden utilizar para utilizar pines GPIO como funciones de periféricos específicos.&lt;br&gt;
Escenario de aplicación: pines de funciones especiales conectados a periféricos, como pines de comunicación del bus I2C, salida de señal de falla, etc.
&lt;img src=&#34;https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/6-1.webp&#34;
	width=&#34;3424&#34;
	height=&#34;2004&#34;
	srcset=&#34;https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/6-1_hu_c49c003fa4bd2db2.webp 480w, https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/6-1_hu_e73757e3115b8aa8.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;170&#34;
		data-flex-basis=&#34;410px&#34;
	
&gt;
&lt;strong&gt;MANTENER_5&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;salida-push-pull-gpio_mode_out_pp&#34;&gt;Salida push-pull (GPIO_Mode_Out_PP)
&lt;/h3&gt;&lt;p&gt;Salida push-pull: puede generar niveles altos y bajos y conectarse a dispositivos digitales; la estructura push-pull generalmente significa que dos transistores están controlados por señales complementarias y el otro transistor siempre se apaga cuando un transistor está encendido. Los niveles alto y bajo están determinados por la fuente de alimentación del IC.&lt;/p&gt;
&lt;p&gt;El circuito push-pull consta de dos transistores o MOSFET con los mismos parámetros. Existen en el circuito en modo push-pull. Cada uno es responsable de la tarea de forma de onda de los semiciclos positivo y negativo. Cuando el circuito está funcionando, sólo uno de los dos tubos del interruptor de alimentación simétrico se enciende a la vez, por lo que la pérdida de conducción es pequeña y la eficiencia es alta. La salida puede absorber corriente en la carga. La etapa de salida push-pull no solo aumenta la capacidad de carga del circuito, sino que también aumenta la velocidad de conmutación.&lt;/p&gt;
&lt;p&gt;Características: Puede generar niveles altos y bajos y tiene ciertas capacidades de conducción.&lt;br&gt;
Escenario de aplicación: se utiliza para controlar circuitos externos, como controlar luces LED, controlar otros circuitos lógicos, etc.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/7-1.webp&#34;
	width=&#34;3596&#34;
	height=&#34;1972&#34;
	srcset=&#34;https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/7-1_hu_3f13bcce80afb1a5.webp 480w, https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/7-1_hu_878c98673d517904.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;182&#34;
		data-flex-basis=&#34;437px&#34;
	
&gt;
&lt;strong&gt;MANTENER_6&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;función-de-multiplexación-push-pull-gpio_mode_af_pp&#34;&gt;Función de multiplexación push-pull (GPIO_Mode_AF_PP)
&lt;/h3&gt;&lt;p&gt;Función de multiplexación push-pull: puede entenderse como la situación de configuración cuando el puerto GPIO se usa como una segunda función (no se usa como un puerto IO general)&lt;/p&gt;
&lt;p&gt;Características: Tiene características de salida push-pull y se puede utilizar para utilizar pines GPIO como funciones de periféricos específicos.&lt;br&gt;
Escenario de aplicación: conéctese a pines de funciones especiales de periféricos, como pines de comunicación serie UART, salida PWM, etc.
&lt;img src=&#34;https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/8-1.webp&#34;
	width=&#34;3424&#34;
	height=&#34;2004&#34;
	srcset=&#34;https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/8-1_hu_44a75836fa7fcb2.webp 480w, https://knightli.com/2025/03/18/gpio%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F/8-1_hu_d305901acad19263.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;170&#34;
		data-flex-basis=&#34;410px&#34;
	
&gt;
&lt;strong&gt;MANTENER_7&lt;/strong&gt;&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
