Re: Чтение данных из Ардуины при помощи C++ VS 2010 Windows Forms
"В начале процедуры таймер нужно отключить, а в конце процедуры включить" - А это как?
Интервал - 100 мс.
Re: Чтение данных из Ардуины при помощи C++ VS 2010 Windows Forms
Похоже в VS C++ как то иначе
Re: Чтение данных из Ардуины при помощи C++ VS 2010 Windows Forms
на С# делаю так:
PHP код:
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) //по событию "пришли данные" читаем их и присваиваем значения переменным
{
bytes = serialPort1.BytesToRead; //считаем количество байт
byte[] data = new byte[serialPort1.BytesToRead];//массив принятых занчений
serialPort1.Read(data, 0, data.Length);//читаем
//здесь всякие условия типа количества байт, контрольные суммы, префиксы и т.д.
temp1=data[0]; //присваиваем значение переменной.
}
private void timer1_Tick(object sender, EventArgs e) //по таймеру обновляем label
{
label1.Text=temp1.ToString();
}
на С++, думаю, будет мало отличаться.
Вроде работает:
PHP код:
private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e)
{
label1->Text=System::Convert::ToString(b);
}
private: System::Void serialPort1_DataReceived(System::Object^ sender, System::IO::Ports::SerialDataReceivedEventArgs^ e)
{
unsigned char bytes = serialPort1->BytesToRead;
int i=0;
if (bytes >= 8)
{
bytes = 0;
char data[10];
for(i=0;i<8;i++)
{
data[i]=System::Convert::ToChar(serialPort1->ReadChar());
}
b=data[1];
}
}
Это для передачи данных побайтово а не строкой, но смысл тот же
Re: Чтение данных из Ардуины при помощи C++ VS 2010 Windows Forms
Re: Чтение данных из Ардуины при помощи C++ VS 2010 Windows Forms
Нет. все работает. добавил пару кнопок для проверки - все обрабатывается.
Re: Чтение данных из Ардуины при помощи C++ VS 2010 Windows Forms
Расскажи пожалуйста, как мне твой код запустить на VS 2010 Express. Тот что ты написал на С++ у меня не работает.
Вложений: 1
Re: Чтение данных из Ардуины при помощи C++ VS 2010 Windows Forms
Не компилируется или не работает с ардуино?
VS 2010 pro все в порядке.
В атаче весь проект.
Вложение 15774
Re: Чтение данных из Ардуины при помощи C++ VS 2010 Windows Forms
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuil d.targets(292,5): error MSB8009: .NET Framework 2.0/3.0/3.5 задают набор инструментов платформы v90. Убедитесь, что на данной машине выполнена установка Visual Studio 2008.
Re: Чтение данных из Ардуины при помощи C++ VS 2010 Windows Forms
Скомпилировал твой код. Кнопка работает (+1), а вообще, не работает. Постоянно 0 пишет. Я думаю, как таймер в отдельный поток засунуть? Может быть поможет?
Re: Чтение данных из Ардуины при помощи C++ VS 2010 Windows Forms
Цитата:
Я думаю, как таймер в отдельный поток засунуть? Может быть поможет?
В отдельном потоке достаточно будет цикла while