添加功能

以原始数据运行CNN
This commit is contained in:
Qiea
2024-11-08 14:10:20 +08:00
parent c24ed130e9
commit 46403a5c96
80 changed files with 18947 additions and 21564 deletions

View File

@@ -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);
}
}