登录注册
论坛
五彩晶圆(中级)
2945
4
我使用STM32CUBE生成了一个项目,keil 编译器的版本为5.28,单片机的sram为64K,对于我的项目应该是够用了,但是发现只要不在主函数中定义“全局变量”,只要是include进来的函数局部变量内存大于一定的容量,大概也就200字节的样子,程序一执行就会出错。我看到STM32CUBE中的参数有最小“堆”和“栈”的设置,就把相应的值最大200字节。但是程序仍然出错,没有效果!
只有把在.h文件中的全局变量定义到main函数所在的文件中才可以正确执行!
keil.jpg (145.28 KB, 下载次数: 0)
下载附件 保存到相册
2019-12-14 11:29 上传
扫一扫,分享给好友
版主
6037
195
不要在栈中(函数内的局部自动变量)定义过大的变量,因为栈主要是用来做函数调用保存临时数据用的
也不要在头文件中定义变量,这是规矩,头文件中只是用来声明的
lcofjp 发表于 2019-12-14 15:54 也不要在头文件中定义变量,这是规矩,头文件中只是用来声明的
没有在.h文件中声明,只是在.h中声明一些全局const的定义
一粒金砂(中级)
15
0
二楼意见很对。
发表回复 回帖后跳转到最后一页
EEWorld Datasheet 技术支持
查看 »