Arduino串行打印不希望地改变了程序的行为
我正在使用在标头中声明的循环计数器: int loop_counter = 0; 我经常使用此计数器触发事件。我曾经对这种类型的行为使用模,但是我简化了它,因此使用起来更容易(它仍然会导致相同的行为) void loop() { if(loop_counter > 100) loop_counter = 0; else loop_counter++; //Serial.println("hey"); if(loop_counter == 0) { //do_something_important(); } } 一切都很好,直到我尝试Serial取消注释//Serial.println("hey"); ("hey"在此示例中,因为对我而言,这种行为是荒谬的)来与之交流。 这将导致loop_counter永远不会触发do_something_important();代码部分。我尝试声明loop_counter为volatile,但没有任何改变。我尝试了Serial.printing loop_counter,而且我也得到了奇怪的行为(它将冻结循环)。 Serial.println("hey");在串行监视器中,我得到很多“嘿”的意思(即很快超过100个“嘿”,这是另一部分代码应触发的迭代次数) 是什么原因导致的使用Serial,而数据(据我所知)并未loop_counter完全阻止其正常运行? 编辑:这是最终导致问题的主文件部分(嗯,为它做出了最大的贡献(使用过多的内存)): void display_state() { int i,j,index=0; short alive[256][2]; for(i=0;i<num_rows;i++) { for(j=0;j<num_cols;j++) { if(led_matrix[i][j]==1) { alive[index][0]=i; alive[index][1]=j; index++; } } …