stm32要存储串口摄像头返回来的数据大约50000个,我用数组发现不支持那么大 还有什么方法吗
如题 很是纠结,如果能够解决分数不是问题
[解决办法]
指定存储地址不知道行不行
[解决办法]
请用内存拷贝
[解决办法]
存到SD卡去
[解决办法]
1. 如果不考虑视频质量,看能不能改小视频源图像质量,以获取小的视频数据.
2. 对视频数据进行压缩编码放入数组中。
[解决办法]
#define LEN 100000//单次最多可有效接收100000个数据
struct fifo_ctr{
uint8_t *first;
uint8_t *last;
}
struct fifo_para{
uint8_t * pw;
uint8_t * pr;
fifo_ctr *ctr;
}
fifo_para new_fifo(void)
{
fifo_para fifo;
fifo.pw = malloc(sizeof(uint8_t)*LEN);
if(fifo.pw == NULL) return NULL;
fifo.pr = fifo.pw;
fifo.ctr->last = fifo.pw;
fifo.ctr->first = fifo.pw;
while(LEN--) fifo.ctr->last++;
return fifo;
}
bool read_fifo(fifo_para *cam_fifo,uint8_t *date)
{
if(cam_fifo->pr==cam_fifo->pw)
return false;//缓冲区无数据
else
*date = (*cam_fifo->pr)++;
if(cam_fifo->pr == cam_fifo->ctr->last) cam_fifo->pr = cam_fifo->ctr->first;
return true;
}
void write_fifo(fifo_para *cam_fifo,uint8_t *date)
{
*cam_fifo->pr = *date;
cam_fifo->pr++;
if(cam_fifo->pw == cam_fifo->ctr->last) cam_fifo->pw = cam_fifo->ctr->first;
}