- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
The following code should make a loopback between UART RX and TX (echo).
However, it seems that first N typed chars (from PC towards the board) are not successfully absorbed. After N characters (few dozens, I guess), it works correctly (I get an echo for each character I type). Any ideas?# include "altera_avalon_uart_regs.h"# include "system.h"
typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned int u32;
# define UART_BASE UART_0_BASE
int main ()
{
u8 uart_rx_char;
u16 uart_st_reg;
while (1) {
uart_st_reg = (u16)IORD_ALTERA_AVALON_UART_STATUS(UART_BASE);
if (uart_st_reg & ALTERA_AVALON_UART_STATUS_RRDY_MSK) {
uart_rx_char = (u8)IORD_ALTERA_AVALON_UART_RXDATA(UART_BASE);
IOWR_ALTERA_AVALON_UART_TXDATA(UART_BASE, uart_rx_char);
}
}
return 0;
}
Link kopiert
1 Antworten
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
Hi,
try to check if transmit is ready before you write in your txdata, and clear the status register in the begining of your while.
Antworten
Themen-Optionen
- RSS-Feed abonnieren
- Thema als neu kennzeichnen
- Thema als gelesen kennzeichnen
- Diesen Thema für aktuellen Benutzer floaten
- Lesezeichen
- Abonnieren
- Drucker-Anzeigeseite