亚博k210 按键 存储图片到sd卡中

亚博k210 按键 存储图片到sd卡中

目前只完成了初步功能,存储到sd卡过程中有时候会卡死在f_open函数中。
如果有大佬知道咋解决问题,麻烦告诉我一下,万分感激。

#include <String.h>
#include <stdlib.h>
#include <stdio.h>
#include “unistd.h”
#include “rgb2bmp.h”
#include “ff.h”
#include “sdcard.h”
#include “lcd.h”

BmpHead m_BMPHeader;
InfoHead m_BMPInfoHeader;

FIL file;
FRESULT ret = FR_OK;
unsigned char bmp_buffer[CAM_WIDTH_PIXELCAM_HIGHT_PIXEL3]; //bmp图像数据地址

int sd_check_(void)
{
if (check_sdcard())
{
lcd_draw_string(16, 120, “sdcard err”, RED);
return -1;

}

if (check_fat32())
{
    lcd_draw_string(16, 120, "fat32 err", RED);
    return -2;
}
bmp_init();
return 0;

}

void bmp_init(void) //初始化bmp图像头
{
m_BMPHeader.bfType[0]=‘B’;
m_BMPHeader.bfType[1]=‘M’;
m_BMPHeader.imageSize=CAM_WIDTH_PIXELCAM_HIGHT_PIXEL3+54;
m_BMPHeader.blank=0;
m_BMPHeader.startPosition=54;

 m_BMPInfoHeader.Length=40;
 m_BMPInfoHeader.width=CAM_WIDTH_PIXEL;
 m_BMPInfoHeader.height=-CAM_HIGHT_PIXEL; //正负可以改变图片的上颠倒  -值为正向
 m_BMPInfoHeader.colorPlane=1;
 m_BMPInfoHeader.bitColor=24;
 m_BMPInfoHeader.zipformat=0;
 m_BMPInfoHeader.realSize=3*CAM_WIDTH_PIXEL*CAM_HIGHT_PIXEL;
 m_BMPInfoHeader.xPels=0;
 m_BMPInfoHeader.yPels=0;
 m_BMPInfoHeader.colorUse=0;
 m_BMPInfoHeader.colorImportant=0;

}

void rgb2bmparry(uint32_t rgb_buffer)
{
//rgb 转数组 找出rgb数据
long nData = (CAM_WIDTH_PIXEL
CAM_HIGHT_PIXEL)/2;//这里的rgb_buffer为32位存储有两个rgb565数据
unsigned char* pVisit = bmp_buffer;

long i =0;
unsigned char R,G,B;
uint16_t  rgb_buffer_tmp;
printf("****save end1***\n");
while(i<nData)    //这里的rgb_buffer为32位存储有两个rgb565数据
{
   rgb_buffer_tmp = *rgb_buffer&0xffff; //取出低16位

   R = rgb_buffer_tmp&0x1f;
   G = (rgb_buffer_tmp>>5)&0x3f;
   B 
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值