SparkFun nRF5282 Прорыв к MicroOLED SPI
Поэтому я пытаюсь работать над небольшим проектом, и я хотел бы выводить данные из nRF52 в SparkFun MicroOled через SPI. Я могу использовать демонстрационный пример на моем Arduino Uno, но я не могу получить какую-либо функциональность на nRF52 с теми же назначениями выводов. Я подозреваю, что это как-то связано с работой SPI на nRF52, и после нескольких часов попыток я не могу понять это.
Поэтому я предполагаю, что мой вопрос в основном связан с тем, как заставить SPI работать с nRF52, используя библиотеки Arduino, SPI, Nordic SDK и VisualGDB. Сам код представляет собой MicroOLED_Demo без каких-либо модификаций, как будто я могу заставить это работать, тогда я думаю, что могу достичь своих целей. Спасибо за любую помощь
E2A Оба элемента работают индивидуально. Как я уже говорил выше, microOLED работает на Arduino Uno, и я проверил работу nRF52 с помощью программы Bluetooth. Беда в том, чтобы заставить их работать вместе. Это должно быть ясно: я хочу подключить MicroOLED к nRF52 и иметь ту же функциональность, которую я могу получить с MicroOLED на Arduino. Таким образом, по отдельности оба элемента работают точно так, как они должны, поэтому проблема не в одном из них. Проблема в том, чтобы заставить их работать вместе.
Чтобы быть еще более явным, экран загорается и запускает демонстрационную версию, когда он запускается Arduino, но он не загорается вообще, или не делает ничего, чтобы указать что-либо полезное на nRF52, даже используя контакты, которые Arduino Библиотека указала как SCK, MOSI, и SS не дает мне никаких результатов на nRF52. MISO не был подключен к примеру из SparkFun, и из того, что я могу сказать в документации, MicroOLED в любом случае пишет только. Я попытался установить код с помощью Arduino IDE и Visual Studio IDE с помощью VisualGDB, и оба установили код просто отлично, но код на nRF52 не дает желаемого результата. Я мог бы сделать предположение и сказать, что, похоже, возникла некоторая проблема с настройкой SPI на nRF52, поскольку функциональность SPI уже есть на Arduino на выводах, которые она перечисляет, но nRF52, похоже, не задействует функциональность SPI из начало, но у него есть возможность.
Я опустил большинство примеров из кода ниже, поскольку они не являются частью, которая не работает. Я включил один пример, чтобы вы могли видеть, что делает пример кода, я сомневаюсь, что проблема в этом коде, поскольку он, вероятно, как-то связан со всеми библиотеками, которые использует Arduino, поэтому, опять же, приведенный ниже код работает на Arduino Uno и MicroOLED, но на nRF52 и MicroOLED он ничего не делает:
#include <Wire.h> // Include Wire if you're using I2C
#include <SPI.h> // Include SPI if you're using SPI
#include <SFE_MicroOLED.h> // Include the SFE_MicroOLED library
//////////////////////////
// MicroOLED Definition //
//////////////////////////
#define PIN_RESET 9 // Connect RST to pin 9
#define PIN_DC 8 // Connect DC to pin 8
#define PIN_CS 10 // Connect CS to pin 10
#define DC_JUMPER 0
//////////////////////////////////
// MicroOLED Object Declaration //
//////////////////////////////////
MicroOLED oled(PIN_RESET, PIN_DC, PIN_CS); // SPI declaration
//MicroOLED oled(PIN_RESET, DC_JUMPER); // I2C declaration
void setup()
{
oled.begin(); // Initialize the OLED
oled.clear(ALL); // Clear the display's internal memory
oled.display(); // Display what's in the buffer (splashscreen)
delay(1000); // Delay 1000 ms
oled.clear(PAGE); // Clear the buffer.
randomSeed(analogRead(A0) + analogRead(A1));
}
void pixelExample()
{
printTitle("Pixels", 1);
for (int i=0; i<512; i++)
{
oled.pixel(random(oled.getLCDWidth()), random(oled.getLCDHeight()));
oled.display();
}
}
void loop()
{
pixelExample(); // Run the pixel example function
lineExample(); // Then the line example function
shapeExample(); // Then the shape example
textExamples(); // Finally the text example
}