[an error occurred while processing this directive]
|
значит и частота переключается. Потому что вдсп++ и другие старые проги коннектятся к киту на 9600, а уже потом переключают скорость на 115200 и другие скорости. Если есть желание разобраться в этом ползай по исходнику kernel от этого кита. Он хоть и большой, но там много чего полезного почерпнуть можно и не только в части управления этим уартом, а на 90% для работы с ядром вообще.
И ищи в кернеле подпрограмму (ветку), которая запускается после приема пакета на переключение скорости. Например, вот эту часть:
//**************************************************************************
//*
//* Setup the UART to desired speed.
//*
//**************************************************************************
//
// Set the UART speed.
//
set_uart_speed_sub:
// Set desired baud, 8-bit, no parity, and 1 stop-bit.
R0=0x83;
WRITE_UART(LCR_ADDR) // Set Divisor Latch bit in Line Control Reg.
R0=PM(uart_divisorl);
WRITE_UART(DLL_ADDR) // Set Divisor Latch LS byte for desired baud.
R0=PM(uart_divisorh);
WRITE_UART(DLM_ADDR) // Set Divisor Latch MS byte for desired baud.
R0=0x03; //
WRITE_UART(LCR_ADDR) // Clear Divisor Latch bit in Line Control Reg.
// Done, return.
RTS;
E-mail: info@telesys.ru