Preguntas comunes de la entrevista STM32

1. ¿Cuál es la diferencia entre STM32F1 y F4?

Diferentes núcleos: F1 es el núcleo de Cortex-M3, F4 es el núcleo de Cortex-M4; la
frecuencia principal es diferente: la frecuencia principal de F1 es de 72 MHz, la frecuencia principal de F4
es de 168 MHz
; el diseño es más rico y más potente que F1, como la velocidad de giro de GPIO, configuración de resistencia pull-up y pull-down, precisión ADC, etc.;
tamaño de memoria: SRAM interna F1 máximo 64K, F4 tiene 192K (112+64+16).

2. Introduce el modo GPIO

  • 1. Entrada analógica GPIO_MODE_AIN: la señal analógica del puerto de E/S (señal de voltaje, señal sin nivel) es una entrada analógica directa al módulo periférico en el chip.
  • 2. GPIO_MODE_IN_FLOATING Entrada flotante: el interruptor de resistencia pull-up y pull-down está desconectado, y la señal de entrada solo es filtrada por el disparador Schmitt antes de leerse.
  • 3. Entrada desplegable GPIO_MODE_IPD: igual que el pull-up, simplemente baje IO a un nivel bajo.
  • 4. Entrada pull-up GPIO_MODE_IPU: pull-up es llevar la señal incierta en el puerto IO a un nivel alto a través de una resistencia pull-up. La resistencia también actúa como un limitador de corriente.
  • 5. Salida de drenaje abierto GPIO-MODE_OUT_OD: el tubo P-MOS no funciona, solo funciona el tubo N-MOS, MCU solo puede controlar la salida de bajo nivel.
  • 6. Salida push-pull GPIO_MODE_OUT_PP: tanto el tubo P-MOS como el tubo N-MOS funcionan, MCU puede controlar la salida de alto nivel y bajo nivel.
  • 7. Salida de drenaje abierto multiplexada GPIO_MODE_AF_OD: GPIO se multiplexa como otros periféricos, el registro de datos de salida GPIOx_ODR no es válido y los niveles alto y bajo de salida provienen de otros periféricos.
  • 8. Salida push-pull multiplexada GOIO_MODE_AF_PP: GPIO se multiplexa como otros periféricos, el registro de datos de salida GPIOx_ODR no es válido y los niveles alto y bajo de salida provienen de otros periféricos.

Resumen de los puntos de conocimiento de salida de GPIO en stm32 (ocho modos y principios de GPIO) - Se busca programador

Uso de GPIO

1. Habilite el reloj: registro RCC APB2RSTR HAL_RCC_GPIOC_CLK ENABLE();
2. Establezca el modo de trabajo;
3. Establezca el estado de salida: ODR, BSRR.

Resumir:

  • Entrada flotante : para reducir el consumo de energía;
  • Pull-up y pull-down : nivel de sujeción, accionamiento mejorado (aumento de corriente), antiinterferencias;
  • La entrada analógica es una señal eléctrica analógica, como ADC;
  • Salida open-drain : normalmente solo se puede dar salida a 0, pero es perfectamente compatible con diferentes niveles de periféricos;
  • Multiplexación de salida de drenaje abierto : multiplexación significa que IO no es IO ordinario, sino IO con funciones especiales, como SPI, UART, etc.;
  • Salida push-pull : es para mejorar la capacidad de conducción.

Selección y diferencia de modos de entrada y salida de stm32 - Se busca programador

3. Pasos de configuración del puerto serie

(1) Activación del reloj del puerto serie, activación del reloj GPIO
(2) Restablecimiento del puerto serie
(3) Configuración del modo del puerto GPIO

El modo de trabajo GPIO de TX es: GPIO_Mode_AF_PP;//Multiplex push-pull output El
modo de trabajo GPIO de RX es: GPIO_Mode_IN_FLOATING;//Entrada flotante

(4) Inicialización de parámetros del puerto serie, que incluye: configuración de la velocidad en baudios (115200), 8 bits de datos, 1 bit de parada, sin bit de paridad, sin control de flujo de datos de hardware y modo transceptor.
(5) Habilite la interrupción e inicialice el NVIC (este paso es necesario solo si es necesario habilitar la interrupción)
(6) Habilite el puerto serie
(7) Escriba la función de procesamiento de interrupción

4. I2C

¿Hay tres tipos de señales en el proceso de transmisión de datos en el bus I2C?
(1) Señal de inicio: cuando SCL tiene un nivel alto, SDA salta de un nivel alto a un nivel bajo y comienza a transmitir datos.
(2) Señal final: cuando SCL tiene un nivel alto, SDA salta de un nivel bajo a un nivel alto y finaliza la transmisión de datos.
(3) Señal de respuesta: después de recibir los datos de 8 bits, el IC que recibe los datos envía un pulso específico de bajo nivel al IC que envía los datos, lo que indica que se han recibido los datos. Después de que la CPU envía una señal a la unidad controlada, espera a que la unidad controlada envíe una señal de respuesta.Después de recibir la señal de respuesta, la CPU decide si continúa transmitiendo la señal de acuerdo con la situación real. Si no se recibe ninguna señal de respuesta, se considera que la unidad controlada está defectuosa.

¿Mecanismo de arbitraje I2C?

I2C permite múltiples maestros y múltiples esclavos. Si dos o más dispositivos maestros envían simultáneamente una señal de inicio al bus y comienzan a transmitir datos, se forma un conflicto. Para resolver este conflicto se debe tomar una decisión arbitral, que es el arbitraje en el bus I2C.

El arbitraje en el bus I2C se divide en dos partes: la sincronización de la línea SCL y el arbitraje de la línea SDA. En pocas palabras, sigue el principio de "prioridad de nivel bajo", es decir, quien envíe el nivel bajo primero tomará el control del bus.

Mecanismo de arbitraje de bus I2C_Mecanismo de arbitraje i2c_Aite Blog-CSDN Blog

5. ¿Cómo determinar qué modo SPI usar?

(1) Primero confirme la polaridad SCLK requerida por el esclavo, si está en bajo potencial o alto potencial cuando no está funcionando, y así confirme que CPOL es 0 o 1.

(2) A partir del diagrama de tiempo en la hoja de datos del chip esclavo, confirme si el chip esclavo recopila datos en el flanco descendente de SCLK o en el flanco ascendente de SCLK.

6. Sistema de reloj

En STM32, hay cinco fuentes de reloj, HSI, HSE, LSI, LSE, PLL.
①, HSI es un reloj interno de alta velocidad, oscilador RC, la frecuencia es de 8 MHz.
②, HSE es un reloj externo de alta velocidad, que se puede conectar a un resonador de cuarzo/cerámica o a una fuente de reloj externa, y el rango de frecuencia es de 4 MHz a 16 MHz.
③, LSI es un reloj interno de baja velocidad, oscilador RC, la frecuencia es de 40 kHz.
④, LSE es un reloj externo de baja velocidad, conectado a un cristal de cuarzo con una frecuencia de 32.768kHz.
⑤.PLL es la salida del multiplicador de bucle de bloqueo de fase, y su fuente de entrada de reloj se puede seleccionar como HSI/2, HSE o HSE/2. El multiplicador de frecuencia se puede seleccionar de 2 a 16 veces, pero la frecuencia de salida máxima no debe exceder los 72 MHz.
 

7. ¿ Describa brevemente las características funcionales del sistema ADC de STM32?

(1) Resolución de 12 bits
(2) Calibración automática
(3) Alineación de datos programable (los resultados de conversión admiten almacenamiento justificado a la izquierda o a la derecha en registros de datos de 16 bits) (
4) Modos de conversión simple y continua

8. Describa brevemente ¿Qué son las interrupciones STM32?

Interrupción externa, interrupción de temporizador, interrupción DMA, interrupción UART, interrupción SPI, interrupción I2C, interrupción USB, interrupción ADC.

9. ¿En qué subversiones (estilos) se puede dividir la arquitectura de ARM v7 y en qué campos se utilizan?

A, R, M tres.
La serie Contex-A es un núcleo de procesador de aplicaciones para sistemas densos. El control maestro de nivel superior se usa ampliamente en teléfonos móviles, tabletas y GPS, y el 90% de los chips de dispositivos móviles usan brazo. En correspondencia con arm9 y arm11, ambos pueden ejecutar sistemas operativos como Linux.
La familia Contex-R de núcleos de alto rendimiento para aplicaciones en tiempo real. Se utiliza principalmente en ocasiones con altos requisitos de tiempo real, como controladores de disco duro, productos de control de vehículos, etc.
La serie Contex-M es un núcleo de microcontrolador (equivalente a un microcontrolador avanzado) para diversas aplicaciones integradas. Se utiliza principalmente en la industria y los campos de consumo. Al igual que arm7, no puede ejecutar un sistema operativo grande (solo puede ejecutar un sistema operativo en tiempo real similar a uCos2)

10. ¿Qué modelos de STM32 ha utilizado?¿Recursos internos?

 Conjunto de preguntas de entrevista de ingeniero integrado-MCU_STM32_mcu preguntas de entrevista_Blog de Jiangzaijianghu-Blog de CSDN

Once, temporizador de tictac de Systick

SysTick es un contador regresivo de 24 bits.Después de que SysTick se establezca en un valor inicial y se habilite, el valor de conteo disminuirá en 1 cada vez que pase un ciclo de reloj del sistema. Al contar hasta 0, el contador SysTick vuelve a cargar automáticamente el valor inicial y continúa contando, y se establecerá el indicador interno COUNTFLAG, lo que activará una interrupción (si la interrupción está habilitada).

Asumiendo que el reloj del sistema es de 72Mhz, entonces cada incremento en SysTick es 1/9us. Nota: El sistema se divide por 8 a 72MHz.

12. Gestión de prioridad de interrupción de NVIC 

El núcleo CM3 admite 256 interrupciones, incluidas 16 interrupciones de núcleo y 240 interrupciones externas, y tiene 256 niveles de configuraciones de interrupción programables. Pero STM32 no usa todo el núcleo de CM3, sino solo una parte. STM32 tiene 84 interrupciones, incluidas 16 interrupciones de núcleo y 68 interrupciones enmascarables, con 16 niveles de prioridad de interrupción programable. Y comúnmente usamos estas 68 interrupciones enmascarables, pero las 68 interrupciones enmascarables de STM32, en la serie STM32F103, solo hay 60 (solo 68 en la serie 107).

STM32 divide las interrupciones en 5 grupos, grupo 0~4.

 Hay dos puntos a tener en cuenta aquí:

Primero, si la prioridad de preferencia y la prioridad de respuesta de las dos interrupciones son las mismas, entonces se ejecutará primero para ver qué interrupción ocurre primero;

En segundo lugar, una prioridad preventiva de alta prioridad puede interrumpir una interrupción de prioridad preventiva baja en curso. Mientras se apropia de las interrupciones con la misma prioridad, la prioridad de respuesta de alta prioridad no puede interrumpir la interrupción de prioridad de respuesta baja.

13. Pasos generales para usar la interrupción externa del puerto IO

1. Inicialice el puerto IO como entrada.
2. Encienda el reloj de multiplexación del puerto IO y configure la relación de mapeo entre el puerto IO y la línea de interrupción.
3. Inicialice la interrupción en línea (EXTI), configure las condiciones de disparo, etc.
4. Configure el grupo de interrupción (NVIC) y habilite la interrupción.
5. Escriba la función de servicio de interrupción.

14. Pasos de configuración del temporizador

1. Habilite el reloj temporizador. Función de llamada: RCC_APB1PeriphClockCmd();
2. Inicialice el temporizador y configure ARR y PSC. Función de llamada: TIM_TimeBaseInit();
3. Habilite la interrupción del temporizador y configure NVIC. Función de llamada: void TIM_ITConfig(); NVIC_Init();
4. Habilite el temporizador. Función de llamada: TIM_Cmd();
5. Función de servicio de interrupción de escritura. Función de llamada: TIMx_IRQHandler().

15. Otros contenidos

1. ¿Por qué la CPU no puede leer datos directamente del disco duro, sino primero a través de la memoria?

La razón por la que la CPU no puede leer datos directamente desde el disco duro es por la gran diferencia de velocidad entre el disco duro y la CPU. Un disco duro es un dispositivo mecánico que requiere tiempo para girar el plato y mover los cabezales de lectura/escritura antes de que se puedan leer o escribir los datos. Por el contrario, la velocidad de procesamiento de la CPU es muy rápida y la ejecución de una instrucción se puede completar en nanosegundos. Por lo tanto, si la CPU lee datos directamente del disco duro, la velocidad de procesamiento de la CPU estará limitada por la velocidad del disco duro, lo que reducirá en gran medida el rendimiento general del sistema.

2. Memoria de la CPU relación disco de memoria virtual/disco duro

La CPU juzga y procesa lógicamente los datos. No puede almacenar datos por sí misma. En este momento, la CPU obtiene datos de la memoria interna para el cálculo lógico. Si no hay datos en la memoria interna, lee los datos del disco duro para la memoria interna y luego procesa los datos.

Al igual que una persona come, la CPU es la persona, la memoria es el tazón y el disco duro es la olla arrocera.

Cuando el proceso de la CPU espera, causará un aumento en la sobrecarga de memoria. Cuando la memoria no es suficiente, se usará la memoria virtual, lo que dará como resultado un aumento en la memoria virtual. En este momento, la sobrecarga de E/S del disco aumentará, el estado del sistema sy% aumentará y la sobrecarga de la CPU aumentará; si los datos no son suficientes, los datos se recuperan del disco.

3. La estructura interna de la CPU

CPU: La unidad central de procesamiento es el núcleo de cómputo y el núcleo de control de una computadora. Su función es principalmente interpretar instrucciones de computadora y procesar datos en software de computadora. La CPU se compone de una unidad aritmética, un controlador, un registro, un caché y un bus para realizar datos, control y estado entre ellos; memoria:
dividida en memoria externa y memoria interna, utilizada para almacenar datos (almacenados en formato binario modo);
dispositivo de entrada: un dispositivo para que el usuario emita órdenes a la computadora;
dispositivo de salida: un dispositivo para que la computadora y el usuario informen los resultados.

4. ¿Cuál es la velocidad en baudios, por qué ambas partes tienen la misma velocidad en baudios y cuál es la diferencia entre velocidades en baudios altas y bajas?

Tasa de baudios en comunicación: se refiere al número de bits transmitidos por segundo, es decir, la tasa de comunicación.

En comunicación, la tasa de baudios se refiere al número de bits transmitidos por segundo. Si las velocidades de transmisión de las dos partes son diferentes, habrá un problema de desajuste de la velocidad de transmisión de datos entre el emisor y el receptor.

Específicamente, si la tasa de baudios del remitente es más alta que la tasa de baudios del receptor, el remitente puede enviar datos más rápido de lo que el receptor puede manejar, lo que resulta en pérdida de datos o errores de transmisión. Si la tasa de baudios del remitente es menor que la del receptor, es posible que el receptor no pueda recibir todos los datos a tiempo, lo que resulta en una transmisión de datos ineficiente o pérdida de datos.

Una alta tasa de baudios significa más bits por segundo y una tasa de transferencia de datos más rápida.

A una velocidad de transmisión alta, debido al aumento de la velocidad de transmisión, los flancos ascendentes y descendentes de la señal cambian más rápido, lo que da como resultado una distancia de transmisión limitada con una velocidad de transmisión más baja.

5. El concepto de ROM y RAM

ROM: memoria de solo lectura. Ventajas: gran capacidad, no se pierde cuando se apaga; Desventajas: velocidad de lectura lenta. De hecho, la definición de "solo lectura" no es precisa, como 8+128G para teléfonos móviles. Aquí 8 se refiere a RAM; 128 se refiere a ROM. La ROM aquí es flash, como EMMC, UFS y NAND flash, que se pueden escribir (borrar -> enviar la dirección o el sector para escribir -> escribir datos). Flash todavía se llama ROM por razones históricas.

RAM: memoria de acceso aleatorio. Ventajas: velocidad rápida, comunicarse directamente con la CPU; Desventajas: se pierde cuando se apaga, poca capacidad.
Análisis de RAM y ROM en desarrollo embebido_embedded ram and rom_CinzWS's blog-CSDN blog

6. El concepto de sector, bloque, página y clúster

100 preguntas integradas (85): El concepto de clúster de página de bloque de sector_Blog de Role Life-Blog de CSDN

Sector : La unidad de direccionamiento más pequeña de un disco duro (la parte de búsqueda más pequeña de un dispositivo de almacenamiento externo como un disco duro, es decir, al "tomar el disco duro", al menos "tomar" un sector a la vez); block/ clúster: debido a la comparación espacial
de sectores pequeños y grandes en número, es difícil de abordar, por lo que el sistema operativo combina múltiples sectores para formar una unidad más grande y luego realiza operaciones generales en esta unidad. Esta unidad se denomina clúster en sistemas de archivos FAT, FAT32 y NTFS en Windows; se denomina bloque en sistemas de archivos como Ext4 en Linux. Cada clúster o bloque puede incluir 2, 4, 8, 16, 32, 64... 2n sectores.
Page : La unidad básica más pequeña del sistema operativo .

En resumen, la unidad más pequeña al leer un archivo es un bloque. Un sector es para un disco duro y un bloque de disco es para un sistema de archivos. Por lo tanto, la unidad más pequeña de un sistema de archivos para operar un archivo es un bloque, y la unidad básica de un disco es un sector.

El sistema operativo solo tiene el concepto de páginas cuando se trata de memoria, ya que si se utiliza el mecanismo de paginación de memoria, la memoria se divide en páginas con un tamaño de 4K. También es una unidad virtual.

En resumen: el sistema operativo usa páginas como unidad básica para operar la memoria, el sistema de archivos usa bloques como unidad básica para operar discos, y el disco en sí usa sectores como unidad básica para leer y escribir.
La diferencia entre sector, bloque y página en Linux + el papel de inodo y búfer de alta velocidad en el sistema de archivos de Linux

16. Contenido de referencia

Resumen de los puntos de conocimiento de la entrevista integrada: artículos STM32_Preguntas de programación stm32_Juyou Zhicheng Blog-CSDN Blog

La experiencia de entrevista de MCU más completa en toda la red (basada en STM32F103)_preguntas de entrevista de mcu_blog de dieciséis hermanos-blog de CSDN

STM32-Preguntas y respuestas de la entrevista_Stm32 Preguntas de respuesta de MCU_Flying Mavericks Blog-CSDN Blog

Supongo que te gusta

Origin blog.csdn.net/qq_41709234/article/details/131359345
Recomendado
Clasificación