mbed uart はシステムが安定してから
単体のマイコンや、電源が安定している場合はあんまり関係ないかもやけど、Serial uartとかは、グローバルでは、ポインタで宣言して、安定してからnewした方が正常に動作するっぽい。
Serial seri(PC_4, PC_5);
ってヘッダインクルードした直後にするんじゃなくて、
Serial *seri;
ってして、その後に初期化とかいろいろ終わって、
seri = new Serial(PC_4, PC_5);
ッテする感じ。
ちなみに、seriはポインタになってるので、
seri->attach((&uart_rx));
みたいにして、内部にアクセスせんとダメ。
ポインタにせな上手くいかん理由は、たぶんインスタンスをグローバルで宣言する(言い方間違っとるかも)と、信号が安定する前にカスを受信して、正常に処理できてないんやと思う。
俺はmbedじゃないんで、詳細は知らん。mbedのライブラリのリビジョンは137ね。
attachで受信割り込みとかさせる処理はmbed os2だと上手く動いているみたいだけど、mbed os5だとリビジョンによっては問題があるのかも・・・。
バックグランドでなかなかのosが動いているからか、それともwebのエディタを使ってるからか・・・。