奇怪的问题,关于变量定义位置~~

2019-07-21 00:25发布

激光测距模块VL53L0X,本来是没什么问题的,程序中是有一个简单的LED闪烁灯的。程序如下 (确认硬件是连接好的 ,只要把变量定义成全局变量就会出错 这是为什么呢~~~求解~~~谢谢谢谢~~~)全局变量的空间应该很大啊,怎么会影响呢,奇怪。。
unsigned char flag = 0;//当这个变量定义在这里时候就是异常的。VL53L0X模块就会报错API Status: -20 : Control Interface Error int main()
{
unsigned char flag = 0;//当这个变量定义在这里时候就是正常的
while(1)
      {
           if(LEDRuntime>=1)
           {
                if(0 == flag)
                 {
                        flag =~flag;
                        gpio_bit_set(GPIOA,GPIO_PIN_7);
                }
                else
               {
                      flag =~flag;
                      gpio_bit_reset(GPIOA,GPIO_PIN_7);
                }
                        LEDRuntime =0;
            }
       }
}





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
猎人123
1楼-- · 2019-07-21 01:59
这是编译的信息Program Size: Code=41680 RO-data=984 RW-data=780 ZI-data=4876  
FLASH大小是0x10000的,RAM大小是0x2000
流年丶
2楼-- · 2019-07-21 05:00
两个位置变量定义的存储方式不一样
猎人123
3楼-- · 2019-07-21 06:48
流年丶 发表于 2019-6-4 17:02
两个位置变量定义的存储方式不一样

是的啊,那为什么会有影响呢。。
warship
4楼-- · 2019-07-21 11:55
有的时候是编译优化的问题,
定义成volatile unsigned char试一下。

一周热门 更多>