先週、私はSTM32F407からUARTメッセージを送信し、シロアリを使用したugreen RS232-USBケーブルを介してラップトップでそれを読み取ることに取り組んできました。
私はSTMCubeを使用してコードを生成し、「stm32f4xx_hal_uart.c」ファイルの上部にある関連する説明を読んで(そして、たくさんのビデオを見てオンラインで読んで)、コードを追加しました。
送信されたメッセージをオシロスコープで確認したところ、ASCII表現と一致しています。
たとえば、0101 0001である「Q」を送信し、0101 0111である「W」を受信します。スコープの読み取り値は、
私は、ボーレート/パリティ/ HWcontrolがシロアリと私のコードで一致していることを確認しました。
正しい文字を受け取るために、ボーレートを下げたり上げたりしてみました。
間違った文字が表示される原因となるパターンを見つけるために、さまざまな文字セットを試しました。
さらに、PuttyやTeratermなどの別の端末を試しました。
1
トレースの左側にある黄色の背景のシンボルを見てください-それは0Vレベル)、次に0V未満のパルス。これは、STM32からの論理信号には当てはまりませんし、実際には当てはまりません。左下隅を見ると、チャネル1がAC結合に設定されています(これ~
が表示されている記号です)。信号は実際に高くアイドリングしており、約0Vまで脈動しています。その信号を正しく表示するには、DC結合を使用します。