Последовательное взаимодействие в C ++ (Visual Studio 2010, .NET 4.5)

0

У меня есть вопрос уточнения относительно получения данных через последовательный порт от Arduino. В частности, я использую Sparkfun Pro Micro 5v/16MHz и пытаюсь написать простой графический интерфейс в C++ для отправки сообщений через последовательный порт, а затем получить один из нескольких ответов, которые указаны в коде, запущенном на плате Arduino,

Я знаю, что связь и код, работающие на Arduino, работают, потому что я попытался использовать инструмент Serial Monitoring в среде Arduino и могу отправлять и получать соответствующие ответы.

При отправке сообщений через графический интерфейс C++, который я создал, я вижу, что светодиод трафика мигает при отправке сообщения, заставляя меня поверить, что отправка через C++ графический интерфейс работает, но ничего не касается приема сообщений.

Некоторые из моего кода:

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 или аппаратным обеспечением, поэтому я не совсем уверен, что мои варианты для отладки.

Если у кого-то есть какие-то отладочные предложения или идеи, что я делаю неправильно, я бы очень признателен. Кроме того, если я не предоставил никакой информации, дайте мне знать, что нужно, и я ее отредактирую!

Спасибо, -K

  • 1
    Я предполагаю, что у вас установлен аппаратный контроль потока, но подключены только линии TX / RX. Попробуйте отключить аппаратное управление потоком при настройке последовательного порта.
  • 0
    @rm5248 rm5248 Спасибо за предложение! Как бы я это сделал? Я подключен через порт USB, и я не вижу эту опцию на объект последовательного порта в VS.
Показать ещё 2 комментария
Теги:
arduino
serial-port
visual-studio-2010

1 ответ

0
Лучший ответ

Наконец понял это после поиска неясного комментария, говорящего о настройках.

Оказывается, мне нужно, чтобы свойство DTREnabled для Serial Port устанавливалось как True, а не false, чтобы обработчик DataReceived запускался. Этот параметр никогда не устанавливался ни в одной из документации MSDN, касающейся связи через последовательный порт. Если вы читаете это и имеете аналогичную проблему, убедитесь, что DTREnabled, RTSEnabled оба установлены в true и, возможно, даже настроили Handshaking на RequestToSend. Возможно, одним или всеми из них будет то, что в конечном итоге его исправление.

В моем случае только DTREnabled должен быть правдой. Я не совсем понимаю, что делают эти настройки, но там у вас есть.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню