Я работаю над проектом Arduino, в котором я использую плату Bluetooth для nrf8001 и плату SD-карт.Оба чипа используют SPI, поэтому я могу просто связать их с одной шиной.Они оба прекрасно работают сами по себе, но как только я подключаю контакты MISO к обоим микросхемам, Bluetooth не может вообще начать рекламу или связь с Arduino.
Я действительно не уверен, с чего начатьВот.Я попытался установить оба вывода SS для вывода из кода Arduino, просто чтобы быть уверенным, но это ничего не изменило.
Вот то, что я использую, чтобы проверить это
#include <SPI.h>
#include <SD.h>
#include "Adafruit_BLE_UART.h"
#define ADAFRUITBLE_REQ 10
#define ADAFRUITBLE_RDY 2
#define ADAFRUITBLE_RST 9
Adafruit_BLE_UART uart = Adafruit_BLE_UART(ADAFRUITBLE_REQ, ADAFRUITBLE_RDY, ADAFRUITBLE_RST);
void aciCallback(aci_evt_opcode_t event)
{
switch(event)
{
case ACI_EVT_DEVICE_STARTED:
Serial.println(F("Advertising started"));
break;
case ACI_EVT_CONNECTED:
Serial.println(F("Connected!"));
break;
case ACI_EVT_DISCONNECTED:
Serial.println(F("Disconnected or advertising timed out"));
break;
default:
break;
}
}
void rxCallback(uint8_t *buffer, uint8_t len)
{
for(int i=0; i<len; i++)
Serial.print((char)buffer[i]);
}
void setup() {
Serial.begin(9600);
Serial.print("Initializing SD card...");
if (!SD.begin(4)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
uart.setRXcallback(rxCallback);
uart.setACIcallback(aciCallback);
uart.begin();
}
void loop() {
uart.pollACI();
}
И вотнастройка на макете
Настройка проводки макета
Выход последовательного монитора:
Initializing SD card...initialization done.
Но если бы Bluetooth работал правильно, он был бы
Initializing SD card...initialization done.
Advertising started