1,stm32 中数组长度有限制吗为什么我用串口的时候长度为90的可以改成9

不行?提示什么啊?如果是空间不够的话编译会出错。。。你是编译不通过还是执行的时候出问题?如果是编译不通过那就得看错误提示什么了。。。不管你设置的是全局的还是局部的都是有限制的,RAM空间就那么大固定在那儿。

stm32 中数组长度有限制吗为什么我用串口的时候长度为90的可以改成9

2,STM32如何定义16位的数组

  STM32定义16位数组,格式如下:  const u16 XXX[] =  STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M内核。  所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名。

STM32如何定义16位的数组

3,STM32局部变量的数组最大能到多少

根据你提供的信息,推测你使用的应该是Tiny C Complier编译器,这是一个32位的编译器,那么int应该为32位,4个字节。先看看数组的大小,int a[664579],那么大小为664579×4=2658316,也就是2.5MC语言的局部变量在在栈上分配空间,TCC默认的栈大小为1M,显然会造成栈溢出,程序崩溃。最新版的TCC提供了自定义栈大小的参数,如下面:tcc -Wl,--stack=4194309将栈大小指定为4M。不知道你的TCC版本是否支持这个参数。而全局变量在堆上分配空间,Win32应用程序可访问的地址空间是4G,一般来说进程实际能使用的是远远达不到这个值,但是在放一个2.5M的数组还是绰绰有余的。所以作为全局变量程序可正常运行。所以程序中要使用大型数组,要么定义为全局变量,要么使用malloc一类的函数在堆上动态分配空间。

STM32局部变量的数组最大能到多少


文章TAG:stm32stm32定义数组最大多少位  stm32  中数组长度有限制吗为什么我用串口的时候长度为90的可以改成9  
下一篇