【发布时间】:2014-06-01 19:35:41
【问题描述】:
- Web 开发人员进入硬件领域,所以请保持温和。
问题:我目前正在尝试使用 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 & compatible...”正在所述板上寻找正确的引脚。
我已经在两个#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 Low Energy nRF8001 Print echo demo”的控制台输出相同。
• 在控制台中键入“getState()”并按 Enter 会产生大量并行字符串,导致 Arduino IDE 崩溃
看起来 BTLE 分线板实际上可能工作正常,但传入 Micro 的数据没有被正确解析。
【问题讨论】:
-
这不是硬件问题,适合这里。
-
你找到答案了吗?我有相同的 Arduino 微板和相同的 BLE 盾牌。
标签: bluetooth arduino microcontroller bluetooth-lowenergy