a707083746 发表于 2015-8-17 08:59:39

如图,有没有人碰到过这样的问题啊?

Len 是一个全局变量,只在串口接收中断中自加而且执行 Len = 0;后Len都不等于0的

好奇怪:'(

a707083746 发表于 2015-8-17 09:45:33

Tension 发表于 2015-8-17 09:34
优化等级开得比较高,所以调试不方便。

原来是这个问题啊,改成 Level 0(-O0)就行了 谢谢

watershade 发表于 2015-8-17 09:04:24

设置成volatile

星辰一方 发表于 2015-8-17 09:19:58

楼上正解,楼主可以试下,否则就是你的代码里其他地方误操作了

发表于 2015-8-17 09:29:12

添加到watch中看看,看光标没有执行LEN=0。退出if判断以后再看看值的内容。

a707083746 发表于 2015-8-17 09:31:22

watershade 发表于 2015-8-17 09:04
设置成volatile

写成 volatile u8 Len = 0;也一样~~

a707083746 发表于 2015-8-17 09:32:07

星辰一方 发表于 2015-8-17 09:19
楼上正解,楼主可以试下,否则就是你的代码里其他地方误操作了

这个变量只在串口中断里赋值

Tension 发表于 2015-8-17 09:34:59

优化等级开得比较高,所以调试不方便。

feiante 发表于 2015-8-17 10:01:54

原来是优化的问题啊

a707083746 发表于 2015-8-17 10:16:38

feiante 发表于 2015-8-17 10:01
原来是优化的问题啊

是啊原来是<default>(据说相当于Level 2(-O2))
页: [1] 2
查看完整版本: 如图,有没有人碰到过这样的问题啊?