/* Raise RTS and DTR.
* Linux will have already done this but some Unix system don't and
* some wait for DCD before doing so, so make it explicit.
*/
flags = TIOCM_RTS;
if ( ioctl( fd, TIOCMBIS, &flags ) != 0 )
{
fprintf( stderr,"Failed to raise RTS and DTR. Errno %d
", errno );
/* Possibly not fatal so we continue */
}
/* Drop RTS */
flags = TIOCM_RTS;
if ( ioctl( fd, TIOCMBIC, &flags ) != 0 )
{
fprintf( stderr,"Failed to clear RTS. Errno %d
", errno );
}
порт открыт, по нему производится обмен с устройством, но RTS на мои действия никак не реагирует. Может он здесь вообще настроен как вход? Какие еще могут быть варианты?
Спасибо.
У меня пока не заработало, но, видимо, по другой причине.
Я хочу включить RTS-CTS на DEBUG (ttyS0) порту, поэтому манипуляции с spi сюда не относятся. читаю файл board-sam9g45-ek.c, в нем пишут
at91_register_uart(0, 0, 0); //ttyS0 RX, TX only
переписываю на
at91_register_uart(0, 0, ATMEL_UART_CTS | ATMEL_UART_RTS);
перекомпилирую, заливаю.
все равно уровень не меняется.
я не уверен в первом и втором параметре, возможно их тоже необходимо корректировать.