Arduino Uno到Micro SPI引脚重新映射?

时间:2014-06-01 19:35:42

标签: bluetooth arduino microcontroller bluetooth-lowenergy

  • 网络开发人员请进入硬件,请温柔。

问题:我目前正在尝试使用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的引脚排列的方式/位置。

任何帮助,参考或文件都需要深入了解。

Arduino Micro to BlueFruit LE Needs Remap

••更新

感谢下面的答案,我们距离我们更近了一步。

对草图中的引脚排列进行了以下更改:

 #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的数据未被正确解析。

2 个答案:

答案 0 :(得分:1)

查看这个Adafruit github页面,了解他们的Bluetooth Low Energy Breakout主板。

enter image description here

答案 1 :(得分:0)

您不必担心重新映射引脚。使用SPI的代码将通过MCU中的SPI外设访问它,MCU已知道&#34;正确&#34;要使用的针脚。因此,只要软件使用内置SPI外设并且硬件连接到SPI引脚,就不需要更改。