#1 2021-03-01 22:28:37

tl431
Учасник
Зареєстрований: 2021-03-01
Повідомлень: 3

Помилка компіляції Attiny85

Доброго дня.
Маю невеликий проект. Вирішив його запхати в Attiny85. Проект відправляє дані (температура і вологість) по протоколу Modbus Rtu на сервер Zabbix. Для плати Digispark (плата Digispark (16mhz - No USB) ) проект компілюється , но коли я вибираю в менеджері плат Attiny25/45/85 (No bootloader), то отримаю помилку при компіляції

In member function 'void Modbus::begin(long int)

Детальний звіт

Arduino: 1.8.13 (Windows 7), Плата: "ATtiny25/45/85 (No bootloader), Enabled, CPU (CPU frequency), ATtiny85, 8 MHz (internal), EEPROM retained, B.O.D. Disabled (saves power), Enabled"

In file included from C:UsersSergioDesktopSensorSensor_ATtiny85Sensor_ATtiny85.ino:2:0:

C:UsersSergioDocumentsArduinolibrariesModbus-Master-Slave-for-Arduino-master/ModbusRtu.h: In member function 'void Modbus::begin(long int)':

C:UsersSergioDocumentsArduinolibrariesModbus-Master-Slave-for-Arduino-master/ModbusRtu.h:388:17: error: 'HardwareSerial' does not name a type; did you mean 'HardwareSerial_h'?

     static_cast<HardwareSerial*>(port)->begin(u32speed);

                 ^~~~~~~~~~~~~~

                 HardwareSerial_h

C:UsersSergioDocumentsArduinolibrariesModbus-Master-Slave-for-Arduino-master/ModbusRtu.h:388:31: error: expected '>' before '*' token

     static_cast<HardwareSerial*>(port)->begin(u32speed);

                               ^

C:UsersSergioDocumentsArduinolibrariesModbus-Master-Slave-for-Arduino-master/ModbusRtu.h:388:31: error: expected '(' before '*' token

C:UsersSergioDocumentsArduinolibrariesModbus-Master-Slave-for-Arduino-master/ModbusRtu.h:388:32: error: expected primary-expression before '>' token

     static_cast<HardwareSerial*>(port)->begin(u32speed);

                                ^

C:UsersSergioDocumentsArduinolibrariesModbus-Master-Slave-for-Arduino-master/ModbusRtu.h:388:41: error: 'class Stream' has no member named 'begin'

     static_cast<HardwareSerial*>(port)->begin(u32speed);

                                         ^~~~~

C:UsersSergioDocumentsArduinolibrariesModbus-Master-Slave-for-Arduino-master/ModbusRtu.h:388:56: error: expected ')' before ';' token

     static_cast<HardwareSerial*>(port)->begin(u32speed);

                                                        ^

Декілька бібліотек було знайдено для «SoftwareSerial.h»

 Використано: C:UsersSergioAppDataLocalArduino15packagesATTinyCorehardwareavr1.5.0librariesSoftwareSerial

 Не використовується: C:UsersSergioDocumentsArduinolibrariesSoftwareSerial-master

exit status 1

Помилка компіляції для плати ATtiny25/45/85 (No bootloader).



Цей звіт міститиме більше інформації, якщо
в меню Файл -> Налаштування увімкнути опцію
"Показати докладний звіт при компіляції".

В чому моя помилка?

Неактивний

#2 2021-03-02 01:10:11

Kaka
Учасник
Зареєстрований: 2018-03-21
Повідомлень: 411

Re: Помилка компіляції Attiny85

Нету у Attiny85 HardwareSerial :-(

Неактивний

#3 2021-03-02 23:29:37

tl431
Учасник
Зареєстрований: 2021-03-01
Повідомлень: 3

Re: Помилка компіляції Attiny85

В скетчі я використовую SoftwareSerial.

Неактивний

#4 2021-03-03 01:01:11

tl431
Учасник
Зареєстрований: 2021-03-01
Повідомлень: 3

Re: Помилка компіляції Attiny85

Закоментував кусок кода в бібліотеці ModbusRtu.h строка 388. Помилка пропала, скетч компілюється.

Неактивний

#5 2021-03-03 14:12:59

Kaka
Учасник
Зареєстрований: 2018-03-21
Повідомлень: 411

Re: Помилка компіляції Attiny85

tl431 пише:

В скетчі я використовую SoftwareSerial.

А причём тут ты? библиотека Modbus использует HardwareSerial - это прямо в тексте сообщения и сказано.

Неактивний

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

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

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