Цитата(Pat @ Sep 18 2009, 01:53)

Если так "ATD>SM1;\r\n" то в конце 2 раза возвращает \r\r
Зачем Вы передаёте с командой символ '\n'? Команды заканчиваются байтом <CR> ('\r' в языке Си).
P.S. В некоторых реализациях процедур ввода-вывода символ '\n' заменяется парой "\r\n". Это, конечно, если Вы передаёте команду, например, с персоналки. В терминалах, обычно, есть галка "Заменять символ ... парой символов...". В исполнительной среде языка Си замена символа определяется тем, как Вы открыли файл (поток данных или поток символов).