#1 2020-05-02 22:28:33

ВАлерий99
Учасник
Зареєстрований: 2017-08-06
Повідомлень: 8

ArduinoSTM32 задержка вывода в порт.

После некоторой длительной и устойсчивой работы STM32F103 под Ардуино ИД начались глюки.
1 Перестал прошиваться скетч. Хотя комп плату видит. При этом плата стала появляться в разных портах при том, что включаю в тот же слот.Танцы с бубнами - заменял ядро, сносил файл настроек. Менял ИД с 1.6.9 на 1.8.12. Перепрошивал закрузчик.Всё пробовал на двух таблетках.Переодически работа возобновлялась , но старый скетч стал работать с глюками. В конце концов конкретизировал глюк. Прявление следующее.
На примере доработанного Блинка.


long Tloop;

void setup() {

  pinMode(PB1, OUTPUT);
}

void loop() {
  Tloop=millis();
  digitalWrite(PB1, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(PB1, LOW);    // turn the LED off by making the voltage LOW
  delay(1000); // wait for a second
  Serial.print("t1=");Serial.println(millis()-Tloop);
  Serial.print("t2=");Serial.println(millis()-Tloop);
  Serial.print("t3================================================================");Serial.println(millis()-Tloop);
  }


Для контроля хода программы вставляю временные метки t1,t2. итд. Так вот стало так работать, что интервал между выводами t1,t2.t3 стал составлять 6 миллисекунд. Т.е. время включения оператора Serial.print 6 сек. В оператор t3 специально загнал множество "=", чтоб откинуть зависимость скорости от количества символов.

На мониторе выдаёт
t1=2000
t2=2005
t3==========.....    ==2013

От чего такая задержка. И стало иногда выскакивать сообщение красное -ошибка открытия порта. Снимается закрытием-открытием монитора порта. Обычно во втором окне ИД работает параллельное сопряжённое устройство на Nano. Там всё нормально.
???
Ну вот ещё инфа. Хоть не пойму как связано или нет. Всё началось после того, как на Гугл-диске нашёл какие то файлы с расширениями .с, .h   ну в общем ссвязанные с темой Ардуино. Откуда они взялись в папке "последние", не знаю. Там их как блох. Удалял, удалял, надоело. Конкретно мульён.Все так и не удалил.

ну как всегда ломаешь голову  три дня, потом озвучишь вопрос и тут же в голове рождается ответ. Ну вот по поводу удалённых файлов -А возможно это от мульки Гугла -Кодебиндера? Я его когда то пробовал. Было такое приложение в меню Гугла.


следующий день -добавлю результат новых экспериментов. При попытке таких же испытаний порта Serial1 через TTL--USB на другой порт компа всё проходит адекватно. За 1-2 мсек параметр выводится 6 раз. При этом такое же задание на порт Mapl Mini  требует 4-6 мс на строку.


Может это кому поможет разобраться

==========================================
Resetting to bootloader via DTR pulse
Searching for DFU device [1EAF:0003]...
Found it!

Opening USB Device 0x1eaf:0x0003...
Found Runtime: [0x1eaf:0x0003] devnum=1, cfg=0, intf=0, alt=2, name="STM32duino bootloader v1.0  Upload to Flash 0x8002000"
Setting Configuration 1...
Claiming USB DFU Interface...
Setting Alternate Setting ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
Transfer Size = 0x0400
bytes_per_hash=423
Starting download: [##################################################] finished!
state(8) = dfuMANIFEST-WAIT-RESET, status(0) = No error condition is present
Done!
Resetting USB to switch back to runtime mode
processing.app.SerialException: Ошибка открытия последовательного порта "COM9"
    at processing.app.Serial.<init>(Serial.java:125)
    at processing.app.Serial.<init>(Serial.java:66)
    at processing.app.SerialMonitor$3.<init>(SerialMonitor.java:93)
    at processing.app.SerialMonitor.open(SerialMonitor.java:93)
    at processing.app.AbstractMonitor.resume(AbstractMonitor.java:110)
    at processing.app.Editor.resumeOrCloseSerialMonitor(Editor.java:2459)
    at processing.app.Editor.access$2900(Editor.java:90)
    at processing.app.Editor$DefaultExportHandler.run(Editor.java:2437)
    at java.lang.Thread.run(Thread.java:745)
Caused by: jssc.SerialPortException: Port name - COM9; Method name - openPort(); Exception type - Port not found.
    at jssc.SerialPort.openPort(SerialPort.java:167)
    at processing.app.Serial.<init>(Serial.java:114)
    ... 8 more
Ошибка открытия последовательного порта "COM9"

====================================================

Остання редакція ВАлерий99 (2020-05-04 15:37:32)

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму