stm32函数中大数组问题

1. 简介

        在以stm32构建系统的时候,当用户自己编写函数时,发现函数出现意想不到的结果,其中一项你需要注意的是看你的函数中有没有大的数组,或者说查看你函数中临时变量的总量是不是超过了系统设置的堆栈的最大值

        这类问题编译器是不会给出错误的,相应的当出现程序不能给出想要的结果的时候,我们需要特别注意这类问题。对系统设置函数堆栈最大值的宏一般放在系统的启动文件中,具体的是startup_stm32xxxx.s这个启动文件的Stack_Size这个宏

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
stm32f103是一款使用ARM Cortex-M3内核的32位微控制器。函数参数数组是指在函数声明和定义时,可以将数组作为函数的参数传递。 在stm32f103中,函数参数数组使用的方式与其他C/C++语言中的方法相同。通过将数组名作为参数声明,将数组的地址传递给函数函数内部可以使用传递的数组地址进行读写操作,以对数组进行处理。 例如,我们可以定义一个函数来对数组中的元素进行求和: ``` uint32_t sumArrayElements(uint32_t* array, uint32_t size) { uint32_t sum = 0; for (int i = 0; i < size; i++) { sum += array[i]; } return sum; } ``` 在上述例子中,函数`sumArrayElements`接收两个参数:`array`和`size`。其中`array`是一个指向无符号32位整数型的指针,表示传递的数组的地址;`size`是无符号32位整数型,表示传递的数组大小。 函数内部使用`for`循环对传递的数组进行遍历和求和操作。通过使用数组的地址和索引,可以对数组中的每个元素进行读取并累加到`sum`变量中。最后,函数返回求和的结果。 在使用该函数时,我们可以将一个数组的地址和大小传递给它来进行求和计算: ``` uint32_t myArray[] = {1, 2, 3, 4, 5}; uint32_t result = sumArrayElements(myArray, sizeof(myArray)/sizeof(myArray[0])); ``` 在上述例子中,我们定义了一个包含5个元素的数组`myArray`,并将该数组的地址和大小传递给函数`sumArrayElements`。函数将对数组进行求和,并将结果赋值给`result`变量。 总结来说,stm32f103中的函数参数数组是指通过将数组的地址作为参数传递给函数来对数组进行处理的方式。我们可以使用指针来访问和操作传递的数组。以这种方式,我们可以在stm32f103上灵活处理和操作数组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值