uint8_t Spi_RW_Data(uint8_t *p, uint8_t len)//读写函数 { uint8_t pdata[len]; HAL_SPI_TransmitReceive(&g_spi2_handler, p, pdata,len, 0XFFFF); return pdata[len - 1]; }len应该换成什么
时间: 2023-06-16 17:04:39 浏览: 85
SPI数据读取
4星 · 用户满意度95%
在函数声明中,len是一个不确定的参数,应该使用动态内存分配函数来分配一个可变长度的数组。例如,可以使用malloc函数来动态分配len个字节的内存,然后在函数结束时释放内存。函数实现可以改为:
```c
uint8_t Spi_RW_Data(uint8_t *p, uint8_t len) {
uint8_t *pdata = (uint8_t*)malloc(len); // 动态分配len个字节的内存
HAL_SPI_TransmitReceive(&g_spi2_handler, p, pdata, len, 0XFFFF);
uint8_t result = pdata[len - 1];
free(pdata); // 释放内存
return result;
}
```
阅读全文