OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1968|回复: 4

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

[复制链接]

14

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
239
金钱
239
注册时间
2018-7-12
在线时间
31 小时
发表于 2019-6-4 16:35:08 | 显示全部楼层 |阅读模式
5金钱
激光测距模块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;
            }
       }
}





正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

14

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
239
金钱
239
注册时间
2018-7-12
在线时间
31 小时
 楼主| 发表于 2019-6-4 16:40:29 | 显示全部楼层
这是编译的信息Program Size: Code=41680 RO-data=984 RW-data=780 ZI-data=4876  
FLASH大小是0x10000的,RAM大小是0x2000
回复

使用道具 举报

10

主题

277

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2075
金钱
2075
注册时间
2016-8-15
在线时间
413 小时
发表于 2019-6-4 17:02:13 | 显示全部楼层
两个位置变量定义的存储方式不一样
我的简书:https://www.jianshu.com/u/3e9efbf4a8c2
回复

使用道具 举报

14

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
239
金钱
239
注册时间
2018-7-12
在线时间
31 小时
 楼主| 发表于 2019-6-4 17:19:41 | 显示全部楼层
流年丶 发表于 2019-6-4 17:02
两个位置变量定义的存储方式不一样

是的啊,那为什么会有影响呢。。
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4520
金钱
4520
注册时间
2018-5-11
在线时间
946 小时
发表于 2019-6-4 21:56:36 | 显示全部楼层
有的时候是编译优化的问题,
定义成volatile unsigned char试一下。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 10:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表