Estoy tratando de recibir algunos datos a través de USART en Atmel SAMD20. Yo uso usart_read_wait()
y usart_read_buffer_wait()
pero regresan con un error: el primero con STATUS_BUSY
y el segundo con STATUS_ERR_TIMEOUT
. El envío funciona muy bien, recibo todos los bytes en Putty o minicom. Aquí está mi código:
#include <asf.h>
static struct usart_config usart_conf;
static struct usart_module usart_mod;
int
main (void)
{
system_init();
usart_get_config_defaults (&usart_conf);
usart_conf.pinmux_pad0 = PINMUX_UNUSED;
usart_conf.pinmux_pad1 = PINMUX_UNUSED;
usart_conf.pinmux_pad2 = PINMUX_PA20D_SERCOM3_PAD2;
usart_conf.pinmux_pad3 = PINMUX_PA21D_SERCOM3_PAD3;
usart_init (&usart_mod, SERCOM3, &usart_conf);
usart_enable (&usart_mod);
stdio_serial_init (&usart_mod, SERCOM3, &usart_conf);
uint8_t buf[8];
enum status_code st = usart_read_buffer_wait (&usart_mod, buf, sizeof (buf));
printf ("Code: %d\r\n", st);
}
El uC se conecta a la PC a través del adaptador serie USB a TTL. Sospecho que hice la configuración de pinmux de manera incorrecta. Realmente no entiendo qué son los pinmuxes y las almohadillas. Entonces, ¿cómo podría enviar algunos datos a la UC?