在我的 ISR 中,我有一个从 USART 填充的缓冲区,因此我将缓冲区声明为 volatile:
volatile uint8_t RxBuffer1[BUFFER_LENGTH];
好的,那里没有问题。我相信这是标准做法。
在 main() 中的某处,我需要复制该数组的一部分,因为该数组是一个循环缓冲区,并且将来某个时候会被删除:
strncpy(Data, RxBuffer1, len);
哦,但这是不,不!我的编译器尽职尽责地告诉我:
传递“strncpy”的参数 2 从指针目标类型中丢弃“volatile”限定符
因为 strncpy 使 's2' 成为 const char *
我不认为我在做任何没有按照标准做法做的事情。我该如何正确地做到这一点?