41300895
Солнце 06 ноября 2016 г., 11:31
Я использую библиотеку из этой ветки (загружено JBForrer - вы можете увидеть его комментарий внизу):
http: // www.STM32duino.com/viewtopic.PHP ... 7&начало = 30
Я думаю, что эта библиотека также хорошо работала с Советом по обнаружению STM32F4, но как только я объявляю
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 с розеткой.
Проверьте вики
Также эта линия меня заинтриговала
Разместите ссылку на доску, хотя я подозреваю, какой это. У меня 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!
Любое предложение?
Весь код:
Я думаю, что в библиотеке 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), который вводит некоторые проблемы. В этом случае я бы порекомендовал вам использовать эта версия, Версия репозитория перед проблематичным коммитом. Просто загрузите и извлеките молнию, как обычно.
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 (), чтобы предоставить что -то как данные для написания на радио."? Можете ли вы записать конкретную команду, чтобы реализовать то, что вы сказали?
Это именно моя доска, я попробую ваше предложение, рад, что вы ответили мне,
Спасибо
РЕДАКТИРОВАТЬ: Что вы имеете в виду под «Использовать Millis (), чтобы предоставить что -то как данные для написания на радио."? Можете ли вы записать конкретную команду, чтобы реализовать то, что вы сказали?
ZMEMW16
Солнце 13 ноября 2016 г., 8:52 вечера
Ну, схема не будет проблемой, чтобы найти. это в руководстве пользователя
Логика удаления аспектов DHT и использования Millis - это строительные блоки, заключается в том, что Millis является известной и легко проверяемой функцией, серийный.println (millis ());
временно удаление аспекта DHT - это устранение потенциальной проблемы. Решите это, используя их пример в качестве теста DHT.
Используя миллисы, вы можете просто создать структуру пакета с счетчиком и миллисом, как длинные поля Int.
Пример DHT, я думаю, преобразует значения в строку ASCII для печати, но вы можете отправить необработанные значения в качестве поля.
Наступает начало отправлять пример данных из RF24, по сути, используя условно «хороший» код.
Объедините два эскиза в третьем и адаптируйте.
Давным -давно мой учитель по математике был счастлив, что мне было 3, 4 или 5 глав, которые стояли впереди в упражнениях, но не все остальные получили одинаковые решения.
Имейте в виду, он возражал, когда я работал каждую сторону «доказать, что это равняется этому уравнению тригера». Один вперед, другой назад, пока они не встретятся, 1 == 1 или 1 == 0 ой. Я до сих пор не следую, почему.
Стивен
Логика удаления аспектов 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 . Потому что есть так много конфликтов в использовании библиотек, предоставленных предыдущими авторами на этом форуме
Теперь все в совершенно беспорядке, я надеюсь, что каждый может помочь мне написать код для передачи/получения данных с использованием 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 (Последний комментарий этой ссылки)
Мой код сейчас:
Вот что я сделал:
+ Прокомментировал сеть.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.у.Великобритания для электронной почты
Думал, что добавлю это, сделал, попытался повторнокомпилировать, конечно (я знал, что честно ), перезапустить
Тогда это сдалось с
это на первом помечении пропущенного содействия библиотеке, добавил Фред также добавил 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
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, но не повредит попробовать.
Прокомментируйте весь код 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 "так, чтобы это подходило вашей либе.
Количество 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, но не повредит попробовать.
Прокомментируйте весь код SPI в вашем эскизе, вам просто нужно #include <SPI.час> и SPI.begin () в настройке.
Еще одна вещь, которую я заметил, это то, что вы используете Spiclass (3), который на STM32F1, который я использую, делится выводами с отладкой JTAG, чтобы обойти это, вам нужно будет поместить DisableDebUgports () в настройке. Не уверен, что это повлияет на F4, но не повредит попробовать.
disableDebugPorts();
Акронис
Чт 27 июля 2017 г. 8:17 утра
Привет
Как назначить эту библиотеку SPI3 ?
Специальное сокет для NRF24L01 на плате STM32F407VET6 Black
Как назначить эту библиотеку SPI3 ?
Специальное сокет для NRF24L01 на плате STM32F407VET6 Black
Стивестронг
Чт 27 июля 2017 г. 8:27
[Акронис - Чт 27 июля 2017 г. 8:17] - Как назначить эту библиотеку SPI3 ?
SPIClass mSPI(3);
Акронис
Чт 27 июля 2017 г. 8:32 утра
Спасибо !
Пожалуйста, скажите мне, как исправить следующий пример для SPI3 STM32F407VET6, чтобы работать над SPI3
Пожалуйста, скажите мне, как исправить следующий пример для 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);
Так правильно ?
Радио 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.
Спасибо всем.
вопрос закрыт
Радио RF24 (PB6, PB7);
Эта библиотека работает на STM32F407VET6.
Спасибо всем.
вопрос закрыт
Rogerclark
Сб 29 июля 2017 г., 22:03
Пожалуйста, обновите, что вы первоначально публикуете и добавьте решены в заголовок и предпочтительно поместите решение в начало первого поста
Акронис
Солнце 30 июля 2017 г. 2:04
Привет, Рогеркларк.
Это не моя тема, а не мой первый пост,
Я не знаю, как добавить сообщение.
Скажи мне, что тебе нужно и как это сделать.
Это не моя тема, а не мой первый пост,
Я не знаю, как добавить сообщение.
Скажи мне, что тебе нужно и как это сделать.
Rogerclark
Солнце 30 июля 2017 г. 10:16
Ах. ХОРОШО
Ты не можешь этого сделать.
Я думал, как вы указали, что это сработало, и вы сказали: «Спасибо всем. "Вы, должно быть, запустили протектор
На OP (и I) может изменить заголовок потока и лучшее, если OP делает это
Ты не можешь этого сделать.
Я думал, как вы указали, что это сработало, и вы сказали: «Спасибо всем. "Вы, должно быть, запустили протектор
На OP (и I) может изменить заголовок потока и лучшее, если OP делает это