Home › Forum › E-blocks › A.R.M & USART

Forum

Veuillez vous identifier avant de répondre ou pour vous abonner à cette discussion

Sujet: A.R.M & USART

Auteur Message

DD51

Read post 19-11-2006 17:08

Bonjour,
Petit probléme de communication avec le E-blocks A.R.M, je veux me servir des fonction de la bibliotheque, pour
communiquée en RS232, mais le programme reste bloqué sur l'envoi de la donnée, ci quelqu'un a déja reussi pourrait'il regarder dans mon programme, l'oubli ... que je n'arrive pas a voir. Je ne veux me servir que de la Broche TX & RX seulement.



#include "Board.h"

#define BaudRate 38400 /* Baud Rate */

#define BRD (MCK/16/BaudRate) /* Baud Rate Divisor */

// AT91S_USART * pUSART = AT91C_BASE_US1; /* Global Pointer to USART1 */


void uart_init (void) { /* Initialize Serial Interface */

AT91F_US_Configure (
AT91C_BASE_US1, // \arg pointer to a USART controller
MCK, // \arg peripheral clock
AT91C_US_ASYNC_MODE , // \arg mode Register to be programmed
BaudRate, // \arg baudrate to be programmed
10 ); // \arg timeguard to be programmed

}


void uart_putc(int ch)
{
while( !AT91F_US_TxReady (AT91C_BASE_US1))


int main(void)
{
unsigned int i;

uart_init ();


/* Set all of PORTA as an output */
AT91F_PIO_CfgOutput( AT91C_BASE_PIOA, PORTA ) ;
AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, PORTA);


while ( 1 )
{
/* Set pin 0 of PORTA high */
AT91F_PIO_SetOutput( AT91C_BASE_PIOA, PORTA0);
for ( i = 0 ; i < 650000 ; i = i + 1 ) ;

uart_putc('A') ;

/* Set pin 0 of PORTA low */
AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, PORTA0);
for ( i = 0 ; i < 650000 ; i = i + 1 ) ;
}
}

Coordialement

Veuillez vous identifier avant de répondre ou pour vous abonner à cette discussion

Elektor 6/2012 en kiosque

Elektor-Hebdo gratuit !

Mon adresse électronique :

Unités de crédit Elektor

Nos blogs-ateliers