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
}

0 ответов

Другие вопросы по тегам