Red de conocimiento informático - Conocimiento informático - Para STM32, ¿por qué GPIOA-gt;CRHamp;=0X0F0FFFFF; significa que PA13, 15 están configurados como entrada? ¡Espere en línea!

Para STM32, ¿por qué GPIOA-gt;CRHamp;=0X0F0FFFFF; significa que PA13, 15 están configurados como entrada? ¡Espere en línea!

Lea atentamente el manual, este es un pasaje que cité, que debería ayudarlo a comprender ~~

El valor de reinicio del registro de configuración baja del puerto es 0X4444 4444. El valor de reinicio en realidad configura el puerto como flotante. La CRL de entrada STM32 controla el modo de los 8 bits inferiores de cada puerto IO (A ~ G). Los bits de cada puerto IO ocupan 4 bits de CRL, de los cuales los 2 bits altos son CNF y los 2 bits bajos son MODE. Aquí podemos recordar varias configuraciones comunes, como 0X4 que indica el modo de entrada analógica (para ADC), 0X3 que indica el modo de salida push-pull (para puerto de salida,

tasa de 50M), 0X8 representa el modo de entrada pull-up/pull-down (para el puerto de entrada), 0X8 representa el modo de entrada pull-up/pull-down (para el puerto de entrada), 0X8 representa el modo de entrada pull-up/pull-down (para el puerto de entrada) . (puerto de entrada), 0XB representa salida multiplexada (usando la segunda función

del puerto IO, velocidad de 50M).

La función de CRH es exactamente la misma que la de CRL, excepto que CRL controla el puerto de salida inferior de 8 bits, mientras que CRH controla el puerto de salida superior de 8

bits. No describiremos CRH en detalle aquí.

Por ejemplo, supongamos que queremos configurar el bit 11 de PORTC como entrada pull-up y el bit 12 como salida push-pull. El código es el siguiente:

GPIOA-gt; CRHamp; =0XFFFFFFF0;

GPIOA-gt; CRH|=0X00000003 // Salida push-pull de PA8

GPIOA- gt;ODR|=1lt;lt;8;

//PA8 produce un nivel alto

Entonces hazlo de nuevo:

GPIOC-gt ;CRHamp;= 0XFFF00FFF //Borrar la configuración original de estos 2 bits sin afectar la configuración de otros bits

GPIOC-gt;=0X00038000 //Entrada PC11, salida PC12

GPIOC- gt; ODR=1lt; lt; //PC11 pull-up

A través de la configuración de estas tres oraciones, configuramos PC11 como entrada pull-up y PC12 como entrada. -tirar de salida