エンコーダーの値であるRS485を介して送信された値を読み取っています。最初にE文字が返されたかどうかを確認し(エンコーダーがエラーを報告している)、そうでない場合は次の手順を実行します。
*position = atoi( buffer );
// Also tried *position = (s32) strtol(buffer,NULL,10);
バッファの値は4033536で、位置は33536に設定されます。これは、この関数では毎回発生するわけではありません。おそらく、カウントしていませんが、1000回に1回です。プログラムカウンターを元に戻し、失敗した場合に行を再実行すると同じ結果が返されますが、デバッガーを再度起動すると、値が正しく変換されます。
私はkeiluvision4を使用しています。これは、stm32f103vet6とstm32f10ライブラリV2.0.1を使用するカスタムボードです。
ありがとう