最近買了nRF52840 Dongle (PCA10059) , 如下圖, 官方說法是體積小, 便宜的類隨身碟裝置, 可支援藍牙5等多種協定 (a small, low-cost USB dongle that supports Bluetooth 5, Bluetooth mesh, Thread, ZigBee, 802.15.4, ANT and 2.4 GHz proprietary protocols.) 我主要是用來開發BLE協定的應用使用, 特別是 Nordic nRF Connect for Desktop 這套由Nordic官方開發的程式, 以前常常在手機上使用, 可以查看附近BLE裝置的Advertising封包, 也可以連入BLE裝置, 查看GATT的服務和特徵值並且可以進行讀取或寫入等動作。 這樣功能的應用程式, 想要在桌上型電腦上使用, 想來就非其桌上電腦版莫属, 不過在電腦上使用必須搭配Nordic的開發板, 而nRF52840 Dongle就是一個最合適的選擇! 因為便宜又不佔空間, 找個USB插座, 插下就可以使用了。 但除了拿來當工具使用, 它其實也是一張迷你的開發板, 只是沒有附J-Link的功能而已, 沒有J-Link的壞處就是不能做即時的除錯, 沒有逐步執行的功能。程式寫完不知道對不對, 只能直接燒到板子上的Flash去執行, 再看看行為對不對。這其實和Arduino Uno的開發模式一樣, 其實也是用得很開心。 要開發程式, 官方給了nRF5 SDK, 下載回來解壓縮後, 得到一個目錄, 其下有許多子目錄: components, config, documentation, examples, external, ... 。其中examples目錄下有802_15_4, ant, ble_central, ble_peripheral, connectivity, crypto, dfu, dtm, iot, peripheral, ...等目錄, 可以說大約是以協定來區分, 例如要BLE的範例程式, 那就找ble開頭的那幾個子目錄就對了, 如果只要看週邊IO動作的範例程式, 打開peripheral目錄就是了。 從最簡單的閃爍LED的程式來看, peripheral/blinky目錄打...