Stellaris Launchpad: UART sobre PIN GPIO en ASM

1

Quiero inicializar y usar UART en mi LM4F120 Stellaris Launchpad en ASM . Encontré un código de referencia sobre cómo hacerlo en este sitio .

Esto funciona bien, sin embargo, se inicializa y usa UART0 (que se emula a través de USB). Necesito emplear UART usando los encabezados de PIN. Por lo tanto, quiero usar UART1 sobre PC0 (Rx) / PC1(Tx) siguiendo la convención en table 2-3 form este manual :

Básicamente, cambié los valores constantes a:

NVIC_EN0_INT5      EQU 0x00000020   ; Interrupt 5 enable
NVIC_EN0_R         EQU 0xE000E100   ; IRQ 0 to 31 Set Enable Register
NVIC_PRI1_R        EQU 0xE000E404   ; IRQ 4 to 7 Priority Register
GPIO_PORTB_AFSEL_R EQU 0x40005420
GPIO_PORTB_DEN_R   EQU 0x4000551C
GPIO_PORTB_AMSEL_R EQU 0x40005528
GPIO_PORTB_PCTL_R  EQU 0x4000552C
UART1_DR_R         EQU 0x4000D000
UART1_FR_R         EQU 0x4000D018
UART1_IBRD_R       EQU 0x4000D024
UART1_FBRD_R       EQU 0x4000D028
UART1_LCRH_R       EQU 0x4000D02C
UART1_CTL_R        EQU 0x4000D030
UART1_IFLS_R       EQU 0x4000D034
UART1_IM_R         EQU 0x4000D038
UART1_RIS_R        EQU 0x4000D03C
UART1_ICR_R        EQU 0x4000D044
UART_FR_RXFF       EQU 0x00000040   ; UART Receive FIFO Full
UART_FR_TXFF       EQU 0x00000020   ; UART Transmit FIFO Full
UART_FR_RXFE       EQU 0x00000010   ; UART Receive FIFO Empty
UART_LCRH_WLEN_8   EQU 0x00000060   ; 8 bit word length
UART_LCRH_FEN      EQU 0x00000010   ; UART Enable FIFOs
UART_CTL_UARTEN    EQU 0x00000001   ; UART Enable
UART_IFLS_RX1_8    EQU 0x00000000   ; RX FIFO >= 1/8 full
UART_IFLS_TX1_8    EQU 0x00000000   ; TX FIFO <= 1/8 full
UART_IM_RTIM       EQU 0x00000040   ; UART Receive Time-Out Interrupt
                                    ; Mask
UART_IM_TXIM       EQU 0x00000020   ; UART Transmit Interrupt Mask
UART_IM_RXIM       EQU 0x00000010   ; UART Receive Interrupt Mask
UART_RIS_RTRIS     EQU 0x00000040   ; UART Receive Time-Out Raw
                                    ; Interrupt Status
UART_RIS_TXRIS     EQU 0x00000020   ; UART Transmit Raw Interrupt
                                    ; Status
UART_RIS_RXRIS     EQU 0x00000010   ; UART Receive Raw Interrupt
                                    ; Status
UART_ICR_RTIC      EQU 0x00000040   ; Receive Time-Out Interrupt Clear
UART_ICR_TXIC      EQU 0x00000020   ; Transmit Interrupt Clear
UART_ICR_RXIC      EQU 0x00000010   ; Receive Interrupt Clear
SYSCTL_RCGC1_R     EQU 0x400FE104
SYSCTL_RCGC2_R     EQU 0x400FE108
SYSCTL_RCGC1_UART1 EQU 0x00000002   ; UART1 Clock Gating Control
SYSCTL_RCGC2_GPIOA EQU 0x00000002   ; port A Clock Gating Control

Sin embargo, no puedo recibir ningún carácter en el puerto com virtual. ¿Ves algún error en el código?

    
pregunta Richard Laurant

0 respuestas

Lea otras preguntas en las etiquetas