初级会员

- 积分
- 148
- 金钱
- 148
- 注册时间
- 2013-1-19
- 在线时间
- 0 小时
|

楼主 |
发表于 2013-2-16 18:17:29
|
显示全部楼层
回复【2楼】正点原子:
---------------------------------
四字节对齐不明白 这个是主函数
int main(void)
{
u8 key;
u8 i;
u8 *pname;
Stm32_Clock_Init(9); //系统时钟设置
uart_init(72,9600); //串口初始化为9600
delay_init(72); //延时初始化
OV7670_Init();
KEY_Init();
LED_Init(); //初始化与LED连接的硬件接口
LCD_Init(); //初始化LCD
if(lcddev.id==0X6804) //强制设置屏幕分辨率为320*240.以支持3.5寸大屏
{
lcddev.width=240;
lcddev.height=320;
}
usmart_dev.init(72); //初始化USMART
POINT_COLOR=RED;//设置字体为红色
LCD_ShowString(60,50,200,200,16,"Mini STM32");
LCD_ShowString(60,70,200,200,16,"OV7670 TEST");
LCD_ShowString(60,90,200,200,16,"ATOM@ALIENTEK");
LCD_ShowString(60,110,200,200,16,"2012/10/31");
LCD_ShowString(60,130,200,200,16,"Use USMART To Set!");
LCD_ShowString(60,150,200,200,16,"OV7670 Init...");
while(SD_Initialize()!=0)//检测不到SD卡
{
LCD_ShowString(60,130,200,200,16, "SD Card Failed!");
delay_ms(500);
LCD_ShowString(60,130,200,200,16,"Please Check! ");
delay_ms(500);
LED0=!LED0;//DS0闪烁
}
//检测SD卡成功
LCD_ShowString(60,130,200,200,16,"SD Card Checked OK ");
if(f_mount(0,&fs))
{
LCD_ShowString(60,150,200,200,16,"SD Card NO");
}
newfile();
// delay_ms(10);
// newwenjian();
// f_close(&fp);
//write_file();
// read_file();
while(OV7670_Init())//初始化OV7670
{
LCD_ShowString(60,150,200,200,16,"OV7670 Error!!");
delay_ms(200);
LCD_Fill(60,230,239,246,WHITE);
delay_ms(200);
}
LCD_ShowString(60,150,200,200,16,"OV7670 Init OK");
delay_ms(1500);
Timerx_Init(10000,7199); //TIM3,10Khz计数频率,1秒钟中断
EXTI15_Init(); //使能定时器捕获
OV7670_Window_Set(10,174,240,320); //设置窗口
OV7670_CS=0;
while(1)
{
key=0;
key=KEY_Scan();
// key=1;
if(key==1)
{
f_mount(0,&fs);
camera_new_pathname(pname);
LED1=!LED1;
if(bmp_encode(pname,0,0,240,320,0))//拍照有误
{
printf("%s","拍照失败");
LCD_ShowString(40,130,240,12,12,"写入文件错误!");
}else
{
printf("%s","拍照成功");
LCD_ShowString(40,130,240,12,12,"拍照成功!");
LCD_ShowString(40,150,240,12,12,"保存为:");
LCD_ShowString(40+42,150,240,12,12,pname);
// BEEP=1; //蜂鸣器短叫,提示拍照完成
delay_ms(100);
}
}
camera_refresh(); //更新显示
if(i!=ov_frame) //DS0闪烁.
{
i=ov_frame;
LED0=!LED0;
}
}
} |
|