问题:我目前正在尝试使用BlueFruit LE分线板和Arduino Micro,但是引脚不同,因为Micro有专用的SPI引脚,而UNO有SCK,MISO和MOSI在引脚13上执行双重任务, 12和11。
问题:在Arduino IDE或我正在使用的示例代码中,我可以更改所请求的引脚排列吗?
代码:
来自Adafruit的echoDemo示例草图(为简洁而截断):
#include <SPI.h>
#include "Adafruit_BLE_UART.h"
// Connect CLK/MISO/MOSI to hardware SPI
// e.g. On UNO & compatible: CLK = 13, MISO = 12, MOSI = 11
#define ADAFRUITBLE_REQ 10
#define ADAFRUITBLE_RDY 2 // This should be an interrupt pin, on Uno thats #2 or #3
#define ADAFRUITBLE_RST 9
如上所述,'UNO&amp;兼容...'正在寻找所述板上的正确引脚。
我已经在两个#include文件中按名称(CLK等)搜索了引脚,但没有找到它们的引用。
结果应该是Arduino IDE控制台中的以下输出:
Adafruit Bluefruit Low Energy nRF8001 Print echo demo
* Advertising started
第二行应从BlueFruit LE板返回Micro并输出到控制台。
我的结果只是第一行输出。
可以理解的是,Arduino网站上有一些图表,它们详细说明了SPI引脚,并且它们在Micro上标记清楚(附图像)。我正在寻找的是将这些引脚重新映射到Micro的引脚排列的方式/位置。
任何帮助,参考或文件都需要深入了解。
••更新
感谢下面的答案,我们距离我们更近了一步。
对草图中的引脚排列进行了以下更改:
#include <SPI.h>
#include "Adafruit_BLE_UART.h"
// Connect CLK/MISO/MOSI to hardware SPI
// e.g. On UNO & compatible: CLK = 13, MISO = 12, MOSI = 11
#define ADAFRUITBLE_REQ SS
#define ADAFRUITBLE_RDY 2 // This should be an interrupt pin, on Uno thats #2 or #3
#define ADAFRUITBLE_RST 3
以下是修改后的ble_system.h:
#ifndef BLE_SYSTEM_H_
#define BLE_SYSTEM_H
/*
#define HAL_IO_RADIO_CSN SS
#define HAL_IO_RADIO_REQN SS
#define HAL_IO_RADIO_RDY 3
#define HAL_IO_RADIO_SCK SCK
#define HAL_IO_RADIO_MOSI MOSI
#define HAL_IO_RADIO_MISO MISO
#define HAL_IO_RADIO_RESET 9
#define HAL_IO_RADIO_ACTIVE 8
//#define HAL_IO_LED0 2
//#define HAL_IO_LED1 6
*/
新结果:
•第1行“Adafruit Bluefruit低能耗nRF8001印刷回声演示”的控制台输出相同。
•在控制台中键入“getState()”并按Enter键会产生大量并行字符串,导致Arduino IDE崩溃
这看起来BTLE分线板实际上可能正常工作,但传入Micro的数据未被正确解析。
答案 0 :(得分:1)
查看这个Adafruit github页面,了解他们的Bluetooth Low Energy Breakout主板。
答案 1 :(得分:0)
您不必担心重新映射引脚。使用SPI的代码将通过MCU中的SPI外设访问它,MCU已知道&#34;正确&#34;要使用的针脚。因此,只要软件使用内置SPI外设并且硬件连接到SPI引脚,就不需要更改。