添加功能
以原始数据运行CNN
This commit is contained in:
182
USER/main.c
182
USER/main.c
@@ -2,8 +2,6 @@
|
||||
#include "delay.h"
|
||||
#include "usart.h"
|
||||
#include "led.h"
|
||||
#include "key.h"
|
||||
#include "lcd.h"
|
||||
#include "string.h"
|
||||
#include "sdram.h"
|
||||
#include "malloc.h"
|
||||
@@ -17,116 +15,118 @@
|
||||
#include "my.h"
|
||||
#include "debug.h"
|
||||
#include "cnn.h"
|
||||
/************************************************
|
||||
ALIENTEK <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>STM32F429<32><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>41
|
||||
FATFSʵ<53><CAB5>-HAL<41>⺯<EFBFBD><E2BAAF><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD>֧<EFBFBD>֣<EFBFBD>www.openedv.com
|
||||
<20>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>http://eboard.taobao.com
|
||||
<20><>ע<D7A2>Ź<EFBFBD><C5B9><EFBFBD>ƽ̨<CCA8>źţ<C5BA>"<22><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>"<22><><EFBFBD><EFBFBD><EFBFBD>ѻ<EFBFBD>ȡSTM32<33><32><EFBFBD>ϡ<EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿƼ<D3BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||
<20><><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD> @ALIENTEK
|
||||
************************************************/
|
||||
|
||||
|
||||
|
||||
int main(void)
|
||||
{
|
||||
u32 total,free;
|
||||
u8 key;
|
||||
|
||||
HAL_Init(); //<2F><>ʼ<EFBFBD><CABC>HAL<41><4C>
|
||||
Stm32_Clock_Init(360,25,2,8); //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,180Mhz
|
||||
delay_init(180); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
uart_init(9600); //<2F><>ʼ<EFBFBD><CABC>USART
|
||||
HAL_Init();
|
||||
Stm32_Clock_Init(360,25,2,8);
|
||||
delay_init(180);
|
||||
uart_init(9600);
|
||||
|
||||
LED_Init(); //<2F><>ʼ<EFBFBD><CABC>LED
|
||||
KEY_Init(); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
SDRAM_Init(); //SDRAM<41><4D>ʼ<EFBFBD><CABC>
|
||||
LCD_Init(); //LCD<43><44>ʼ<EFBFBD><CABC>
|
||||
my_mem_init(SRAMEX); //<2F><>ʼ<EFBFBD><CABC><EFBFBD>ⲿ<EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
|
||||
|
||||
model_init(); //ģ<>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
TIM3_Init(5000-1,9000-1); //<2F><>ʱ<EFBFBD><CAB1>3<EFBFBD><33>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ʱ<EFBFBD><CAB1>Ϊ90M<30><4D><EFBFBD><EFBFBD>Ƶϵ<C6B5><CFB5>Ϊ9000-1
|
||||
//////////////////////////////<2F><><EFBFBD>Թ<EFBFBD><D4B9><EFBFBD>usmart<72>ij<EFBFBD>ʼ<EFBFBD><CABC>/////////////////////////////////
|
||||
SDRAM_Init();
|
||||
LED_Init();
|
||||
my_mem_init(SRAMIN);
|
||||
my_mem_init(SRAMEX);
|
||||
|
||||
model_init();
|
||||
TIM3_Init(5000-1,9000-1); //定时器3初始化,定时器时钟为90M,分频系数为9000-1
|
||||
//////////////////////////////调试工具usmart的初始化/////////////////////////////////
|
||||
usmart_dev.init(90);
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
POINT_COLOR=RED;
|
||||
LCD_ShowString(30,50,200,16,16,"Apollo STM32F4/F7");
|
||||
while(SD_Init())//<2F><><EFBFBD>ⲻ<EFBFBD><E2B2BB>SD<53><44>
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
u8 _res_sd = SD_Init();
|
||||
if(_res_sd)printf("SD Card Error!\r\n");
|
||||
while(_res_sd)//检测不到SD卡
|
||||
{
|
||||
LCD_ShowString(30,150,200,16,16,"SD Card Error!");
|
||||
delay_ms(500);
|
||||
LCD_ShowString(30,150,200,16,16,"Please Check! ");
|
||||
delay_ms(500);
|
||||
LED0=!LED0;//DS0<53><30>˸
|
||||
LED0=!LED0;
|
||||
}
|
||||
FTL_Init();
|
||||
exfuns_init(); //Ϊfatfs<EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
||||
f_mount(fs[0],"0:",1); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>SD<EFBFBD><EFBFBD>
|
||||
fatbuf=(u8*)mymalloc(SRAMEX,512); //Ϊfatbuf<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
||||
LCD_Fill(30,150,240,150+16,WHITE); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
||||
while(exf_getfree("0:",&total,&free)) //<2F>õ<EFBFBD>SD<53><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
LCD_ShowString(30,150,200,16,16,"SD Card Fatfs Error!");
|
||||
delay_ms(200);
|
||||
LCD_Fill(30,150,240,150+16,WHITE); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
||||
delay_ms(200);
|
||||
LED0=!LED0;//DS0<53><30>˸
|
||||
exfuns_init(); //为fatfs相关变量申请内存
|
||||
f_mount(fs[0],"0:",1); //挂载SD卡
|
||||
fatbuf=(u8*)mymalloc(SRAMEX,512); //为fatbuf申请内存
|
||||
_res_sd = exf_getfree("0:",&total,&free); //得到SD卡的总容量和剩余容量
|
||||
if(_res_sd)printf("SD Card Fatfs Error!");
|
||||
while(_res_sd)
|
||||
{
|
||||
delay_ms(100);
|
||||
LED0=!LED0;
|
||||
}
|
||||
POINT_COLOR=BLUE;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ɫ
|
||||
LCD_ShowString(30,150,200,16,16,"FATFS OK!");
|
||||
LCD_ShowString(30,170,200,16,16,"SD Total Size: MB");
|
||||
LCD_ShowString(30,190,200,16,16,"SD Free Size: MB");
|
||||
LCD_ShowNum(30+8*14,170,total>>10,5,16); //<2F><>ʾSD<53><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MB
|
||||
LCD_ShowNum(30+8*14,190,free>>10,5,16); //<2F><>ʾSD<53><44>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MB
|
||||
|
||||
model_write("all");
|
||||
printf("<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD>\r\n");
|
||||
printf("初始化完成!\r\n");
|
||||
|
||||
// char* modelusearr[] = {
|
||||
// "C1autosave00095_right_new_2",
|
||||
// "C1autosave00096_right_new_2",
|
||||
// "C1autosave00097_right_new_2",
|
||||
// "C1autosave00098_right_new_2",
|
||||
// "C1autosave00099_right_new_2",
|
||||
// "C1autosave00100_right_new_2",
|
||||
// "C1autosave00101_right_new_2",
|
||||
// "C1autosave00102_right_new_2",
|
||||
// "C1autosave00103_right_new_2",
|
||||
// "C1autosave00104_right_new_2",
|
||||
// "C1autosave00105_right_new_2",
|
||||
// "C1autosave00106_right_new_2",
|
||||
// "C1autosave00107_right_new_2",
|
||||
// "C1autosave00108_right_new_2",
|
||||
// "C1autosave00109_right_new_2",
|
||||
// "C1autosave00110_right_new_2",
|
||||
// "C1autosave00111_right_new_2",
|
||||
// "C1autosave00112_right_new_2",
|
||||
// "C1autosave00113_right_new_2",
|
||||
// "C1autosave00114_right_new_2",
|
||||
// "C1autosave00115_right_new_2",
|
||||
// "C1autosave00116_right_new_2",
|
||||
// "C1autosave00117_right_new_2",
|
||||
// "C1autosave00118_right_new_2",
|
||||
// "C1autosave00119_right_new_2",
|
||||
// "C1autosave00120_right_new_2",
|
||||
// "C1autosave00121_right_new_2",
|
||||
// "C1autosave00122_right_new_2",
|
||||
// "C1autosave00123_right_new_2",
|
||||
// "C1autosave00124_right_new_2",
|
||||
|
||||
// "filtered_C1autosave00011_right_new",
|
||||
// "filtered_C1autosave00015_right_new",
|
||||
// "filtered_C1autosave00043_right_new",
|
||||
// "filtered_C1autosave00067_right_new",
|
||||
// "filtered_C1autosave00090_right_new",
|
||||
// "filtered_C1autosave00106_right_new",
|
||||
// "filtered_C1autosave00118_right_new",
|
||||
|
||||
// "filtered_C1autosave00007_right_new",
|
||||
// "filtered_C1autosave00035_right_new",
|
||||
// "filtered_C1autosave00036_right_new",
|
||||
// "filtered_C1autosave00040_right_new",
|
||||
// "filtered_C1autosave00053_right_new",
|
||||
// "filtered_C1autosave00061_right_new",
|
||||
// "filtered_C1autosave00074_right_new",
|
||||
// "filtered_C1autosave00077_right_new",
|
||||
// "filtered_C1autosave00080_right_new",
|
||||
// "filtered_C1autosave00085_right_new",
|
||||
// "filtered_C1autosave00098_right_new",
|
||||
// "filtered_C1autosave00100_right_new",
|
||||
// "filtered_C1autosave00104_right_new",
|
||||
// "filtered_C1autosave00122_right_new",
|
||||
// "filtered_C1autosave00124_right_new",
|
||||
|
||||
// "filtered_C1autosave00108_right_new",
|
||||
|
||||
|
||||
char* modelusearr[] = {
|
||||
|
||||
"filtered_C1autosave00108_right_new",
|
||||
|
||||
"filtered_C1autosave00004_right_new",
|
||||
"filtered_C1autosave00039_right_new",
|
||||
"filtered_C1autosave00062_right_new",
|
||||
|
||||
};
|
||||
|
||||
|
||||
for(int a=0;a<(sizeof(modelusearr) / sizeof(modelusearr[0]));a++){
|
||||
SDRAM_USED();
|
||||
model_switchdata(modelusearr[a]);
|
||||
cnn_run();
|
||||
}
|
||||
printf("\r\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\r\n");
|
||||
|
||||
// "filtered_C1autosave00004_right_new",
|
||||
// "filtered_C1autosave00039_right_new",
|
||||
// "filtered_C1autosave00062_right_new",
|
||||
// };
|
||||
// for(int a=0;a<(sizeof(modelusearr) / sizeof(modelusearr[0]));a++){
|
||||
// SDRAM_USED();
|
||||
// model_switchdata(modelusearr[a]);
|
||||
// cnn_run();
|
||||
// }
|
||||
// printf("\r\n运行完成\r\n");
|
||||
|
||||
while(1){
|
||||
if(isrun)cnn_run();
|
||||
key=KEY_Scan(0);//<2F><>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
switch(key){
|
||||
case 0://û<>а<EFBFBD><D0B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
break;
|
||||
case KEY0_PRES: //KEY0<59><30><EFBFBD><EFBFBD>
|
||||
isrun = 1;
|
||||
break;
|
||||
case KEY1_PRES: //KEY1<59><31><EFBFBD><EFBFBD>
|
||||
model_dataset();
|
||||
break;
|
||||
case KEY2_PRES: //KEY1<59><31><EFBFBD><EFBFBD>
|
||||
model_switchdata("C1autosave00095_right_new_2");
|
||||
break;
|
||||
case WKUP_PRES: //KEY1<59><31><EFBFBD><EFBFBD>
|
||||
model_switchdata("data");
|
||||
break;
|
||||
}
|
||||
delay_ms(10);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user