文字列DMA送受信アプリ【STM32シリアル通信】

STM32シリアルUSART通信の文字列送受信にDMAを使用したアプリケーションです。文字列が長い場合や転送回数が多い場合はCPUに負担をかけないDMAが有利です。

めかのとろ

DMA転送による文字列の送受信プログラムです。

めかのとろ

複数の異なる文字列を連続して送受信する場合には、文字列は固定長である方が安定しています。また、送信では文字列格納バッファ付きで送信文字が重ならないようにします。

めかのとろ

単独文字列の送受信ではバッファもいらず、文字は固定でなくてもよいです。 送受信ともに転送完了後は割り込みで処理を行っています。

めかのとろ

文字列が長い場合や転送回数が多い場合はDMAが有利です。

ポイント

サンプルプログラムでは簡略化のため受信処理も送信処理も割り込みハンドラ内で処理していますが、割り込み処理中に割り込みが発生することになるため連続して送信する数が少ないうちは動作しますが多くなると不具合がでます。実践的なプログラムにおいては割り込みハンドラ内ではフラグを立てる等最低限の処理にとどめ、送受信は通常ループ内で処理するようにします。