У меня есть микропроцессор с кодом C и компьютер с кодом C #.Я пытаюсь заставить их общаться через последовательное соединение (System.IO.Ports.SerialPort).У меня нет проблем с подключением, скорее проблемы с подключением.
В C # у меня есть такой код для отправки строки "rr \ n":
mySeiralPort.WriteLine("rr");
В C (на микроконтроллере),У меня есть такой код, чтобы получить строку:
gets(str);
Обратите внимание, что поток STDIN является потоком последовательного порта.Здесь вещи становятся интересными.В качестве теста у нас есть немного кода, который заставляет светиться светодиод, если str
равно "rr".Это позволяет нам наблюдать, получил ли микроконтроллер его должным образом.
При использовании HyperTerminal я могу набрать «r», затем «r», затем нажать «Enter» ->, и светодиод загорается,сигнализируя, что он действительно прочитал «rr» из последовательного потока.Однако, когда я использую вышеупомянутую WriteLine
функцию из C #, мы не получаем такого результата.
Я считаю, что это сводится к функциональности HyperTerminal, посылающей посимвольные символы, и что функция gets()
читает символ за символом, пока не встретит символ новой строки.
Может кто-нибудь пролить свет на то, как заставить функции C # WriteLine()
и C gets()
работать вместе?