前言
公司产品涉及相关方面,需加强了解。目前项目使用的射频芯片为ST25R501,开发板使用的为ST25R391b(模拟前端),自购的是nNRF52840。
NRF52840
核心板使用的是nice!nano,支持蓝牙、NFC-A,它比较出名的是用于客制化键盘的构建,支持ZMK、BlueMicro固件,由于此芯片的SDK并不开源,所以并未适配QMK,否则会违反其GPL协议
使用它进行开发,目前有三大环境:
- nRF Connect SDK(NCS),vscode插件予以支持
- Arduino
- nRF5 SDK(已过时)
现使用Arduino框架,ini文件配置为:
1 2 3 4 5 6 7
| [env:adafruit_feather_nrf52840] platform = nordicnrf52 board = adafruit_feather_nrf52840 framework = arduino
upload_protocol = nrfutil monitor_speed = 115200
|
Project
To be continue:正在验证其作为手表主控的能力,用于复刻SCA-B。
显示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| #include <Arduino.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define SCREEN_ADDRESS 0x3C
#define PIN_SDA_HACK 28 #define PIN_SCL_HACK 29
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() { Serial.begin(115200);
Wire.setPins(PIN_SDA_HACK, PIN_SCL_HACK); if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) { Serial.println("SSD1306 allocation failed"); for(;;); }
display.clearDisplay(); display.setTextSize(1); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 0); display.println(F("nRF52840")); display.display(); }
void loop() { display.invertDisplay(true); delay(500); display.invertDisplay(false); delay(500); }
|