непонятки с com портом

Vладимир
Offline
Зарегистрирован: 27.01.2015

народ помогите разобратся с непонятками при работе с com портом,
и не пинайте сильно это моё первое знакомство а микроконтроллерами

пытаюсь подружить ардуинку и delphi
есть скетч и самописная прога на delphi , и все вроде работает нормально но только после заливки скетча ,
стоит обесточить ардуинку и подать питание заново,и в порту словно генератор случайных чисел поработал
подскажите в какую сторону копать






int lenbuff = 803;
byte Buff[803]={255,125,0}; 


unsigned int i=0; 

void setup()   
{  
    Serial.begin(115200);   
}   

void loop()   
{   
  for (i=3;  i < lenbuff-3; i++)   
     {   
       Buff[i] = analogRead(0)/4; 
       // Buff[i] = i;
     } 
    
    Serial.write(Buff,lenbuff);
   // delay(100);
    
} 

 

Vладимир
Offline
Зарегистрирован: 27.01.2015

отвечу сам себе 

режим работы ком порта в win xp и в arduino не совпадают 

при запуске, IDE меняет эти параметры и все работает , а при переконекте устройства винда выставляет опять сови параметры и начинаются проблемы .

для корректной работы программа под виндой должна переконфигурировать ком порт 

в моем случае это 

 

Dcb.Parity := NOPARITY; // Может содержать одно из следующих значений: EVENPARITY, MARKPARITY, NOPARITY, ODDPARITY, SPACEPARITY.
Dcb.ByteSize := 8; //число информационных бит в передаваемых и принимаемых байтах.
Dcb.StopBits := ONESTOPBIT; //количество стоповых бит. Может быть ONESTOPBIT, ONE5STOPBIT, TWOSTOPBIT.

 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Свои, это значения по умолчанию, которые можно изменить в настройках порта в винде. Не понимаю что вас смутило. При любом новом коннекте порт нужно заново настраивать с двух сторон. И на пк и у ардуины. Кстати в винде настроек у порта охрененное количество, а не только количество бит данных и стопов, тип бита четности и скорость. Почитайте как средствами апи управлять портом.

Vладимир
Offline
Зарегистрирован: 27.01.2015

просто я не ожидал что винда при каждом конекте будет сбрасывать настройки порта в СВОЙ  дефолт