どうもです。今回はがれすた兄貴と一緒にHALをやったものでロボットで使いそうなペリフェラルのデモになるような記事をまとめておきたいと思います。
・Lチカ
STM32F103C8T6をHALで使う

・PWM
HALでPWMを出力させる
STM32でサーボPWMを出す

・UART
STM32でUARTをやってみる1
STM32でUARTを使ってみる2

・printf関数を実装する
STM32でUARTをやってみる6(float型printfをUART経由で出力)
これはコードサイズが急に増えるのであまりお勧めしない。デバッガを使えばぶっちゃけ不要。
STM32でUARTをやってみる4(Chanさんのxprintf)
浮動小数点には非対応だが私はこれをもっぱら使ってます。(そこまでfloat型使わないので)

・I2C
STM32でI2C通信をやってみる

・タイマー割り込み
(自分用メモ)STM32のベーシックタイマー(TIM6/TIM7を使う)

・マスタークロックアウト
STM32のMCO機能を使ってGPIOからクロックを出してみる

・ADC(1chのみ)
STM32でADCをやってみる1(レギュラ変換)

・DMA
STM32でADCをやってみる2(DMAを使ったレギュラ変換)
こっちだと多チャンネルを一気に使えるし、メモリ転送をハードでやるので早い。

・エンコーダー
エンコーダペリフェラルをCubeHALで使う

・SPI
STM32でSPI通信をやってみる1(ポーリングでマイコン同士で通信編)

・DSPライブラリ
STM32でCMSIS DSPライブラリを使ってみる
こいつを使うと三角関数などが超高速で計算できる。参考( CMSIS-DSP Library 研究室)

・IWDG(ウォッチドッグ)
CubeHALでIWDGを使ってみる。

・SDMMC+FatFS
UARTデータロガーをSTM32+CubeHALで作る
ペリフェラルの説明は少ないですが画像とソースコード見ればわかるかなぁって感じですごめんなさい。

UARTをDMAでサーキュラー受信
UARTデータロガーをSTM32+CubeHALで作る 
上と同じですがここではDMAでUARTを回してるのでその参考にもなるはず。
openMVを試してみる(その2)
openMVの記事ですが、後半に少し説明とともに記載しています。



こんなところですかね。

まぁがれすた兄貴とはハードウェアをワイが書いてソフトを兄貴にお願いするってので始まったのでこんなもんです。

それでは。