[Решено] STM32F4 +RF24 Проблема библиотеки

41300895
Солнце 06 ноября 2016 г., 11:31
Я использую библиотеку из этой ветки (загружено JBForrer - вы можете увидеть его комментарий внизу):
http: // www.STM32duino.com/viewtopic.PHP ... 7&начало = 30
Я думаю, что эта библиотека также хорошо работала с Советом по обнаружению STM32F4, но как только я объявляю RF24 radio(PA3,PA4)

Олли
Солнце 06 ноября 2016 г. 16:35
Извините, у меня нет ответа для вас, но только дружелюбный отзыв. Раздражает, что одно и то же сообщение размещено в 3 разных местах.

Ура, Олли

41300895
Солнце 06 ноября 2016 г., 17:32
Извините, я был в замешательстве, не знал, где отправить, поэтому я опубликовал любой форум, актуально, очень извиняюсь за раздражение вас

ZMEMW16
Пн, 07 ноября 2016 г., 10:58 утра
Моргает ли PD13 в мгновение ока?
Разместите ссылку на доску, хотя я подозреваю, какой это. У меня 2 с розеткой.
Проверьте вики

Также эта линия меня заинтриговала #include <../../libraries/RF24/RF24.h>

41300895
Пн, 07 ноября 2016 г., 13:14
Как ваше предложение, я удалил путь ../../библиотека/.. и я скомпилировал + загружену успешно, теперь мой светодиод мигает, но есть другая проблема. Кажется, что мой код застрял в сети линии.Обновление (если я добавлю эту строку, светодиод PD13 всегда высоко, но когда я прокомментирую ее, снова мигает светодиод PD13) вот код: #include #include #include #include #define DHTPIN PC0 #define DHTTYPE DHT11 // DHT 11 #define DHTPIN PC0 DHT dht(DHTPIN, DHTTYPE); // Radio with CE & CSN connected to pins PB0 & PB1 // Set up nRF24L01 radio on SPI-1 bus (MOSI-PA7, MISO-PA6, SCLK-PA5) ... IRQ not used? HardwareSerial Myboard(USART1,PB6,PB7); HardwareSPI SPI(1); const uint64_t pipes[2] = { 0xCCCCCCCC3C, 0xCCCCCCCCC3 }; RF24 radio(PB0,PB1); RF24Network network(radio); const uint16_t this_node = 1; const uint16_t parent_node = 0; const unsigned long interval = 1000; // every sec struct payload_t { // Structure of our payload unsigned long node; byte DHT11temp; byte DHT11hum; }; // Structure of our message struct message_1 { float temperature; float humidity; }; message_1 message; // The network header initialized for this node RF24NetworkHeader header(parent_node); void setup() { Myboard.begin(19200); SPI.begin(); pinMode(PD13, OUTPUT); radio.begin(); // optionally, increase the delay between retries & # of retries radio.setRetries(15,15); radio.setChannel(0x4c); radio.setPALevel(RF24_PA_MAX); // Open pipes to other nodes for communication // This simple sketch opens two pipes for these two nodes to communicate // back and forth. // Open 'our' pipe for writing // Open the 'other' pipe for reading, in position #1 (we can have up to 5 pipes open for reading) radio.openWritingPipe(pipes[1]); radio.openReadingPipe(1,pipes[0]); // Start listening radio.startListening(); // Dump the configuration of the rf unit for debugging radio.printDetails(); delay(50); network.begin(90, this_node); // Initialize the DHT library // Initialize the DHT library dht.begin(); delay(50); } void loop() { payload_t packet; byte h = dht.readHumidity(); //Read temperature as Celsius byte t = dht.readTemperature(); // Construct the message we'll send message = (message_1){t,h}; // Headers will always be type 1 for this node // We set it again each loop iteration because fragmentation of the messages might change this between loops header.type = '1'; digitalWrite(PD13, HIGH); Myboard.println("HIGH"); delay(1000); // Update network data network.update(); // Writing the message to the network means sending it if (network.write(header, &message, sizeof(message))) { Myboard.print("Temp = "); Myboard.println(t); Myboard.print("Humid = "); Myboard.println(h); } else { Myboard.print("Could not send message\n"); } digitalWrite(PD13, LOW); Myboard.println("LOW"); delay(1000); // Wait a bit before we start over again delay(interval); }

ZMEMW16
Пн, 07 ноября 2016 г., 16:23
что делает радио.printdetails (); давать?

Стивестронг
Пн, 07 ноября 2016 г., 17:03
Я не уверен, но я думаю, что последний класс печати кажется проблематичным, мне также пришлось вернуть локально эти изменения, чтобы избежать некоторых .Print () связанные проблемы.

41300895
Пн, 07 ноября 2016 г., 17:39
Теперь это становится странным сейчас, после нескольких часов редактирования, я понял линию «Сеть».Update () заставляет мой код застрять, потому что всегда светодиод PD13. Если я удалю его, светодиод PD13 обычно мигает.
Я думаю, что в библиотеке RF24Network, которую я использовал, есть некоторые ошибки с доской дисковой платы STM32F4!
Любое предложение?
Весь код: #include #include #include #include #define DHTPIN PC0 #define DHTTYPE DHT11 // DHT 11 #define DHTPIN PC0 DHT dht(DHTPIN, DHTTYPE); // Radio with CE & CSN connected to pins PB0 & PB1 // Set up nRF24L01 radio on SPI-1 bus (MOSI-PA7, MISO-PA6, SCLK-PA5) ... IRQ not used? HardwareSerial Myboard(USART1,PB6,PB7); HardwareSPI MySPI(1); const uint64_t pipes[2] = { 0xCCCCCCCC3C, 0xCCCCCCCCC3 }; RF24 radio(PB0,PB1); RF24Network network(radio); const uint16_t this_node = 1; const uint16_t parent_node = 0; const unsigned long interval = 1000; // every sec struct payload_t { // Structure of our payload unsigned long node; byte DHT11temp; byte DHT11hum; }; // Structure of our message struct message_1 { float temperature; float humidity; }; message_1 message; // The network header initialized for this node RF24NetworkHeader header(parent_node); void setup() { Myboard.begin(19200); MySPI.begin(SPI_9MHZ,MSBFIRST,SPI_MODE0); pinMode(PD13, OUTPUT); radio.begin(); // optionally, increase the delay between retries & # of retries radio.setRetries(15,15); radio.setChannel(0x4c); radio.setPALevel(RF24_PA_MAX); // Open pipes to other nodes for communication // This simple sketch opens two pipes for these two nodes to communicate // back and forth. // Open 'our' pipe for writing // Open the 'other' pipe for reading, in position #1 (we can have up to 5 pipes open for reading) radio.openWritingPipe(pipes[1]); radio.openReadingPipe(1,pipes[0]); // Start listening radio.startListening(); // Dump the configuration of the rf unit for debugging radio.printDetails(); delay(50); network.begin(90, this_node); // Initialize the DHT library // Initialize the DHT library dht.begin(); delay(50); } void loop() { payload_t packet; byte h = dht.readHumidity(); //Read temperature as Celsius byte t = dht.readTemperature(); // Construct the message we'll send message = (message_1){t,h}; // Headers will always be type 1 for this node // We set it again each loop iteration because fragmentation of the messages might change this between loops header.type = '1'; digitalWrite(PD13, HIGH); Myboard.println("HIGH"); delay(1000); // Update network data network.update(); // Writing the message to the network means sending it // if (network.write(header, &message, sizeof(message))) { // Myboard.print("Temp = "); Myboard.println(t); // Myboard.print("Humid = "); Myboard.println(h); // } else { // Myboard.print("Could not send message\n"); // } digitalWrite(PD13, LOW); Myboard.println("LOW"); delay(1000); // Wait a bit before we start over again delay(interval); }

41300895
Сб 12 ноября 2016 г. 12:30
Любой мог бы мне помочь, пожалуйста?

Стивестронг
Сб 12 ноября 2016 г. 8:19
1. Вы уверены, что светодиод включен, когда PD13 «высокий»? Потому что чаще светодиоды управляются «низкими» сигналами.
2. Если светодиод включен, когда PD13 «низкий», то ваша проблема на самом деле - MyBoard.print () "функция. И это, как я уже упоминал ранее, это может связано с одним из последних коммитов в репозитории (от Xymopen), который вводит некоторые проблемы. В этом случае я бы порекомендовал вам использовать эта версия, Версия репозитория перед проблематичным коммитом. Просто загрузите и извлеките молнию, как обычно.

ZMEMW16
Сб 12 ноября 2016 г. 12:43
41300895 написал:Теперь это становится странным сейчас, после нескольких часов редактирования, я понял линию «Сеть».Update () заставляет мой код застрять, потому что всегда светодиод PD13. Если я удалю его, светодиод PD13 обычно мигает.

ZMEMW16
Солнце 13 ноября 2016 г., 7:37 утра
ZMEMW16 написал:41300895 написал:Теперь это становится странным сейчас, после нескольких часов редактирования, я понял линию «Сеть».Update () заставляет мой код застрять, потому что всегда светодиод PD13. Если я удалю его, светодиод PD13 обычно мигает.

41300895
Солнце 13 ноября 2016 г., 9:44
https: // www.Google.компонент.vn/search?Q = STM3 ... KFLCETM%3A
Это именно моя доска, я попробую ваше предложение, рад, что вы ответили мне,
Спасибо
РЕДАКТИРОВАТЬ: Что вы имеете в виду под «Использовать Millis (), чтобы предоставить что -то как данные для написания на радио."? Можете ли вы записать конкретную команду, чтобы реализовать то, что вы сказали?

ZMEMW16
Солнце 13 ноября 2016 г., 8:52 вечера
Ну, схема не будет проблемой, чтобы найти. это в руководстве пользователя : D

Логика удаления аспектов DHT и использования Millis - это строительные блоки, заключается в том, что Millis является известной и легко проверяемой функцией, серийный.println (millis ());
временно удаление аспекта DHT - это устранение потенциальной проблемы. Решите это, используя их пример в качестве теста DHT.

Используя миллисы, вы можете просто создать структуру пакета с счетчиком и миллисом, как длинные поля Int.
Пример DHT, я думаю, преобразует значения в строку ASCII для печати, но вы можете отправить необработанные значения в качестве поля.
Наступает начало отправлять пример данных из RF24, по сути, используя условно «хороший» код.
Объедините два эскиза в третьем и адаптируйте.

Давным -давно мой учитель по математике был счастлив, что мне было 3, 4 или 5 глав, которые стояли впереди в упражнениях, но не все остальные получили одинаковые решения.
Имейте в виду, он возражал, когда я работал каждую сторону «доказать, что это равняется этому уравнению тригера». Один вперед, другой назад, пока они не встретятся, 1 == 1 или 1 == 0 ой. Я до сих пор не следую, почему.

Стивен

41300895
Пн 14 ноября 2016 г. 14:45
Все еще не повезло :(
Теперь все в совершенно беспорядке, я надеюсь, что каждый может помочь мне написать код для передачи/получения данных с использованием NRF24L01 с STM32F4 Discovery . Потому что есть так много конфликтов в использовании библиотек, предоставленных предыдущими авторами на этом форуме

ZMEMW16
Пн 14 ноября 2016 г., 15:10
почти уверен, что я где -то открытие 407 .. ..
Я пойду искать это

Стивен

Мэнни
Пн 14 ноября 2016 г., 18:03
Я использую эту библиотеку RF24, которая была прикреплена к этому сообщению RF24_STM32 с RF24Network от Здесь Я думаю, что это нужно было несколько незначительных комментариев, чтобы заставить его компилировать.

41300895
Ср 23 ноября 2016 г., 5:44
Спасибо за ваше преданность!
Эй, Мэнни, ты можешь показать мне конкретно, как я могу заставить это работать?

41300895
Ср 23 ноября 2016 г. 15:42
Мне удалось немного лучше получить вещи!
Вот что я сделал:
+ Прокомментировал сеть.Update (), потому что эта строка заставляет мой код застрять!
+ Отсюда я использовал библиотеку SPI: https: // github.com/rogerclarkmelbourne/arduino_stm32 (В STM32F4/Libraries/SPI) - I вырезать и вставить его в путь: C: \ users \ asus \ Documents \ Arduino \ Libraries \
+ Отсюда я использовал библиотеку DHT: https: // github.com/markruys/arduino-dht
+ И библиотека RF24Network отсюда: https: // github.com/maniacbug/rf24network
+ Библиотека RF24 отсюда: http: // www.STM32duino.com/viewtopic.PHP ... = 30#P11251 (Последний комментарий этой ссылки)
Мой код сейчас: #include "nRF24L01.h" #include #include #include #include "DHT.h"; DHT dht; HardwareSerial Myboard(USART1,PB6,PB7); // Set up nRF24L01 radio on SPI-1 bus (MOSI-PA7, MISO-PA6, SCLK-PA5) ... IRQ not used? RF24 radio(PB0,PB1); RF24Network network(radio); const uint64_t pipes[2] = {0xCCCCCCCC3C, 0xCCCCCCCCC3}; // Radio pipe addresses for the 2 nodes to communicate. // Constants that identify this node and the node to send data to const uint16_t this_node = 1; const uint16_t parent_node = 0; // The network header initialized for this node RF24NetworkHeader header(parent_node); void setup() { // put your setup code here, to run once: pinMode(PD13, OUTPUT); Myboard.begin(115200); dht.setup(PC0); SPI.begin(); SPI.setDataMode(SPI_MODE0); SPI.setBitOrder(MSBFIRST); radio.begin(); network.begin(90, this_node); radio.setRetries(15,15); radio.setChannel(0x4c); radio.setAutoAck(false); radio.setDataRate(RF24_1MBPS); radio.setCRCLength(RF24_CRC_16); radio.setPALevel(RF24_PA_MAX); radio.openWritingPipe(pipes[1]); radio.openReadingPipe(1,pipes[0]); radio.printDetails(); } void loop() { // Update network data //network.update(); delay(dht.getMinimumSamplingPeriod()); float h = dht.getHumidity(); float t = dht.getTemperature(); header.type = '1'; // Construct the message we'll send struct message_1 { float temperature; float humidity; }; message_1 message; radio.setPayloadSize(sizeof(message)); message = (message_1){ t, h }; digitalWrite(PD13, HIGH); Myboard.println("HIGH"); delay(1000); radio.powerUp(); delay(1); radio.stopListening(); delay(1); bool ok = network.write(header,&message,sizeof(message)); if (ok) Myboard.println("Send Ok."); else Myboard.println("Send Failed."); digitalWrite(PD13, LOW); Myboard.println("LOW"); delay(1000); }

Мэнни
Чт 24 ноября 2016 г., 17:18
Это то, что радио.PrintDetails выходы на моем STM32F1
STATUS = 0x0E RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0 RX_ADDR_P0-1 = 0xCC 0xCC 0xCC 0x3C 0xCC 0xCC 0xCC 0xCC 0x3C 0x3C RX_ADDR_P2-5 = 0x33 0xCE 0x3E 0xE3 TX_ADDR = 0xE7 0xE7 0xE7 0xE7 0xE7 RX_PW_P0-6 = 0x20 0x20 0x20 0x20 0x20 0x20 EN_AA = 0x3E EN_RXADDR = 0x3F RF_CH = 0x3C RF_SETUP = 0x27 CONFIG = 0x0F DYNPD/FEATURE = 0x3F 0x04 Data Rate = 250KBPS Model = nRF24L01+ CRC Length = 16 bits PA Power = PA_MAX

41300895
Чт 24 ноября 2016 г. 18:24
Мэнни написал:Это то, что радио.PrintDetails выходы на моем STM32F1
STATUS = 0x0E RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0 RX_ADDR_P0-1 = 0xCC 0xCC 0xCC 0x3C 0xCC 0xCC 0xCC 0xCC 0x3C 0x3C RX_ADDR_P2-5 = 0x33 0xCE 0x3E 0xE3 TX_ADDR = 0xE7 0xE7 0xE7 0xE7 0xE7 RX_PW_P0-6 = 0x20 0x20 0x20 0x20 0x20 0x20 EN_AA = 0x3E EN_RXADDR = 0x3F RF_CH = 0x3C RF_SETUP = 0x27 CONFIG = 0x0F DYNPD/FEATURE = 0x3F 0x04 Data Rate = 250KBPS Model = nRF24L01+ CRC Length = 16 bits PA Power = PA_MAX

Мэнни
Пт 25 ноября 2016 г., 7:02
Можете ли вы реализовать то же самое с платой STM32F4 Извините, у вас нет F4, чтобы попробовать.

41300895
Пт 25 ноября 2016 г., 18:31
Так грустно, что любой может мне помочь? Я боролся с этим в течение нескольких дней, и сейчас я довольно отчаянно нуждаюсь в :?

ZMEMW16
Пт 25 ноября 2016 г., 11:35 вечера
Я не понимаю, почему вы сделали или должны это сделать + Отсюда я использовал библиотеку SPI: https: // github.com/rogerclarkmelbourne/arduino_stm32 (В STM32F4/Libraries/SPI) - I вырезать и вставить его в путь: C: \ users \ asus \ Documents \ Arduino \ Libraries \ Это вообще не должно смотреть там, есть ли причуда с F4 SPI?

Стивен

41300895
Сб 26 ноября 2016 г., 3:49
Я сделал это, потому что, если я оставлю папку SPI в боковом каталоге STM32F4, она не сможет скомпилироваться, если я добавлю линию #include "SPI.час"

ZMEMW16
Сб 26 ноября 2016 г., 5:41
Компиляция для Discover F407, простое мигание на PB6/PB7 с добавленным включением SPI.час
это на первом помечении пропущенного содействия библиотеке, добавил Фред также добавил ABC@X.у.Великобритания для электронной почты
Думал, что добавлю это, сделал, попытался повторнокомпилировать, конечно (я знал, что честно :)), перезапустить

Тогда это сдалось с In file included from /home/stephen/sketchbook/Blinki2c/Blinki2c.ino:19:0: /home/stephen/sketchbook/hardware/Arduino_STM32/STM32F4/libraries/SPI/src/SPI.h:362:17: error: conflicting declaration 'SPIClass SPI' extern SPIClass SPI;//(1);// dummy params ^ In file included from /home/stephen/sketchbook/hardware/Arduino_STM32/STM32F4/cores/maple/wirish.h:49:0, from /home/stephen/sketchbook/hardware/Arduino_STM32/STM32F4/cores/maple/WProgram.h:27, from /home/stephen/sketchbook/hardware/Arduino_STM32/STM32F4/cores/maple/Arduino.h:3, from /tmp/arduino_build_22323/sketch/Blinki2c.ino.cpp:1: /home/stephen/sketchbook/hardware/Arduino_STM32/STM32F4/cores/maple/libmaple/HardwareSPI.h:276:20: error: 'SPI' has a previous declaration as 'HardwareSPI SPI' extern HardwareSPI SPI; ^ Using library SPI at version 1.0 in folder: /home/stephen/sketchbook/hardware/Arduino_STM32/STM32F4/libraries/SPI exit status 1 Error compiling for board STM32 Discovery F407.

41300895
Сб 26 ноября 2016 г., 9:56
У меня была такая точная ошибка, как ты, но я использовал метод в этой теме, и я обошел эту ошибку!
http: // www.STM32duino.com/viewtopic.PHP ... ESPI#P9227

Просто просто прокомментируйте линию extred Hardwarespi ... в твоем хардсеспи.H Файл. Если я правильно помню, этот файл находится под ...\ Stm32f4 \ cores \ maple \ libmaple

Стивестронг
Сб 26 ноября 2016 г. 12:04
41300895 написал:Я сделал это, потому что, если я оставлю папку SPI в боковом каталоге STM32F4, она не сможет скомпилироваться, если я добавлю линию #include "SPI.час"

41300895
Солнце 27 ноября 2016 г. 2:36 утра
Стивестронг написал:41300895 написал:Я сделал это, потому что, если я оставлю папку SPI в боковом каталоге STM32F4, она не сможет скомпилироваться, если я добавлю линию #include "SPI.час"

Мэнни
Солнце 27 ноября 2016 г., 11:57
Попробуйте прикрепленную библиотеку, я взломал ее, чтобы Spiclass определяется в строке 13 RF24_STM32.CPP, мне так проще сделать, вы просто должны помнить, чтобы изменить класс, если вы используете разные булавки SPI.

Прокомментируйте весь код SPI в вашем эскизе, вам просто нужно #include <SPI.час> и SPI.begin () в настройке.

Еще одна вещь, которую я заметил, это то, что вы используете Spiclass (3), который на STM32F1, который я использую, делится выводами с отладкой JTAG, чтобы обойти это, вам нужно будет поместить DisableDebUgports () в настройке. Не уверен, что это повлияет на F4, но не повредит попробовать. disableDebugPorts();

41300895
Солнце 27 ноября 2016 г. 13:45
Дорогой Мэнни,
Количество PINS SPI на самом деле может измениться в моей программе, поэтому, как вы сказали, я изменил их на Spiclass MySpi (1). Это означает, что мне не нужно использовать вашу команду отключения порта
Я скопировал вашу либера..\ Stm32f4 \
Я также изменил #include "RF24.H "Внутри rf24network.H до #include "rf24_stm32.H "так, чтобы это подходило вашей либе. #include #include #include #include ; #define DHTPIN 2 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); HardwareSerial Myboard(USART1,PB6,PB7); SPIClass MySPI(1); // Radio with CE & CSN connected to pins 7 & 8 RF24 radio(PB0, PB1); RF24Network network(radio); const uint64_t pipes[2] = {0xCCCCCCCC3C, 0xCCCCCCCCC3}; // Radio pipe addresses for the 2 nodes to communicate. // Constants that identify this node and the node to send data to const uint16_t this_node = 1; const uint16_t parent_node = 0; struct message_1 { float temperature; float humidity; }; message_1 message; // The network header initialized for this node RF24NetworkHeader header(parent_node); void setup() { // put your setup code here, to run once: pinMode(PD13, OUTPUT); Myboard.begin(115200); // Initialize the DHT library dht.begin(); // Initialize all radio related modules MySPI.begin(); radio.setRetries(15,15); radio.setChannel(0x4c); radio.setAutoAck(false); radio.setPayloadSize(sizeof(message)); radio.setCRCLength(RF24_CRC_16); radio.setPALevel(RF24_PA_MAX); radio.openWritingPipe(pipes[1]); radio.openReadingPipe(1,pipes[0]); radio.begin(); delay(5); network.begin(90, this_node); radio.printDetails(); } void loop() { // Update network data network.update(); // Read humidity (percent) float h = dht.readHumidity(); // Read temperature as Celsius float t = dht.readTemperature(); // Headers will always be type 1 for this node // We set it again each loop iteration because fragmentation of the messages might change this between loops header.type = '1'; // Construct the message we'll send message = (message_1){ t, h }; digitalWrite(PD13, HIGH); Myboard.println("HIGH"); delay(1000); bool ok = network.write(header,&message,sizeof(message)); if (ok) Myboard.println("Send Ok."); else Myboard.println("Send Failed."); digitalWrite(PD13, LOW); Myboard.println("LOW"); delay(1000); }

Клероне
Вт 28 марта 2017 г. 2:04
Мэнни написал:Попробуйте прикрепленную библиотеку, я взломал ее, чтобы Spiclass определяется в строке 13 RF24_STM32.CPP, мне так проще сделать, вы просто должны помнить, чтобы изменить класс, если вы используете разные булавки SPI.

Прокомментируйте весь код SPI в вашем эскизе, вам просто нужно #include <SPI.час> и SPI.begin () в настройке.

Еще одна вещь, которую я заметил, это то, что вы используете Spiclass (3), который на STM32F1, который я использую, делится выводами с отладкой JTAG, чтобы обойти это, вам нужно будет поместить DisableDebUgports () в настройке. Не уверен, что это повлияет на F4, но не повредит попробовать. disableDebugPorts();

Акронис
Чт 27 июля 2017 г. 8:17 утра
Привет

Как назначить эту библиотеку SPI3 ?
Специальное сокет для NRF24L01 на плате STM32F407VET6 Black

Стивестронг
Чт 27 июля 2017 г. 8:27
[Акронис - Чт 27 июля 2017 г. 8:17] - Как назначить эту библиотеку SPI3 ?
SPIClass mSPI(3);

Акронис
Чт 27 июля 2017 г. 8:32 утра
Спасибо !

Пожалуйста, скажите мне, как исправить следующий пример для SPI3 STM32F407VET6, чтобы работать над SPI3 /* Sensor Receiver. Each sensor modue has a unique ID. TMRh20 2014 - Updates to the library allow sleeping both in TX and RX modes: TX Mode: The radio can be powered down (.9uA current) and the Arduino slept using the watchdog timer RX Mode: The radio can be left in standby mode (22uA current) and the Arduino slept using an interrupt pin */ #include #include "nRF24L01_STM32.h" #include "RF24_STM32.h" // Set up nRF24L01 radio on SPI-1 bus (MOSI-PA7, MISO-PA6, SCLK-PA5) ... IRQ not used? RF24 radio(PB0,PB1); const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL }; // Radio pipe addresses for the 2 nodes to communicate. struct payload_t { // Structure of our payload unsigned long node; unsigned long counter; float DHT11temp; float DHT11hum; int batteryLevel; }; void setup(){ Serial.begin(9600); delay(1000); Serial.println("\n\rRF24 Sensor Receiver"); SPI.begin(); SPI.setDataMode(SPI_MODE0); SPI.setBitOrder(MSBFIRST); // Setup and configure rf radio radio.begin(); // optionally, increase the delay between retries & # of retries radio.setRetries(15,15); radio.setChannel(0x4c); radio.setPALevel(RF24_PA_LOW); // Open pipes to other nodes for communication // This simple sketch opens two pipes for these two nodes to communicate // back and forth. // Open 'our' pipe for writing // Open the 'other' pipe for reading, in position #1 (we can have up to 5 pipes open for reading) radio.openWritingPipe(pipes[1]); radio.openReadingPipe(1,pipes[0]); // Start listening radio.startListening(); // Dump the configuration of the rf unit for debugging radio.printDetails(); } void loop(){ payload_t packet; // Receive each packet, dump it out if ( radio.available() ) { // if there is data ready radio.read( &packet, sizeof(packet) ); // Get the payload, and see if this was the last one. Serial.print("Received from Sensor: "); Serial.print(packet.node); Serial.print(" #:"); Serial.println(packet.counter); Serial.print("DHT11 Temp = "); Serial.print(packet.DHT11temp); Serial.print(" DHT11 Humidity = "); Serial.print(packet.DHT11hum); Serial.print(" Batt = "); Serial.println((float)packet.batteryLevel/(float)266.7); } }

Стивестронг
Чт 27 июля 2017 г. 8:48 утра
Если вы обратитесь к этот пакет, есть много работы сделать, чтобы очистить его...

Акронис
Чт 27 июля 2017 г. 9:02 утра
Что означает эта строка ?

Радио RF24 (PB0, PB1);

В примерах, написанных разными булавками .
Что я должен указать ?

RF24 Radio (CE_PIN, CSN_PIN); ???


Радио RF24 (PB6, PB7);
Так правильно ?

Стивестронг
Чт 27 июля 2017 г. 9:50 утра
[Акронис - Чт 27 июля 2017 г. 9:02 утра] - RF24 Radio (CE_PIN, CSN_PIN); ???
Радио RF24 (PB6, PB7);
Так правильно ?
Кажется, так.

Кстати, вы видели эту либера? https: // github.com/jaretburkett/rf24-stm

Акронис
Сб 29 июля 2017 г. 13:47
ViewTopic.PHP?F = 39&t = 1526&начало = 20#P20500
Радио RF24 (PB6, PB7);


Эта библиотека работает на STM32F407VET6.
Спасибо всем.
вопрос закрыт

Rogerclark
Сб 29 июля 2017 г., 22:03
Пожалуйста, обновите, что вы первоначально публикуете и добавьте решены в заголовок и предпочтительно поместите решение в начало первого поста

Акронис
Солнце 30 июля 2017 г. 2:04
Привет, Рогеркларк.

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

Rogerclark
Солнце 30 июля 2017 г. 10:16
Ах. ХОРОШО

Ты не можешь этого сделать.

Я думал, как вы указали, что это сработало, и вы сказали: «Спасибо всем. "Вы, должно быть, запустили протектор

На OP (и I) может изменить заголовок потока и лучшее, если OP делает это

Первые шаги с STM32F429 Discovery