BLE Nano + mbed の Serial の実装がつらい感じだった
I2C がうまく動かなくて調べていたら、どうやら UART を使おうとすると競合するようでした。確かにピン配置を見ると CTS/RTS と SDA/SCL はかぶっています。これは事前に知っていましたが、RXD と TXD とはかぶっていないので、問題なく使えると思っていました。
しかし実際は Serial を使おうとすると問答無用で該当ピンが CTS/RTS が設定されるコードがハードコードされています。
TXD/RXD は外部から渡せるようになっているのに、CTS/RTS は決め打ちで勝手に機能割当されます。なんやねん。
解決方法
Serial を初期化したあと、CTS/RTS の機能割当をはずせば良いようです。すなわち
NRF_UART0->PSELRTS = 0xFFFFFFFFUL;
NRF_UART0->PSELCTS = 0xFFFFFFFFUL; というようなコードを main を最初あたりに入れておけば良いです。0xFFFFFFFFUL は Disconnected を表す定数です (NC という定数になっていますが型が違うのでリテラルで書いてます)
このエントリを参照するエントリ
関連エントリー
- BLE Nano (nRF51822) でどうしても 1mA 以上電流食うぞというとき BLE Nano をあいかわらず触っている。どうしても消費電流の削減ができず3日ぐらい悩んだので、参考までに「どうすれば効率よく消費電流を削...
- 中華 NanoVNA の Bluetooth シリアル化を試す NanoVNA は USB-CDC による通信をサポートしていますが、ここが無線化すると(特にアンテナ調整の場合は)便利なので、コンセプトを...
- BLE Nano のオンラインプロジェクトをエクスポートして GCC でコンパイルして RAM 32kB 使えるようにする 必要なもの arm-none-eabi-* とsrecord が必要。platformio を使ってるなら arm-none-eabi は ...
- mbed USBSerial を WebUSB から扱うには mbed USBDevice ライブラリの中に USB CDC で動く USBSerial クラスが実装されている。これを Web USB ...
- BLE Nano の開発 - ブレッドボード配線 BLE Nano とは http://redbearlab.com/blenano/ 技適が通ってる小さい BLE 組込みの ARM SOC...
