unit8_t upstartadcn[2]; 在定时器里设置 upstartadcn[0]++; upstartadcn[1]++; 在主程序里 int main(void) { 初始化设置 while(upstartadcn[0]<3); while(upstartadcn[1]<2); while(1) { } } 程序会停在 while(upstartadcn[0]<3); while(upstartadcn[1]<2); 不运行下去,定时器设置都没问题,不知道为什么
有的编译器可能不认这个方法,楼主可以在定时器中断中看看upstartadcn[0]的值是否改变。
原因不使用volatile修饰