STM32マイコンのUARTでパリティを使用する際の注意点について紹介します。通信相手によってはパリティビットを使用する場合があります。STM32マイコンのUARTにもパリティ設定項目があり、パリティなし、偶数パリティ、奇数パリティに対応しています。ただ、パリティを使用する際に注意点があり、注意点に気づかずに設定すると意図したデータが送受信されません。
パリティを使用する際の注意点として、パリティビットを含めたデータ長を設定する点です。具体的には8bitの送受信データでパリティビット有効にした場合はデータ長は9bitとして設定します。8bitのままの場合、パリティビットを含めて8bitとなり、送受信のデータ長は7bitとして扱われ、0x00~0x7Fまでのデータしか送受信されません。
STM32CubeMXの設定項目をよく見ると「including Parity」と記載があり、パリティビットを含めたデータ長を設定することが分かりますが、あまり考えずに設定すると見落としがちです。特にCubeMXから生成した後にコード上で変更すると設定項目の注意書きにも気づかないため、特に注意が必要です。