Pregunta

Tengo problemas para leer datos en serie del microcontrolador ARM LPC2378. ¿Tendré que usar UART o se puede usar cualquier puerto GPIO? ¿Alguien tiene código C para ello?

¿Fue útil?

Solución

Es técnicamente posible utilizar un puerto GPIO, pero su software es responsable del tiempo de bits, el encuadre, la verificación de errores, etc. A menudo se denomina " bit-banging " ya que su código tiene que hacer cada bit, por lo que es un uso intensivo de la CPU. Para velocidades de datos más bajas, puede ejecutarlo desde una interrupción del temporizador.

Usar un UART es mucho más fácil & # 8212; el UART hace el trabajo duro de sincronización de bits, encuadre, verificación de errores, etc.

Según la hoja de datos LPC2378 , el microcontrolador tiene 4 UART. Entonces, usar un UART es el camino a seguir. ¿En qué pin entran sus datos en serie? Los datos en serie deben estar conectados a un pin que se puede conectar a uno de los 4 UART. Tendrá que configurar algunos registros en el microcontrolador para configurarlo para el uso de UART:

  • Habilite el UART y su configuración (muchas configuraciones allí)
  • Establezca qué pin es la entrada para el UART (tal vez)
  • Algunas otras configuraciones de pin

Al principio, puede intentar sondear el UART & # 8212; lea su "byte RX disponible". marca hasta que dice "hay un byte disponible", luego lea el byte del registro de bytes recibidos. Lea también el registro de indicadores de error de RX para ver si hay algún error.

Después de que eso funcione, puede trabajar para que las interrupciones RX funcionen, de modo que se genere una interrupción de recepción para manejar los datos entrantes.

Este tipo de cosas requiere tiempo de lectura en manual de usuario y hoja de datos . ¡Disfruta!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top