Проблема с rf22 hardware_spi

Мессия
Солнце 01, 2018 12:20
Привет!
Только что купил STM32F103C8 и ST-Link V2. Хочу построить еще один автор, сделанный CW Radio Beacon на SI4432.
У него это работает и наброски для Arduino Ide. Но я получаю ошибку:
Arduino: 1.8.5 (Windows 7), Board: "Generic STM32F103C series, STM32F103C8 (20k RAM. 64k Flash), STLink, 72Mhz (Normal), Smallest (default)" In file included from C:\Program Files (x86)\Arduino\libraries\RF22/RF22.h:828:0, from C:\Users\PC\Desktop\RF22_CW_beacon\RF22_CW_beacon.ino:8: C:\Program Files (x86)\Arduino\libraries\RF22/HardwareSPI.h:19:0: warning: "SPI_MODE0" redefined [enabled by default] #define SPI_MODE0 0x00 ^ In file included from C:\Users\PC\Desktop\RF22_CW_beacon\RF22_CW_beacon.ino:7:0: C:\Users\PC\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\SPI\src/SPI.h:94:0: note: this is the location of the previous definition #define SPI_MODE0 SPI_MODE_0 ^ In file included from C:\Program Files (x86)\Arduino\libraries\RF22/RF22.h:828:0, from C:\Users\PC\Desktop\RF22_CW_beacon\RF22_CW_beacon.ino:8: C:\Program Files (x86)\Arduino\libraries\RF22/HardwareSPI.h:20:0: warning: "SPI_MODE1" redefined [enabled by default] #define SPI_MODE1 0x04 ^ In file included from C:\Users\PC\Desktop\RF22_CW_beacon\RF22_CW_beacon.ino:7:0: C:\Users\PC\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\SPI\src/SPI.h:95:0: note: this is the location of the previous definition #define SPI_MODE1 SPI_MODE_1[/url] ^ In file included from C:\Program Files (x86)\Arduino\libraries\RF22/RF22.h:828:0, from C:\Users\PC\Desktop\RF22_CW_beacon\RF22_CW_beacon.ino:8: C:\Program Files (x86)\Arduino\libraries\RF22/HardwareSPI.h:21:0: warning: "SPI_MODE2" redefined [enabled by default] #define SPI_MODE2 0x08 ^ In file included from C:\Users\PC\Desktop\RF22_CW_beacon\RF22_CW_beacon.ino:7:0: C:\Users\PC\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\SPI\src/SPI.h:96:0: note: this is the location of the previous definition #define SPI_MODE2 SPI_MODE_2 ^ In file included from C:\Program Files (x86)\Arduino\libraries\RF22/RF22.h:828:0, from C:\Users\PC\Desktop\RF22_CW_beacon\RF22_CW_beacon.ino:8: C:\Program Files (x86)\Arduino\libraries\RF22/HardwareSPI.h:22:0: warning: "SPI_MODE3" redefined [enabled by default] #define SPI_MODE3 0x0C ^ In file included from C:\Users\PC\Desktop\RF22_CW_beacon\RF22_CW_beacon.ino:7:0: C:\Users\PC\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\SPI\src/SPI.h:97:0: note: this is the location of the previous definition #define SPI_MODE3 SPI_MODE_3 ^ In file included from C:\Program Files (x86)\Arduino\libraries\RF22/RF22.h:828:0, from C:\Users\PC\Desktop\RF22_CW_beacon\RF22_CW_beacon.ino:8: C:\Program Files (x86)\Arduino\libraries\RF22/HardwareSPI.h:35:20: error: conflicting declaration 'HardwareSPI SPI' extern HardwareSPI SPI; ^ In file included from C:\Users\PC\Desktop\RF22_CW_beacon\RF22_CW_beacon.ino:7:0: C:\Users\PC\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\SPI\src/SPI.h:429:17: error: 'SPI' has a previous declaration as 'SPIClass SPI' extern SPIClass SPI;//(1);// dummy params ^ In file included from C:\Users\PC\Desktop\RF22_CW_beacon\RF22_CW_beacon.ino:8:0: C:\Program Files (x86)\Arduino\libraries\RF22/RF22.h:941:86: error: 'Hardware_spi' was not declared in this scope RF22(uint8_t slaveSelectPin = SS, uint8_t interrupt = 0, GenericSPIClass *spi = &Hardware_spi); ^ RF22_CW_beacon:22: error: 'Hardware_spi' was not declared in this scope RF22 rf22(PA4, PA2, &Hardware_spi); ^ C:\Users\PC\Desktop\RF22_CW_beacon\RF22_CW_beacon.ino: In function 'void loop()': C:\Users\PC\Desktop\RF22_CW_beacon\RF22_CW_beacon.ino:166:34: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] morse_str("Auto test beacon",16); ^ C:\Users\PC\Desktop\RF22_CW_beacon\RF22_CW_beacon.ino:193:22: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] morse_str("OK 73",5); ^ Multiple libraries were found for "RTClock.h" Used: C:\Users\PC\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\RTClock Not used: C:\Program Files (x86)\Arduino\libraries\RTClock Not used: C:\Program Files (x86)\Arduino\libraries\MapleRTC Multiple libraries were found for "RadioHead.h" Used: C:\Users\PC\Documents\Arduino\libraries\RadioHead Not used: C:\Program Files (x86)\Arduino\libraries\RadioHead exit status 1 'Hardware_spi' was not declared in this scope This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences.

Стивестронг
Солнце 01 апреля 2018 13:22
Вы должны удалить все файлы, связанные с жестким
\ Arduino \ библиотеки \ rf22/
каталог.

Мессия
Солнце 01, 2018, 15:49
[Стивестронг - Солнце 01, 2018 13:22] - Вы должны удалить все файлы, связанные с жестким
\ Arduino \ библиотеки \ rf22/
каталог.
Тогда я получил - Arduino: 1.8.5 (Windows 7), Board: "Generic STM32F103C series, STM32F103C8 (20k RAM. 64k Flash), STLink, 72Mhz (Normal), Smallest (default)" In file included from C:\Users\PC\Desktop\RF22_CW_beacon\RF22_CW_beacon.ino:2:0: C:\Program Files (x86)\Arduino\libraries\RF22/RF22.h:828:25: fatal error: HardwareSPI.h: No such file or directory #include ^ compilation terminated. exit status 1 Error compiling for board Generic STM32F103C series. This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences.

Стивестронг
Солнце 01, 2018, 16:14
Вы должны включить: #include

Мессия
Солнце 01, 2018, 16:15
[Стивестронг - Солнце 01, 2018, 16:14] - Вы должны включить: #include

Стивестронг
Солнце 01, 2018, 16:21
Вам не нужно "Hardwarespi".
<SPI.час> достаточно, чтобы включить.

Мессия
Солнце 01, 2018, 17:01
Вот что включало - #include #include #include #include "tone.h" #include

Стивестронг
Солнце 01, 2018, 17:26
Просто замените RF22.H: 828 Линия #include

Мессия
Солнце 01, 2018, 17:40
[Стивестронг - Солнце 01, 2018, 17:26] - Просто замените RF22.H: 828 Линия #include

Стивестронг
Солнце 01 апреля 2018 г., 18:32
[Мессия - Солнце 01, 2018, 17:40] - Genericspiclass *spi = &SPI ??
В верхнем регионе, &SPI

Мессия
Солнце 01 апреля 2018 г., 18:36
[Стивестронг - Солнце 01, 2018, 18:32] -
[Мессия - Солнце 01, 2018, 17:40] - Genericspiclass *spi = &SPI ??
В верхнем регионе, &SPI
Я тоже изменился в эскизе - на &SPI.
Получение новой ошибки - Arduino: 1.8.5 (Windows 7), Board: "Generic STM32F103C series, STM32F103C8 (20k RAM. 64k Flash), STLink, 72Mhz (Normal), Smallest (default)" In file included from C:\Users\PC\Documents\Arduino\sketch's\RF22_CW_beacon\RF22_CW_beacon.ino:2:0: C:\Program Files (x86)\Arduino\libraries\RF22/RF22.h:941:86: error: could not convert '& SPI' from 'SPIClass*' to 'GenericSPIClass*' RF22(uint8_t slaveSelectPin = SS, uint8_t interrupt = 0, GenericSPIClass *spi = &SPI); ^ RF22_CW_beacon:16: error: no matching function for call to 'RF22::RF22(, , SPIClass*)' RF22 rf22(PA4, PA2, &SPI); ^ C:\Users\PC\Documents\Arduino\sketch's\RF22_CW_beacon\RF22_CW_beacon.ino:16:25: note: candidates are: In file included from C:\Users\PC\Documents\Arduino\sketch's\RF22_CW_beacon\RF22_CW_beacon.ino:2:0: C:\Program Files (x86)\Arduino\libraries\RF22/RF22.h:941:5: note: RF22::RF22(uint8_t, uint8_t, GenericSPIClass*) RF22(uint8_t slaveSelectPin = SS, uint8_t interrupt = 0, GenericSPIClass *spi = &SPI); ^ C:\Program Files (x86)\Arduino\libraries\RF22/RF22.h:941:5: note: no known conversion for argument 3 from 'SPIClass*' to 'GenericSPIClass*' C:\Program Files (x86)\Arduino\libraries\RF22/RF22.h:848:7: note: constexpr RF22::RF22(const RF22&) class RF22 ^ C:\Program Files (x86)\Arduino\libraries\RF22/RF22.h:848:7: note: candidate expects 1 argument, 3 provided C:\Program Files (x86)\Arduino\libraries\RF22/RF22.h:848:7: note: constexpr RF22::RF22(RF22&&) C:\Program Files (x86)\Arduino\libraries\RF22/RF22.h:848:7: note: candidate expects 1 argument, 3 provided C:\Users\PC\Documents\Arduino\sketch's\RF22_CW_beacon\RF22_CW_beacon.ino: In function 'void loop()': C:\Users\PC\Documents\Arduino\sketch's\RF22_CW_beacon\RF22_CW_beacon.ino:160:34: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] morse_str("Auto test beacon",16); ^ C:\Users\PC\Documents\Arduino\sketch's\RF22_CW_beacon\RF22_CW_beacon.ino:187:22: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] morse_str("OK 73",5); ^ Multiple libraries were found for "RTClock.h" Used: C:\Users\PC\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\RTClock Not used: C:\Program Files (x86)\Arduino\libraries\RTClock Not used: C:\Program Files (x86)\Arduino\libraries\MapleRTC Multiple libraries were found for "RadioHead.h" Used: C:\Users\PC\Documents\Arduino\libraries\RadioHead Not used: C:\Program Files (x86)\Arduino\libraries\RadioHead exit status 1 no matching function for call to 'RF22::RF22(, , SPIClass*)'

Стивестронг
Солнце 01 апреля 2018 18:38
Используйте Spiclass вместо genericspiclass.

Мессия
Солнце 01, 2018, 19:07
[Стивестронг - Солнце 01 апреля 2018 г., 18:38] - Используйте Spiclass вместо genericspiclass.
Arduino: 1.8.5 (Windows 7), Board: "Generic STM32F103C series, STM32F103C8 (20k RAM. 64k Flash), STLink, 72Mhz (Normal), Smallest (default)" C:\Users\PC\Documents\Arduino\sketch's\RF22_CW_beacon\RF22_CW_beacon.ino: In function 'void loop()': C:\Users\PC\Documents\Arduino\sketch's\RF22_CW_beacon\RF22_CW_beacon.ino:160:34: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] morse_str("Auto test beacon",16); ^ C:\Users\PC\Documents\Arduino\sketch's\RF22_CW_beacon\RF22_CW_beacon.ino:187:22: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] morse_str("OK 73",5); ^ C:\Program Files (x86)\Arduino\libraries\RF22\RF22.cpp:71:1: error: prototype for 'RF22::RF22(uint8_t, uint8_t, GenericSPIClass*)' does not match any in class 'RF22' RF22::RF22(uint8_t slaveSelectPin, uint8_t interrupt, GenericSPIClass *spi) ^ In file included from C:\Program Files (x86)\Arduino\libraries\RF22\RF22.cpp:6:0: C:\Program Files (x86)\Arduino\libraries\RF22/RF22.h:848:7: error: candidates are: constexpr RF22::RF22(RF22&&) class RF22 ^ C:\Program Files (x86)\Arduino\libraries\RF22/RF22.h:848:7: error: constexpr RF22::RF22(const RF22&) C:\Program Files (x86)\Arduino\libraries\RF22/RF22.h:941:5: error: RF22::RF22(uint8_t, uint8_t, SPIClass*) RF22(uint8_t slaveSelectPin = SS, uint8_t interrupt = 0, SPIClass *spi = &SPI); ^ Multiple libraries were found for "RTClock.h" Used: C:\Users\PC\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\RTClock Not used: C:\Program Files (x86)\Arduino\libraries\RTClock Not used: C:\Program Files (x86)\Arduino\libraries\MapleRTC Multiple libraries were found for "RadioHead.h" Used: C:\Users\PC\Documents\Arduino\libraries\RadioHead Not used: C:\Program Files (x86)\Arduino\libraries\RadioHead exit status 1 Error compiling for board Generic STM32F103C series.

Стивестронг
Солнце 01, 2018, 21:31
Не сложно, вы просто должны быть следствием и заменить все случаи одного и того же термина.
Проверьте сообщения об ошибках, а затем вы выясните, что делать.

Мессия
Пн, 02 апреля 2018 г. 15:28
[Стивестронг - Солнце 01, 2018, 21:31] - Не сложно, вы просто должны быть следствием и заменить все случаи одного и того же термина.
Проверьте сообщения об ошибках, а затем вы выясните, что делать.
изменил некоторые - Arduino: 1.8.5 (Windows 7), Board: "Generic STM32F103C series, STM32F103C8 (20k RAM. 64k Flash), STLink, 72Mhz (Normal), Smallest (default)" C:\Users\PC\Documents\Arduino\sketch's\RF22_CW_beacon\RF22_CW_beacon.ino: In function 'void loop()': C:\Users\PC\Documents\Arduino\sketch's\RF22_CW_beacon\RF22_CW_beacon.ino:160:34: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] morse_str("Auto test beacon",16); ^ C:\Users\PC\Documents\Arduino\sketch's\RF22_CW_beacon\RF22_CW_beacon.ino:187:22: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] morse_str("OK 73",5); ^ C:\Program Files (x86)\Arduino\libraries\RF22\RF22.cpp: In constructor 'RF22::RF22(uint8_t, uint8_t, SPIClass*)': C:\Program Files (x86)\Arduino\libraries\RF22\RF22.cpp:80:10: error: cannot convert 'SPIClass*' to 'GenericSPIClass*' in assignment _spi = spi; ^ Multiple libraries were found for "RTClock.h" Used: C:\Users\PC\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\RTClock Not used: C:\Program Files (x86)\Arduino\libraries\RTClock Not used: C:\Program Files (x86)\Arduino\libraries\MapleRTC Multiple libraries were found for "RadioHead.h" Used: C:\Users\PC\Documents\Arduino\libraries\RadioHead Not used: C:\Program Files (x86)\Arduino\libraries\RadioHead exit status 1 Error compiling for board Generic STM32F103C series.

Стивестронг
Пн, 02 апреля 2018 г., 16:43
[Мессия - Пн, апрель 02, 2018, 15:28] - изменил некоторые -
но не все.
В конечном итоге вы можете избавиться от сообщений об ошибках, если вставьте в начале RF22.H Файл: #define GenericSPIClass SPIClass

Мессия
Пн, 02 апреля 2018 г., 18:37
[Стивестронг - Пн, 02 апреля 2018 г., 16:43] -
[Мессия - Пн, апрель 02, 2018, 15:28] - изменил некоторые -
но не все.
В конечном итоге вы можете избавиться от сообщений об ошибках, если вставьте в начале RF22.H Файл: #define GenericSPIClass SPIClass

Стивестронг
Пн, 02 апреля 2018 г., 19:22
Вам нужно лучше опубликовать/прикрепить весь исходный код, который вы используете в настоящее время.
В противном случае облегчить указать, что делать, чтобы избавиться от ошибок.
Ссылка, которую вы вставляли в предыдущий пост, не содержит RF22.час.

Мессия
Пн, 02 апреля 2018 г., 8:20 вечера
[Стивестронг - Пн, 02 апреля 2018 г., 19:22] - Вам нужно лучше опубликовать/прикрепить весь исходный код, который вы используете в настоящее время.
В противном случае облегчить указать, что делать, чтобы избавиться от ошибок.
Ссылка, которую вы вставляли в предыдущий пост, не содержит RF22.час.
там только *.Файл CPP и эскиз
Правильно, как автор разместил его на своей странице (это на Укранинском Ланге все).
Здесь полный журнал ошибок - Arduino: 1.8.5 (Windows 7), Board: "Generic STM32F103C series, STM32F103C8 (20k RAM. 64k Flash), STLink, 72Mhz (Normal), Smallest (default)" In file included from C:\Users\PC\Documents\Arduino\sketch's\RF22_CW_beacon\RF22_CW_beacon.ino:2:0: C:\Program Files (x86)\Arduino\libraries\RF22/RF22.h:443:25: error: redefinition of 'class SPIClass' #define GenericSPIClass SPIClass ^ C:\Program Files (x86)\Arduino\libraries\RF22/GenericSPI.h:28:7: note: in expansion of macro 'GenericSPIClass' class GenericSPIClass ^ In file included from C:\Users\PC\Documents\Arduino\sketch's\RF22_CW_beacon\RF22_CW_beacon.ino:1:0: C:\Users\PC\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\SPI\src/SPI.h:176:7: error: previous definition of 'class SPIClass' class SPIClass { ^ C:\Users\PC\Documents\Arduino\sketch's\RF22_CW_beacon\RF22_CW_beacon.ino: In function 'void loop()': C:\Users\PC\Documents\Arduino\sketch's\RF22_CW_beacon\RF22_CW_beacon.ino:160:34: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] morse_str("Auto test beacon",16); ^ C:\Users\PC\Documents\Arduino\sketch's\RF22_CW_beacon\RF22_CW_beacon.ino:187:22: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] morse_str("OK 73",5); ^ Multiple libraries were found for "RTClock.h" Used: C:\Users\PC\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\RTClock Not used: C:\Program Files (x86)\Arduino\libraries\RTClock Not used: C:\Program Files (x86)\Arduino\libraries\MapleRTC Multiple libraries were found for "RadioHead.h" Used: C:\Users\PC\Documents\Arduino\libraries\RadioHead Not used: C:\Program Files (x86)\Arduino\libraries\RadioHead exit status 1 Error compiling for board Generic STM32F103C series.

Стивестронг
Пн, 02 апреля 2018 г., 21:19
[Мессия - Пн, 02 апреля 2018 г., 8:20 вечера] - C: \ Program Files (x86) \ arduino \ libraries \ rf22/RF22.час: 443: 25: ошибка: переопределение «класса Spiclass '
Еще раз, я не могу найти этот файл: RF22.час.
Где это?

Мессия
Пн, 02 апреля 2018 г., 22:40
[Стивестронг - Пн, 02 апреля 2018 г., 21:19] -
[Мессия - Пн, 02 апреля 2018 г., 8:20 вечера] - C: \ Program Files (x86) \ arduino \ libraries \ rf22/RF22.час: 443: 25: ошибка: переопределение «класса Spiclass '
Еще раз, я не могу найти этот файл: RF22.час.
Где это?
здесь - http: // www.Airspayce.com/mikem/arduino/ ... 2-1.40.молния
И здесь, домашняя страница RF22 http: // www.Airspayce.com/mikem/arduino/rf22/

Мессия
Вторник 03 апреля 2018 г. 14:28
Автор ответил на мое электронное письмо и поделился своей библиотекой RF22 -
Теперь все компиляции!
Здесь ссылка http: // www.Diygoodies.орг.ua/wp-content ... 1/RF22.молния
Автор страница - http: // www.Diygoodies.орг.UA/?lang = en

Спасибо за помощь!

Мессия
Ср. 04, 2018, 16:08
назад снова!
У меня снова есть проблемы...
Я забыл, что я очистился в своей эскизе следующей части - void AlarmFunction () { //if you want an interrupt every minute... time_t now = rt.getTime(); rt.setAlarmTime(now + 599); tm_ptr = rt.getTime(tm_ptr); Serial.print ("time: "); Serial.print (tm_ptr->tm_hour); Serial.print (":"); Serial.print (tm_ptr->tm_min); Serial.print (":"); Serial.println (tm_ptr->tm_sec); Serial.print ("date: "); Serial.print (tm_ptr->tm_mday); Serial.print ("/"); Serial.print (tm_ptr->tm_mon); Serial.print ("/"); Serial.println ((1900 + tm_ptr->tm_year)); timeflag=1; }

ZMEMW16
Ср. 04, 2018, 20:11
Я бы посмотрел в .H файл и посмотрите, какие на самом деле определены вызовы
SRP

Мессия
Чт, 05 апреля 2018 г., 12:00 утра
[ZMEMW16 - Ср. 04, 2018, 20:11] - Я бы посмотрел в .H файл и посмотрите, какие на самом деле определены вызовы
SRP
Я все еще новичок в c++
это вполне понятно, хотя
Есть что -то более сложное, чем просто #Define, я думаю

ZMEMW16
Чт, 05 апреля 2018 г., 10:05
Файл заголовка имеет больше, чем просто определяет, он также перечисляет методы/функции с их параметрами

Может быть, в Whatsit.час sum(byte i, byte j); sum(word i, word j); sum( int i, int j);

Мессия
Чт, 05 апреля 2018 г., 15:51
Разве это не говорит о библиотеке RTClock?

ZMEMW16
Чт, 05 апреля 2018 г., 8:20 вечера
Это было предназначено как пример, отсюда и имя «Whatsit».
Файл, который вам нужно будет посмотреть в iis rtclock.H, см. Какие вызовы доступны, это опечатка в вашем исходном файле
RF22_CW_beacon:35: error: no matching function for call to 'RTClock::getTime(tm*&)' tm_ptr = rt.getTime(tm_ptr);