LoginSignup
0
0

Raspberry Pi Pico (RP2040)でシリアルポートが消える!

Posted at

TL;DR

Arduinoで適当なスケッチを書いて転送するとおそらく復活します。別に復活させなくても、シリアルポートをちゃんと使うようにプログラムされたファームを書けば復活します。なので、なくなったからと言って慌てずに。

なにが起きたの?

みなさん大好きなRaspberry Pi Picoであります。安い・速いってことで、いろんなところで使われているのではないでしょうか。GPIOの数もたくさんあるし、互換ボードもたくさん出てるし、XIAOなんていう極小のボードもあるし。そんなわけで私も買ってあそんでみました。

開発環境には複数あって、

  • RP2040 SDK
  • Micro Python
  • Arduino (PlatformIO)

などが使えますね。マイコンのプログラミングをPythonでやれるなんて、すごい話です。

それはさておき、RP40のSDKを使って下記のようなコードを書きました。

main.c
void main() { }

これをビルドしてボードにコピーすると。なんと!シリアルポートが消えるのです!

えっ?!どうすんの?

ということで、こんなふうに修正してみました。

main.c
#include <stdio.h>
#include "pico/stdio.h"
#include "pico/stdlib.h"

int main()
{
  stdio_init_all();
}

ようするに、標準出力を初期化してみたわけですね。ところが、これでもまだシリアルポートは復活しません。

どうやら、プログラムが終了しちゃうといけないようです。ということで、下記のようにします。

#include <stdio.h>
#include "pico/stdio.h"
#include "pico/stdlib.h"

int main()
{
  stdio_init_all();
  for(;;) ;
}

無事にシリアルポートは復活しました。

最後に

ということで、普通にちゃんとシリアルポートを使うようになっているプログラムでは、シリアルポートは消えません。ひょっとしたら、PanicでCPUが停止するとシリアルポートは消えるのかもしれませんね。つまり、シリアルポートが意図せずに消えているのならば、おそらくファームウェアのプログラミングに問題があるのでしょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0