有2种比较常见的方法:
一个时调用函数自己设置好缓冲区和长度,然后通过形参和指针传过去
void Flash_ReadNHalfword(uint32_t faddr,uint16_t *buffer,uint16_t len_halfword)
{
...
*buffer = data;
buffer ++;
...
return;
}
void work_fun(void)
{
uint16_t buffer[64];
uint16_t len_halfword;
len_halfword = 64;
Flash_ReadNHalfword(0,(uint16_t *)buffer, len_halfword);
...
}
/****************************************/
另一种是直接在全局变量定义一个缓冲区
uint16_t buffer[64];
void Flash_ReadNHalfword(uint32_t faddr,uint16_t len_halfword)
{
uint16_t *buffer_ptr = buffer;
...
*buffer_ptr = data;
buffer_ptr ++;
...
return;
}
uint16_t buffer[64]; // 如果不在同一文件,需要声明一下
void work_fun(void)
{
uint16_t len_halfword;
len_halfword = 64;
Flash_ReadNHalfword(0, len_halfword);
// 这里就可以直接使用全局变量buffer[]中的数据了
...
}
|