質問: spresense初心者です。spresense sdkを使用して、arduino IDEのsoftware serialのように違うGPIOピンでserial通信のポートを増やしたい場合、どのような方法が考えられるでしょうか?
回答: Spresense SDKの中に、SPIのbitbangは見つけましたがSerialのbitbangは用意されてなさそうです(たぶん)。ですので、Software Serialを行う場合は自作するか、どこかからもってきて移植するかしかないですね(たぶん) もしくはSpresense ArduinoのSoftware Serialライブラリを持ってきてSDKへ移植する方が早いのかもしれません。 ただ、SpresenseのSerial端子は、Arduino UNOと違って、シリアルモニタ用のSerialとは独立して、メインボード/拡張ボード側に別のUART2(Serial2)端子が出ているのでそれが使えます。PCとの接続であれば、拡張ボード側のUSB端子でUSBSerialライブラリというものを見つけたのでこれも使えそうです。これはArduino用のライブラリですが、 SDKであればこちらですね。 gpioの叩き方は、こちらが参考になると思います。 シンプルにboard_gpio_read(), board_gpio_write() 関数を使って読み書きができると思います。 ピンの役割をGPIOに設定する必要があるので、board_gpio_config()でmodeを0に設定する必要がありそうです。 たぶんこんな感じ(間違っていたらどなたかご指摘をお願いします^^; <<読み出しの場合>> board_gpio_config(PIN_XXX, 0, true, true, PIN_FLOAT); と設定しておいて、 value = board_gpio_read(PIN_XXX, 0, true, true, PIN_FLOAT); で 1 or 0 が読み出せる <<書き込みの場合>> board_gpio_config(PIN_XXX, 0, false, true, PIN_FLOAT); と設定しておいて、 board_gpio_write(PIN_XXX, 1 or 0); で 1 or 0 の書き込みができる ピン番号はpin.hに定義されています ご参考まで。