У меня есть вопрос с разъяснением относительно приема данных через последовательный порт от Arduino. В частности, я использую Sparkfun Pro Micro 5v/16MHz и пытаюсь написать простой графический интерфейс на C++ для отправки сообщений через последовательный порт, а затем получить один из нескольких ответов, которые указаны в коде, запущенном на плате Arduino.Последовательная связь в C++ (Visual Studio 2010, .NET 4.5)
Я знаю, что связь и код, работающие на Arduino, работают, потому что я попытался использовать инструмент Serial Monitoring в среде Arduino и могу отправлять и получать соответствующие ответы.
При отправке сообщений через графический интерфейс C++, который я создал, я вижу, что светодиодный индикатор трафика мигает при отправке сообщения, заставляя меня поверить, что отправка через C++ GUI работает, но ничего не касается приема сообщений.
Некоторые из моего кода:
private: System::Void serialPort1_DataReceived(System::Object^ sender, System::IO::Ports::SerialDataReceivedEventArgs^ e)
{
String^ testStr = serialPort1->ReadExisting();
log_textBox->Text += testStr + "\n";
}
Это очень простой обработчик событий, который присваивается DataReceived
случае моего SerialPort
объекта, который является частью моей формы. Я установил контрольную точку внутри нее, и она никогда не запускается. Я немного растерялся, я сделал несуществующий объем работы с Arduino или аппаратным обеспечением, поэтому я не совсем уверен, что мои варианты для отладки.
Если у кого-то есть какие-либо отладочные предложения или идеи, что я делаю неправильно, я был бы очень признателен. Кроме того, если я не предоставил никакой информации, дайте мне знать, что нужно, и я ее отредактирую!
Спасибо, -К
Я предполагаю, что у вас установлено аппаратное управление потоком, но подключены только линии TX/RX. Попробуйте отключить аппаратное управление потоком, когда вы настроите свой последовательный порт. – rm5248
@ rm5248 Спасибо за предложение! Как мне это сделать? Я подключен через USB-порт, и я не вижу эту опцию в объекте Serial Port в VS. –
Я не знаю, как это сделать в C++ /. NET, но попробуйте это: http://msdn.microsoft.com/en-us/library/system.io.ports.handshake.aspx – rm5248