私のISRには、USARTから詰め込まれるバッファがあるので、バッファを揮発性として宣言しました。
volatile uint8_t RxBuffer1[BUFFER_LENGTH];
はい、問題ありません。それが標準的な習慣だと思います。
main()のどこかで、その配列の一部をコピーする必要があります。これは、配列が循環バッファーであり、将来的には消去されるためです。
strncpy(Data, RxBuffer1, len);
ああ、でもこれはノーノーです!私のコンパイラは忠実に私に言います:
'strncpy'の引数2を渡すと、ポインタターゲットタイプから'volatile'修飾子が破棄されます
strncpyは「s2」をconstcharにするため*
私は、標準的な慣行として行われていないことをしているとは思いません。これを正しく行うにはどうすればよいですか?