feo_kos (28.12.2011 19:57, просмотров: 2566)
Для управления девайсом с компа написал терминал, а в контроллере использовал usart1 с прерыванием по приходу. настроил терминал
dcb.BaudRate =CBR_115200;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
юарт
#define MCK 47923200 // MCK (PLLRC div by 2)
#define BRD (MCK/16/BR) /* Baud Rate Divisor */
pUSART->US_MR = AT91C_US_USMODE_NORMAL | /* Normal Mode */
AT91C_US_CLKS_CLOCK | /* Clock = MCK */
AT91C_US_CHRL_8_BITS | /* 8-bit Data */
AT91C_US_PAR_NONE | /* No Parity */
AT91C_US_NBSTOP_1_BIT; /* 1 Stop Bit */
pUSART->US_BRGR = BRD; /* Baud Rate Divisor */
в отладчике BaudRate= 115000
Так вот, если отправляю, например, 3 байта: 123456, то в контроллере принимает 120034.
В чём может быть проблема?