用AVR的studio时,发现用volatile unsigned char,和unsigned char 不一样!怎么不一样呢?用指向unsigned char的指针指向volatile unsigned char 数据是有警告:../main.c:259: note: expected 'unsigned char *' but argument is of type 'volatile unsigned char *'
这个让我很纠结,我到底是在中断的全局变量前加volatile还是不加呢?纠结中。。。
volatile uchar usart_buf[30]={0};
char mm(unsigned char *pdata,unsigned char n)
{
unsigned char i,lrc=0;
for(i=0;i<n;i++)
{
lrc+=*(pdata+i);
}
return 0;
}
int main(void)
{
mm(usart_buf,10);
return 0;
}
上面的代码只是举例,看着有警告,心里不爽快,想着中断里没有volatile心里不踏实,让我纠结呀!!!!!! |