トラブルシューティング
DMA ではない HAL_UART_Transmit
は動くか試す。動かないなら UART の設定やピンを確認してみたほうが良い。
DMA すると何も動かんとき
generated code がうごかないじゃん…… となったら HAL_DMA_Init を最初にもってくると動くことがある。
とりあえず変更して試すなら適当に編集して試せば良い。が再生成するとき困るので、CubeMX 上でこの順番は変えておくのが良い。Project Manager → Advanced Settings にいくと順番を変更するUIがある。
最初の一回だけ成功するとき
UARTn global interrupt をオンにする。HAL_UART_IRQHandler あたりで送信の後処理とかをしているようで、この割込みが有効でないと最初の DMA 以降は HAL_BUSY となり成功しない。