diff --git a/App/Inc/motor.h b/App/Inc/motor.h
index ad6ae5e..29c0500 100644
--- a/App/Inc/motor.h
+++ b/App/Inc/motor.h
@@ -10,7 +10,7 @@ extern int mov_flag; //
extern int send_flag; //发送标志
extern int seat_flag; //位置标志
extern int motor_dire; //电机转动方向
-
+extern int motor_direc;
extern int Travle_Flag; //0 直 1 角
extern char Motor_Run; //0 停止 1 运行 2 运行到起始点 3 运行到结束点
extern char Run_Mode; //0 点动 1 连续(方案一) 2 连续(方案二)
diff --git a/App/Inc/oled2.h b/App/Inc/oled2.h
index bb867c4..3c93949 100644
--- a/App/Inc/oled2.h
+++ b/App/Inc/oled2.h
@@ -19,7 +19,7 @@ void OLED2_Send(unsigned char *data, unsigned char len);
void OLED2_Init(void);
void OLED_DisplayTest(void);
void OLED_MenuTest(void);
-void OLED_ShowCN(unsigned char x,unsigned char y,unsigned char index);
+void OLED_ShowCN(unsigned char x,unsigned char y,unsigned char index,unsigned char color);
void OLED_ShowString(unsigned char x,unsigned char y,char *str,unsigned char Char_Size,unsigned char color);
void OLED_ShowChar(unsigned char x,unsigned char y,unsigned char chr,unsigned char Char_Size,unsigned char color);
void OLED_Clear(void) ;
diff --git a/App/Src/app.c b/App/Src/app.c
index 5339dc5..e2043cf 100644
--- a/App/Src/app.c
+++ b/App/Src/app.c
@@ -13,8 +13,8 @@ char ocin1 = 0,ocin2 = 0; //浣嶇疆寮鍏筹紝杩滅涓1鎺ヨ繎涓0
char oled_init_flag = 0,oled_init_result = 0;
//int i2c_error_temp = 0;
uint8_t magnet_tx[7] = {0x05,0x01,0x00,0x0A,0x00,0x0A,0xFF};
-
HAL_StatusTypeDef hal_check_tx;
+
void app_act (void)
{
//1 鎸夐敭鎿嶄綔
@@ -41,11 +41,10 @@ void app_act (void)
{
it_100ms_flag = 0;
- OLED_MenuTest(); //OLED鏄剧ず
-// OLED_Act(); //OLED鏄剧ず,鎿嶄綔鏄惧瓨鍚庣粺涓鍙戦
-// OLED_DisplayTest(); //OLED鏄剧ず锛屽彧鍙戦侀渶瑕佹樉绀虹殑閮ㄥ垎
+ OLED_MenuTest(); //OLED鏄剧ず,鑿滃崟
TEMP_M1820 = M1820_Get_Temp(); //娓╁害閲囬泦
+
X_ads1220 = Xads1220_filter(5,16); //鐢甸樆灏烘护娉㈢粨鏋滐紙鐢靛帇鍊硷紝mv锛
X_ads1220_prc =(X_ads1220 - X_ads1220_L)/(X_ads1220_H - X_ads1220_L);
@@ -56,15 +55,12 @@ void app_act (void)
//5 鐢甸樆灏 浣嶇Щ浼犳劅鍣
- Xads1220_record();
+ Xads1220_record();//閲囬泦鏁版嵁鐢ㄤ簬婊ゆ尝
//6 鐢垫満
-// motor_protect_ads(0.10, 0.90); //鏍规嵁鐢甸樆灏轰綅绉婚檺浣
-// motor_protect_ocin(); //鏍规嵁浣嶇疆寮鍏抽檺浣
-// tmc5160_operate(tmc5160_sw, move_step_5mm); //绗竴涓弬鏁颁唬琛ㄦā寮忛夋嫨锛岀浜屼釜鍙傛暟涓烘闀匡紝鐢垫満杞姩涓鍦堟粦鍧楃Щ鍔5mm
-
-// Deal_Motor();
+// motor_protect_ocin();
+ Deal_Motor();
//7 涓插彛鏁版嵁澶勭悊
Deal_Uart_Data_For_Module();
@@ -81,22 +77,22 @@ void app_act (void)
//9 LED鐏姸鎬佹寚绀
- if( (tmc5160_sw == 0) || ((tmc5160_sw == 3) && (busy_flag == 0)) )
+ if( Motor_Run == 0 )
{
HAL_GPIO_WritePin(LED_NOR_GPIO_Port, LED_NOR_Pin, GPIO_PIN_SET);//鍋滄鐘舵佷袱鐏唲鐏
HAL_GPIO_WritePin(LED_ERR_GPIO_Port, LED_ERR_Pin, GPIO_PIN_SET);
}
- if(tmc5160_sw == 1)
+ if( (Motor_Run == 1) && (motor_direc == 1) )
{
HAL_GPIO_WritePin(LED_NOR_GPIO_Port, LED_NOR_Pin, GPIO_PIN_RESET);//姝e悜杞姩缁跨伅浜
HAL_GPIO_WritePin(LED_ERR_GPIO_Port, LED_ERR_Pin, GPIO_PIN_SET);
}
- if(tmc5160_sw == 2)
+ if( (Motor_Run == 1) && (motor_direc == 2) )
{
HAL_GPIO_WritePin(LED_NOR_GPIO_Port, LED_NOR_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED_ERR_GPIO_Port, LED_ERR_Pin, GPIO_PIN_RESET);//鍙嶅悜杞姩钃濈伅浜
}
- if( (tmc5160_sw == 3) && (busy_flag == 1) )
+ if( ( Motor_Run == 2 ) || ( Motor_Run == 3 ) )
{
HAL_GPIO_WritePin(LED_NOR_GPIO_Port, LED_NOR_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED_ERR_GPIO_Port, LED_ERR_Pin, GPIO_PIN_RESET);//澶嶄綅绉诲姩鏃朵袱鐏寒
diff --git a/App/Src/motor.c b/App/Src/motor.c
index 0078470..fd928de 100644
--- a/App/Src/motor.c
+++ b/App/Src/motor.c
@@ -1,16 +1,21 @@
#include "motor.h"
#include "app.h"
-#define STEP_LIN 16 //直行程步长单位数值(脉冲数)
-#define STEP_ROT 20 //角行程步长单位数值(脉冲数)
-#define DATA_LEN 10 //角行程步长单位数值(脉冲数)
-#define MOTOR_STOP 0 //电机停止
-#define MOTOR_POS 1 //电机正向运动
-#define MOTOR_REV 2 //电机反向运动
-#define MOTOR_RETURN 3 //电机返回
+#define STEP_LIN 16 //直行程步长单位数值(脉冲数)
+#define STEP_ROT 20 //角行程步长单位数值(脉冲数)
+#define DATA_LEN 10 //角行程步长单位数值(脉冲数)
+#define MOTOR_STOP 0 //电机停止
+#define MOTOR_POS 1 //电机正向运动
+#define MOTOR_REV 2 //电机反向运动
+#define MOTOR_RETURN 3 //电机返回
-int Travle_Flag = 0; //0 直 1 角
+#define magnet_start 200 //磁条范围-起点mv
+#define magnet_end 800 //磁条范围-终点mv
+#define motor_start 100 //电机运动范围起点mv
+#define motor_end 1000 //电机运动范围终点mv
+
+int Travle_Flag = 0; //0 直 1 角
char Motor_Run = 0; //0 停止 1 运行 2 运行到起始点 3 运行到结束点
char Run_Mode = 0; //0 点动 1 方案一 2 方案二
unsigned int Run_Step = 0; //电机运行步长
@@ -26,7 +31,7 @@ int seat_flag = 0; //位
int motor_dire = 1; //电机转动方向
int flag = 0;
-int motor_direc = 1;
+int motor_direc = 1;//电机转动方向
char motor_control = 0;
@@ -95,11 +100,25 @@ void Deal_Motor(void)
}
else if(Motor_Run == 2)//运行到起始位
{
- tmc5160_operate(MOTOR_RETURN,0);//回到起始位
+ if(X_ads1220 < motor_start)
+ {
+ Motor_Run = 0;
+ if(busy_flag == 0) motor_direc = MOTOR_POS;
+ }else
+ {
+ tmc5160_operate(MOTOR_REV,51200*5);
+ }
}
else if(Motor_Run == 3)//运行到结束位
- {
- tmc5160_operate(MOTOR_RETURN,0);//移动至结束位
+ {
+ if(X_ads1220 > motor_end)
+ {
+ Motor_Run = 0;
+ if(busy_flag == 0) motor_direc = MOTOR_POS;
+ }else
+ {
+ tmc5160_operate(MOTOR_POS,51200*5);
+ }
}
else//数据错误
{
@@ -176,42 +195,27 @@ void mov_step(void)
{
if( (ocin1 == 0) && (motor_direc != MOTOR_POS) )//判断是否到达始限位
{
- motor_direc = MOTOR_POS;
tmc5160_operate(MOTOR_STOP,0);
+ if(busy_flag == 0) motor_direc = MOTOR_POS;
}
if( (ocin2 == 0) && (motor_direc != MOTOR_REV) )//判断是否到达终限位
{
- motor_direc = MOTOR_REV;
tmc5160_operate(MOTOR_STOP,0);
+ if(busy_flag == 0) motor_direc = MOTOR_REV;
}
- if(Run_mm == 0) return;//步长不能为0
-
TMC5160_SPIReadInt(XACTUAL_ADDR,XA); //读取实际位置XACTUAL
XA_32 = Raw_32(XA);
TMC5160_SPIReadInt(VACTUAL_ADDR,VA); //读取实际速度VACTUAL
VA_32 = Raw_32(VA);
- TMC5160_SPIReadInt(RAMP_STAT_ADDR,RAMP_STAT); //读取斜坡状态
- RAMP_STAT_32 = Raw_32(RAMP_STAT);
- TMC5160_SPIReadInt(DRV_STAT_ADDR,DRV_STAT); //读取驱动器状态
- DRV_STAT_32 = Raw_32(DRV_STAT);
- SG_RESULT_16 = ((uint16_t)DRV_STAT_32) & 0x03FF;//驱动器状态共32bit,其中0-9bit为负载值,读到的负载值越低,负载越高,0代表最高负载
-
+
+ if(Run_mm == 0) return;//步长不能为0
+
switch(Runmotor_step)
{
case 1 : //电机运行准备
{
- //motor_start(); //运行
- if( ocin1 == 0 )//判断是否到达始限位
- {
- motor_direc = MOTOR_POS;
- //tmc5160_operate(MOTOR_POS,0); //正转
- }
- if( ocin2 == 0 )//判断是否到达终限位
- {
- motor_direc = MOTOR_REV;
- //tmc5160_operate(MOTOR_REV,0); //反转
- }
+
Runmotor_Nums = 0; //运行次数
mov_flag = 0;
Runmotor_step++;
@@ -219,12 +223,18 @@ void mov_step(void)
break;
case 2 : //电机运行过程
{
- Run_Step = (Run_mm/0.05) * 512;
- tmc5160_operate(motor_direc,Run_Step);
+ if(Run_Step == 0) //上位机无消息时使用下位机的控制参数Run_mm
+ {
+ tmc5160_operate(motor_direc,Run_mm * 10240);
+
+ }else
+ {
+ tmc5160_operate(motor_direc,Run_Step * 1024);//Runstep cm
+ }
if(busy_flag == 0)
{
Runmotor_step++;
- }
+ }
}
break;
case 3 :
@@ -239,23 +249,23 @@ void mov_step(void)
case 4 :
{
if(it_1ms_flag) //检查1ms定时标志
- {
- it_1ms_flag = 0;//定时标志清零
- Runmotor_Nums++;
- }
- if(Runmotor_Nums >= 300)//时间
- {
- Runmotor_Nums = 0;
- Runmotor_step++;
- //motor_seat(); //读取电机当前位置
- send_set_resp(0xF001, OBJ_DEVICE_ADDR, DATA_LEN, motor_data);//数据发送
- }
+ {
+ it_1ms_flag = 0;//定时标志清零
+ Runmotor_Nums++;
+ }
+ if(Runmotor_Nums >= 300)//时间
+ {
+ Runmotor_Nums = 0;
+ Runmotor_step++;
+ //motor_seat(); //读取电机当前位置
+ send_set_resp(0xF001, OBJ_DEVICE_ADDR, DATA_LEN, motor_data);//数据发送
+ }
}
break;
case 5 :
{
Runmotor_step = 0;
- Motor_Run = 1; //运行标记清除
+ Motor_Run = 0; //运行标记清除,等待下一次上位机发送命令
}
break;
default :
@@ -266,8 +276,7 @@ void mov_step(void)
}
}
-#define magnet_start 200
-#define magnet_end 800
+
//电机连续运行,方案一(直行程)
void mov_loop1(void)
{
@@ -276,12 +285,12 @@ void mov_loop1(void)
case 1 : //电机运行准备
{
- motor_direc = MOTOR_POS; //正转
+ motor_direc = MOTOR_POS; //初始为正转
motor_dire = 1;
- Run_mm = 0;
+// Run_mm = 0;
Run_num = 0;
- motor_data[2] = 0x00; //发送时反馈的数据
- Runmotor_Nums = 0; //运行次数
+ motor_data[2] = 0x00; //发送时反馈的数据
+ Runmotor_Nums = 0; //运行次数
mov_flag = 0;
Runmotor_step++;
}
@@ -291,17 +300,19 @@ void mov_loop1(void)
if( X_ads1220 > magnet_start ) //电阻尺位置判断
{
tmc5160_operate(MOTOR_STOP,0);
- if(it_1000ms_flag) //检查1ms定时标志
+ if(busy_flag == 1) break;
+
+ if(it_1000ms_flag) //检查1ms定时标志
{
- it_1000ms_flag = 0;//定时标志清零
+ it_1000ms_flag = 0; //定时标志清零
Runmotor_Nums++;
}
- if(Runmotor_Nums >= Run_Stop)//时间
+ if(Runmotor_Nums >= Run_Stop) //时间
{
Runmotor_step++;
// motor_data[8] = ((Run_mm * Run_Step) & 0xff00) >> 8;//磁条长度高8位
// motor_data[9] = (Run_mm * Run_Step) & 0x00ff; //磁条长度低8位
- //motor_seat(); //读取电机当前位置
+// motor_seat(); //读取电机当前位置
send_set_resp(0xF001, OBJ_DEVICE_ADDR, DATA_LEN, motor_data);//数据发送
}
}
@@ -315,11 +326,11 @@ void mov_loop1(void)
}
//进入磁条范围前,以大步长进行运动,单位为mm,5mm转一圈
tmc5160_operate( motor_direc, 51200*3 );
- Runmotor_step = 6;
+ Runmotor_step = 6;//在case 2 - 6 之间循环,2运动,6限位
}
}
break;
- case 3 : //延时
+ case 3 :
{
//进入磁条范围后,以小步长进行运动,单位为mm
if(Run_Step == 0)
@@ -329,7 +340,7 @@ void mov_loop1(void)
{
tmc5160_operate(motor_direc,Run_Step*10240);
}
- if(busy_flag == 0)
+ if(busy_flag == 0)//到达指定位置后释放busy_flag
{
Runmotor_step++;
}
@@ -356,49 +367,75 @@ void mov_loop1(void)
break;
case 5 :
{
- if(X_ads1220 > magnet_end)//超出磁条范围判断
+// if(X_ads1220 > magnet_end)//超出磁条范围判断
+// {
+// if(flag == 0)
+// {
+// Runmotor_Nums = 0;
+// Runmotor_step = 3;
+// if(motor_dire == 1)
+// {
+// motor_direc = MOTOR_REV;//反转
+// flag = 1;
+// motor_dire = 0;
+// }
+// else
+// {
+// Motor_Run = 2; //运行标记改变,电机回到初始位
+// }
+// }
+// else
+// {
+// Runmotor_step = 3;
+// }
+// }
+// else
+// {
+// Runmotor_step = 3;
+// flag = 0 ;
+
+ if( (ocin1 == 0) && (motor_direc != MOTOR_POS) )//判断是否到达始限位
{
- if(flag == 0)
- {
- Runmotor_Nums = 0;
- Runmotor_step = 3;
- if(motor_dire == 1)
- {
- motor_direc = MOTOR_REV;//反转
- flag = 1;
- motor_dire = 0;
- }
- else
- {
- Motor_Run = 2; //运行标记改变,电机回到初始位
- }
- }
- else
- {
- Runmotor_step = 3;
- }
+ tmc5160_operate(MOTOR_STOP,0);
+ if(busy_flag == 0) motor_direc = MOTOR_POS;
}
- else
+ if( (ocin2 == 0) && (motor_direc != MOTOR_REV) )//判断是否到达终限位
{
- Runmotor_step = 3;
- flag = 0 ;
+ tmc5160_operate(MOTOR_STOP,0);
+ if(busy_flag == 0) motor_direc = MOTOR_REV;
}
+
+// }
+ if(X_ads1220 > magnet_end) //超出磁条范围判断
+ {
+ motor_direc = MOTOR_REV; //反转
+ }
+
+ Runmotor_step = 3;
+
+ if(X_ads1220 < magnet_start) //超出磁条范围判断
+ {
+ Motor_Run = 2; //回起点
+ Runmotor_step = 0;
+ }
+
+
}
break;
case 6 :
{
if( (ocin1 == 0) && (motor_direc != MOTOR_POS) )//判断是否到达始限位
{
- motor_direc = MOTOR_POS;
tmc5160_operate(MOTOR_STOP,0);
+ if(busy_flag == 0) motor_direc = MOTOR_POS;
}
if( (ocin2 == 0) && (motor_direc != MOTOR_REV) )//判断是否到达终限位
{
- motor_direc = MOTOR_REV;
tmc5160_operate(MOTOR_STOP,0);
+ if(busy_flag == 0) motor_direc = MOTOR_REV;
}
- Runmotor_step = 2;
+ Runmotor_step = 2;//在case 2 - 6 之间循环,2运动,6限位
}
break;
default :
diff --git a/App/Src/myLib.c b/App/Src/myLib.c
index 42488bd..1155263 100644
--- a/App/Src/myLib.c
+++ b/App/Src/myLib.c
@@ -200,30 +200,44 @@ const unsigned char F8X16[]=
//????
const char Hzk[][32]=
{
- {0x00,0x80,0x40,0x20,0x18,0x06,0x80,0x00,0x07,0x18,0x20,0x40,0x80,0x00,0x00,0x00,
- 0x01,0x00,0x20,0x70,0x28,0x26,0x21,0x20,0x20,0x24,0x38,0x60,0x00,0x01,0x01,0x00},/*"?",0*/
-
- {0x80,0x80,0x40,0x20,0xD0,0x08,0x04,0x03,0x04,0x08,0xD0,0x20,0x40,0x80,0x80,0x00,
- 0x80,0x40,0x20,0x18,0x07,0x08,0xB0,0x40,0x20,0x18,0x07,0x18,0x20,0x40,0x80,0x00},/*"?",1*/
-
- {0x80,0x80,0x80,0xBE,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xBE,0x80,0x80,0x80,0x00,
- 0x00,0x00,0x00,0x06,0x05,0x04,0x04,0x04,0x44,0x84,0x44,0x3C,0x00,0x00,0x00,0x00},/*"?",2*/
-
- {0x40,0x3C,0x10,0xFF,0x10,0x10,0x20,0x10,0x8F,0x78,0x08,0xF8,0x08,0xF8,0x00,0x00,
- 0x02,0x06,0x02,0xFF,0x01,0x01,0x04,0x42,0x21,0x18,0x46,0x81,0x40,0x3F,0x00,0x00},/*"?",0*/
-
- {0x02,0xFE,0x92,0x92,0xFE,0x02,0x00,0x10,0x11,0x16,0xF0,0x14,0x13,0x10,0x00,0x00,
- 0x10,0x1F,0x08,0x08,0xFF,0x04,0x81,0x41,0x31,0x0D,0x03,0x0D,0x31,0x41,0x81,0x00},/*"?",1*/
-
- {0x00,0xFE,0x02,0x22,0x42,0x82,0x72,0x02,0x22,0x42,0x82,0x72,0x02,0xFE,0x00,0x00,
- 0x00,0xFF,0x10,0x08,0x06,0x01,0x0E,0x10,0x08,0x06,0x01,0x4E,0x80,0x7F,0x00,0x00},/*"?",2*/
-
- {0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0xFE,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,
- 0x40,0x38,0x01,0x00,0x3C,0x40,0x40,0x42,0x4C,0x40,0x40,0x70,0x05,0x08,0x30,0x00},/*"?",0*/
-
- {0x20,0x20,0x24,0x24,0x24,0x24,0xBF,0x64,0x24,0x34,0x28,0x24,0x22,0x20,0x20,0x00,
- 0x10,0x08,0x04,0x02,0x01,0x0D,0x0B,0x09,0x49,0x89,0x49,0x39,0x01,0x00,0x00,0x00},/*"?",1*/
-
+ {0x04,0x04,0x44,0xC4,0x4F,0x44,0x44,0xC4,0x24,0x24,0x2F,0xB4,0x24,0x04,0x04,0x00,
+ 0x40,0x44,0x24,0x24,0x15,0x0C,0x04,0xFE,0x04,0x0C,0x15,0x24,0x24,0x44,0x40,0x00},/*"菜",0*/
+
+ {0x00,0x00,0xF8,0x49,0x4A,0x4C,0x48,0xF8,0x48,0x4C,0x4A,0x49,0xF8,0x00,0x00,0x00,
+ 0x10,0x10,0x13,0x12,0x12,0x12,0x12,0xFF,0x12,0x12,0x12,0x12,0x13,0x10,0x10,0x00},/*"单",1*/
+
+ {0x00,0x20,0x20,0xA8,0x6C,0x2A,0x39,0x28,0xA8,0x2A,0x6C,0xA8,0x20,0x20,0x00,0x00,
+ 0x02,0x82,0x81,0x90,0x92,0x4A,0x49,0x45,0x24,0x22,0x10,0x08,0x01,0x02,0x02,0x00},/*"参",2*/
+
+ {0x90,0x52,0x34,0x10,0xFF,0x10,0x34,0x52,0x80,0x70,0x8F,0x08,0x08,0xF8,0x08,0x00,
+ 0x82,0x9A,0x56,0x63,0x22,0x52,0x8E,0x00,0x80,0x40,0x33,0x0C,0x33,0x40,0x80,0x00},/*"数",3*/
+
+ {0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0xF8,0x00,0x00,0x00,
+ 0x00,0x00,0x1F,0x08,0x08,0x08,0x08,0x7F,0x88,0x88,0x88,0x88,0x9F,0x80,0xF0,0x00},/*"电",4*/
+
+ {0x10,0x10,0xD0,0xFF,0x90,0x10,0x00,0xFE,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,
+ 0x04,0x03,0x00,0xFF,0x00,0x83,0x60,0x1F,0x00,0x00,0x00,0x3F,0x40,0x40,0x78,0x00},/*"机",5*/
+
+ {0x10,0x10,0x10,0xFF,0x90,0x20,0x98,0x48,0x28,0x09,0x0E,0x28,0x48,0xA8,0x18,0x00,
+ 0x02,0x42,0x81,0x7F,0x00,0x40,0x40,0x42,0x42,0x42,0x7E,0x42,0x42,0x42,0x40,0x00},/*"控",6*/
+
+ {0x40,0x50,0x4E,0x48,0x48,0xFF,0x48,0x48,0x48,0x40,0xF8,0x00,0x00,0xFF,0x00,0x00,
+ 0x00,0x00,0x3E,0x02,0x02,0xFF,0x12,0x22,0x1E,0x00,0x0F,0x40,0x80,0x7F,0x00,0x00},/*"制",7*/
+
+ {0x84,0xE4,0x5C,0xC4,0x00,0x08,0xC8,0x39,0x8E,0x08,0x08,0xCC,0x3B,0x88,0x08,0x00,
+ 0x00,0x3F,0x10,0x3F,0x00,0x63,0x5A,0x46,0xE1,0x00,0x63,0x5A,0x46,0xE1,0x00,0x00},/*"磁",8*/
+
+ {0x80,0x90,0x90,0x48,0x4C,0x57,0x24,0xE4,0x24,0x54,0x4C,0x44,0x80,0x80,0x80,0x00,
+ 0x00,0x42,0x22,0x12,0x0A,0x42,0x82,0x7F,0x02,0x02,0x0A,0x12,0x22,0x42,0x00,0x00},/*"条",9*/
+
+ {0x00,0x00,0x04,0x14,0x64,0x04,0x0C,0xB4,0x02,0x02,0x42,0x33,0x02,0x00,0x00,0x00,
+ 0x40,0x41,0x21,0x11,0x09,0x05,0x03,0xFF,0x03,0x05,0x09,0x11,0x21,0x41,0x40,0x00},/*"采",10*/
+
+ {0x10,0x10,0xD0,0xFF,0x90,0x00,0x10,0x91,0x96,0x90,0xF0,0x90,0x94,0x93,0x10,0x00,
+ 0x04,0x03,0x00,0xFF,0x00,0x01,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x00},/*"样",11*/
+
+// {0x00,0x80,0x40,0x20,0x18,0x06,0x80,0x00,0x07,0x18,0x20,0x40,0x80,0x00,0x00,0x00,
+// 0x01,0x00,0x20,0x70,0x28,0x26,0x21,0x20,0x20,0x24,0x38,0x60,0x00,0x01,0x01,0x00},/*"?",0*/
};
diff --git a/App/Src/oled2.c b/App/Src/oled2.c
index 57b8dde..6121a15 100644
--- a/App/Src/oled2.c
+++ b/App/Src/oled2.c
@@ -382,21 +382,39 @@ void OLED_ShowString(uint8_t x,uint8_t y,char *str,uint8_t Char_Size,uint8_t col
//????
//?????16*16???,??????4???
//index:?????????
-void OLED_ShowCN(uint8_t x,uint8_t y,uint8_t index)
+void OLED_ShowCN(uint8_t x,uint8_t y,uint8_t index,uint8_t color)
{
- uint8_t t;
+ uint8_t t;
- OLED_SetPos(x,y);
- for(t=0;t<16;t++)
- {
- SSD1306_WriteData(Hzk[index][t]);
- }
-
- OLED_SetPos(x,y+1);
- for(t=0;t<16;t++)
- {
- SSD1306_WriteData(Hzk[index][t+16]);
- }
+ if(color == 0)
+ {
+ OLED_SetPos(x,y);
+ for(t=0;t<16;t++)
+ {
+ SSD1306_WriteData(Hzk[index][t]);
+ }
+
+ OLED_SetPos(x,y+1);
+ for(t=0;t<16;t++)
+ {
+ SSD1306_WriteData(Hzk[index][t+16]);
+ }
+ }
+
+ if(color == 1)
+ {
+ OLED_SetPos(x,y);
+ for(t=0;t<16;t++)
+ {
+ SSD1306_WriteData(~Hzk[index][t]);
+ }
+
+ OLED_SetPos(x,y+1);
+ for(t=0;t<16;t++)
+ {
+ SSD1306_WriteData(~Hzk[index][t+16]);
+ }
+ }
}
char str_print2[16] = {0},str_print3[16] = {0};
@@ -470,7 +488,10 @@ void OLED_MenuTest(void)
case 1: //显示不动的内容
{
OLED_Clear();
- OLED_ShowString(48,0,"Menu",16,1);
+ OLED_ShowString(0,0," ",16,1);
+ OLED_ShowString(80,0," ",16,1);
+ OLED_ShowCN(48,0,0,1);
+ OLED_ShowCN(64,0,1,1);
OLED_ShowString(0,2,"Parameter ",16,0);
OLED_ShowString(0,4,"Motor Control",16,0);
OLED_ShowString(0,6,"Magnet Sample",16,0);
@@ -531,9 +552,9 @@ void OLED_MenuTest(void)
}
}
break;
- case 3:
+ case 3: //参数显示,发生变化时刷新
{
- if(para_flag == 0)
+ if(para_flag == 0) //只显示一次
{
para_flag = 1;
OLED_Clear();
@@ -561,7 +582,7 @@ void OLED_MenuTest(void)
{
OLED_ShowString(72,6,"ERROR",16,0);
}
- }else
+ }else //变化时刷新
{
//位置
Xads_temp2[0] = X_ads1220_prc;
@@ -612,7 +633,7 @@ void OLED_MenuTest(void)
}
}
- if(oled_en == 1)
+ if(oled_en == 1) //OK键按下后返回菜单
{
oled_en = 0;
oled_p = 1;
@@ -620,7 +641,7 @@ void OLED_MenuTest(void)
}
}
break;
- case 4:
+ case 4: //电机控制,设定运动模式
{
if(motor_flag1 == 0)
{
@@ -661,7 +682,7 @@ void OLED_MenuTest(void)
}
break;
- case 5:
+ case 5: //电机控制,设定运动步长
{
if(run_mode_temp[0] == 0)
{
@@ -702,7 +723,7 @@ void OLED_MenuTest(void)
}
break;
- case 6:
+ case 6: //设置内容确认,OK后写入并运行,Cancel取消并返回菜单
{
if(motor_flag1 == 0)
{
@@ -753,7 +774,7 @@ void OLED_MenuTest(void)
}
}
break;
- case 7:
+ case 7: //运行状态显示,运行中显示Running...,当前任务结束后显示Completed!
{
if(motor_flag2 == 0)
{
@@ -817,9 +838,13 @@ void OLED_MenuTest(void)
}
OC2_temp[1] = OC2_temp[0];
}
+ if(Motor_Run == 0)
+ {
+ OLED_ShowString(0,0,"Completed !",16,0);
+ }
}
- if(oled_en == 1)
+ if(oled_en == 1) //按下OK后返回主菜单
{
Motor_Run = 0;
@@ -829,7 +854,7 @@ void OLED_MenuTest(void)
}
}
break;
- case 8:
+ case 8: //磁感应传感模块采样设置,设置采样间隔ms
{
if(magnet_flag == 0)
{
@@ -875,7 +900,7 @@ void OLED_MenuTest(void)
}
}
break;
- case 9:
+ case 9: //磁感应传感模块采样设置,设置采样深度
{
if(magnet_flag == 0)
{
@@ -907,7 +932,7 @@ void OLED_MenuTest(void)
}
}
break;
- case 10:
+ case 10: //磁感应传感模块设置确认
{
if(magnet_flag == 0)
{
diff --git a/App/Src/tmc5160.c b/App/Src/tmc5160.c
index 1d888d3..cbe1db5 100644
--- a/App/Src/tmc5160.c
+++ b/App/Src/tmc5160.c
@@ -70,7 +70,7 @@ void tmc5160_init(void)
// TMC5160_SPIWriteInt(0x0A, 0x00080400,1); // writing value 0x00080400 = 525312 = 0.0 to address 6 = 0x0A(DRV_CONF)
// TMC5160_SPIWriteInt(0x0B, 0x00000000,1); // writing value 0x00000000 = 0 = 0.0 to address 7 = 0x0B(GLOBAL_SCALER)
// 閫熷害鐩稿叧鐨勯┍鍔ㄦ帶鍒跺瘎瀛樺櫒
- TMC5160_SPIWriteInt(0x10, 0x00070E02,1); // IHOLD->0~7bit; IRUN->12~8bit
+ TMC5160_SPIWriteInt(0x10, 0x00070A02,1); // IHOLD->0~7bit; IRUN->12~8bit
TMC5160_SPIWriteInt(0x11, 0x0000000A,1); // writing value 0x0000000A = 10 = 0.0 to address 9 = 0x11(TPOWERDOWN)
// TMC5160_SPIWriteInt(0x13, 0x000001F4,1); // writing value 0x00000041 = 65 = 0.0 to address 10 = 0x13(TPWMTHRS)
TMC5160_SPIWriteInt(0x14, 0x00000010,1); // writing value 0x00004189 = 16777 = 0.0 to address 11 = 0x14(TCOOLTHRS)
@@ -273,31 +273,31 @@ uint32_t X_temp = 0;
char busy_flag = 0;
void tmc5160_operate(char operate_mode, uint32_t steps)
{
-// TMC5160_SPIReadInt(XACTUAL_ADDR,XA); //璇诲彇瀹為檯浣嶇疆XACTUAL
-// XA_32 = Raw_32(XA);
-// TMC5160_SPIReadInt(VACTUAL_ADDR,VA); //璇诲彇瀹為檯閫熷害VACTUAL
-// VA_32 = Raw_32(VA);
-// TMC5160_SPIReadInt(RAMP_STAT_ADDR,RAMP_STAT); //璇诲彇鏂滃潯鐘舵
-// RAMP_STAT_32 = Raw_32(RAMP_STAT);
-// TMC5160_SPIReadInt(DRV_STAT_ADDR,DRV_STAT); //璇诲彇椹卞姩鍣ㄧ姸鎬
-// DRV_STAT_32 = Raw_32(DRV_STAT);
-// SG_RESULT_16 = ((uint16_t)DRV_STAT_32) & 0x03FF;//椹卞姩鍣ㄧ姸鎬佸叡32bit锛屽叾涓0-9bit涓鸿礋杞藉硷紝璇诲埌鐨勮礋杞藉艰秺浣庯紝璐熻浇瓒婇珮锛0浠h〃鏈楂樿礋杞
-
-
+
switch(operate_mode)
{
case 0 : //鐢垫満鍋滄
{
- rampmode = 0x00000000;
- TMC5160_SPIWriteInt(RAMPMODE_ADDR,rampmode,1); //寮鍚綅缃ā寮
-
- TMC5160_SPIWriteInt(XTARGET_ADDR, XA_32, 1); //鎶婂綋鍓嶄綅缃涓虹洰鏍囦綅缃紝寮鍚噺閫熷仠姝
+ VA_32 = Raw_32(VA);
+
+ if( VA_32 != 0)
+ {
+ busy_flag = 1;
+
+ rampmode = 0x00000000;
+ TMC5160_SPIWriteInt(RAMPMODE_ADDR,rampmode,1); //寮鍚綅缃ā寮
+
+ TMC5160_SPIWriteInt(XTARGET_ADDR, XA_32, 1); //鎶婂綋鍓嶄綅缃涓虹洰鏍囦綅缃紝寮鍚噺閫熷仠姝
+ }else
+ {
+ busy_flag = 0;
+ }
- busy_flag = 0;
}
break;
case 1 : //鐢垫満寮濮嬫鍚戣繍鍔
{
+
if( busy_flag == 0)
{
busy_flag = 1;
@@ -308,16 +308,23 @@ void tmc5160_operate(char operate_mode, uint32_t steps)
TMC5160_SPIWriteInt(XTARGET_ADDR, X_temp + steps, 1); //姝ゆ椂鐨勫疄闄呬綅缃+姝ラ暱浣滀负鐩爣浣嶇疆
}
- if( RAMP_STAT_32 & 0x00000200 ) //鍒拌揪鐩爣浣嶇疆锛孹ACTUAL = XTARGET鏃讹紝绗9浣嶄細琚疆 1
+ if(busy_flag == 1)
{
- busy_flag = 0;
- X_temp = 0;
+ TMC5160_SPIReadInt(RAMP_STAT_ADDR,RAMP_STAT); //杩愬姩杩囩▼涓鍙栨枩鍧$姸鎬
+ RAMP_STAT_32 = Raw_32(RAMP_STAT);
+
+ if(RAMP_STAT_32 & 0x00000200) //鍒拌揪鐩爣浣嶇疆锛孹ACTUAL = XTARGET鏃讹紝绗9浣嶄細琚疆 1
+ {
+ busy_flag = 0;
+ X_temp = 0;
+ }
}
}
break;
case 2 : //鐢垫満寮濮嬪弽鍚戣繍鍔
{
+
if( busy_flag == 0)
{
busy_flag = 1;
@@ -328,33 +335,44 @@ void tmc5160_operate(char operate_mode, uint32_t steps)
TMC5160_SPIWriteInt(XTARGET_ADDR, X_temp - steps, 1);
}
- if( RAMP_STAT_32 & 0x00000200 )
+ if(busy_flag == 1)
{
- busy_flag = 0;
- X_temp = 0;
+ TMC5160_SPIReadInt(RAMP_STAT_ADDR,RAMP_STAT); //璇诲彇鏂滃潯鐘舵
+ RAMP_STAT_32 = Raw_32(RAMP_STAT);
+ if(RAMP_STAT_32 & 0x00000200) //鍒拌揪鐩爣浣嶇疆锛孹ACTUAL = XTARGET鏃讹紝绗9浣嶄細琚疆 1
+ {
+ busy_flag = 0;
+ X_temp = 0;
+ }
+
}
}
break;
- case 3 : //鐢垫満鍥炲埌璧风偣
+// case 3 : //鐢垫満鍥炲埌璧风偣(涓婄數浣嶇疆)
+// {
+// if( busy_flag == 0)
+// {
+// busy_flag = 1;
+// rampmode = 0x00000000;
+// TMC5160_SPIWriteInt(RAMPMODE_ADDR,rampmode,1); //寮鍚綅缃ā寮
+//
+// speed_max <<=1;
+// TMC5160_SPIWriteInt(VMAX_ADDR, speed_max, 1); //浠ヤ簩鍊嶉熻繑鍥為浂鐐
+// TMC5160_SPIWriteInt(XTARGET_ADDR, 0x00000000, 1);
+// }
+// if( RAMP_STAT_32 & 0x00000200 )
+// {
+// busy_flag = 0;
+// speed_max >>=1;
+// TMC5160_SPIWriteInt(VMAX_ADDR, speed_max, 1); //鎭㈠鍘熼
+// }
+// }
+// break;
+
+ default :
{
- if( busy_flag == 0)
- {
- busy_flag = 1;
- rampmode = 0x00000000;
- TMC5160_SPIWriteInt(RAMPMODE_ADDR,rampmode,1); //寮鍚綅缃ā寮
-
- speed_max <<=1;
- TMC5160_SPIWriteInt(VMAX_ADDR, speed_max, 1); //浠ヤ簩鍊嶉熻繑鍥為浂鐐
- TMC5160_SPIWriteInt(XTARGET_ADDR, 0x00000000, 1);
- }
- if( RAMP_STAT_32 & 0x00000200 )
- {
- busy_flag = 0;
- speed_max >>=1;
- TMC5160_SPIWriteInt(VMAX_ADDR, speed_max, 1); //鎭㈠鍘熼
- }
}
break;
}
@@ -364,26 +382,30 @@ void tmc5160_operate(char operate_mode, uint32_t steps)
void motor_protect_ads(float threshold_neg, float threshold_pos)
{
- if( (X_ads1220_prc <= threshold_neg) && ( (tmc5160_sw == 2) || (tmc5160_sw == 3) ) )
+ if( (X_ads1220_prc <= threshold_neg) && (motor_direc != 1) )
{
- tmc5160_sw = 0;
+ tmc5160_operate(0, 0);
+ if(busy_flag == 0) motor_direc = 1;
}
- if( (X_ads1220_prc >= threshold_pos) && ( (tmc5160_sw == 1) || (tmc5160_sw == 3) ) )
+ if( (X_ads1220_prc >= threshold_pos) && ( motor_direc != 2 ) )
{
- tmc5160_sw = 0;
+ tmc5160_operate(0, 0);
+ if(busy_flag == 0) motor_direc = 2;
}
}
void motor_protect_ocin(void)
{
- if( (ocin1 == 0x00) && ( (tmc5160_sw == 2) || (tmc5160_sw == 3) ) )
+ if( (ocin1 == 0) && (motor_direc != 1) )
{
- tmc5160_sw = 0;
+ tmc5160_operate(0, 0);
+ if(busy_flag == 0) motor_direc = 1;
}
- if( (ocin2 == 0x00) && ( (tmc5160_sw == 1) || (tmc5160_sw == 3) ) )
+ if( (ocin2 == 0) && ( motor_direc != 2 ) )
{
- tmc5160_sw = 0;
+ tmc5160_operate(0, 0);
+ if(busy_flag == 0) motor_direc = 2;
}
}
diff --git a/Inc/app.h b/Inc/app.h
index 089fe02..24c219c 100644
--- a/Inc/app.h
+++ b/Inc/app.h
@@ -45,6 +45,5 @@ extern float X_ads1220_prc;
extern char ocin1;
extern char ocin2;
-
#endif
diff --git a/MDK-ARM/mfps.uvguix.鍚翠繆娼 b/MDK-ARM/mfps.uvguix.鍚翠繆娼
index 8070d98..48bddc0 100644
--- a/MDK-ARM/mfps.uvguix.鍚翠繆娼
+++ b/MDK-ARM/mfps.uvguix.鍚翠繆娼
@@ -20,12 +20,12 @@
346
Code Coverage
- 514 1152
+ 1010 656
204
Performance Analyzer
- 674 175 175 642
+ 1170 175 175 146
@@ -93,8 +93,8 @@
2
3
- -32000
- -32000
+ -1
+ -1
-1
@@ -102,16 +102,16 @@
59
- 314
- 1754
+ -1606
+ -166
812
0
- 988
- 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000A00000002000000010000003A463A5C4465736B746F705C576F726B5C323032342E30355C323032342E30352E30395C6D6670735C5372635C73746D3332663178785F69742E63000000000E73746D3332663178785F69742E6300000000C5D4F200FFFFFFFF32463A5C4465736B746F705C576F726B5C323032342E30355C323032342E30352E30395C6D6670735C5372635C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF35463A5C4465736B746F705C576F726B5C323032342E30355C323032342E30352E30395C6D6670735C4170705C5372635C6170702E6300000000056170702E6300000000BECEA100FFFFFFFF37463A5C4465736B746F705C576F726B5C323032342E30355C323032342E30352E30395C6D6670735C4170705C5372635C6F6C6564322E6300000000076F6C6564322E6300000000F0A0A100FFFFFFFF45463A5C4465736B746F705C576F726B5C323032342E30355C323032342E30352E30395C6D6670735C4D444B2D41524D5C737461727475705F73746D33326631303378652E730000000015737461727475705F73746D33326631303378652E7300000000BCA8E100FFFFFFFF31463A5C4465736B746F705C576F726B5C323032342E30355C323032342E30352E30395C6D6670735C496E635C6170702E6800000000056170702E68000000009CC1B600FFFFFFFF37463A5C4465736B746F705C576F726B5C323032342E30355C323032342E30352E30395C6D6670735C4170705C5372635C6D794C69622E6300000000076D794C69622E6300000000F7B88600FFFFFFFF35463A5C4465736B746F705C576F726B5C323032342E30355C323032342E30352E30395C6D6670735C4170705C5372635C6B65792E6300000000056B65792E6300000000D9ADC200FFFFFFFF37463A5C4465736B746F705C576F726B5C323032342E30355C323032342E30352E30395C6D6670735C4170705C5372635C6D6F746F722E6300000000076D6F746F722E6300000000A5C2D700FFFFFFFF37463A5C4465736B746F705C576F726B5C323032342E30355C323032342E30352E30395C6D6670735C4170705C496E635C6F6C6564322E6800000000076F6C6564322E6800000000B3A6BE00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F4000000660000008007000012030000
+ 990
+ 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000A000000060000000100000032463A5C4465736B746F705C576F726B5C323032342E30355C323032342E30352E31315C6D6670735C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF35463A5C4465736B746F705C576F726B5C323032342E30355C323032342E30352E31315C6D6670735C4170705C5372635C6170702E6300000000056170702E6300000000FFDC7800FFFFFFFF37463A5C4465736B746F705C576F726B5C323032342E30355C323032342E30352E31315C6D6670735C4170705C5372635C6F6C6564322E6300000000076F6C6564322E6300000000BECEA100FFFFFFFF31463A5C4465736B746F705C576F726B5C323032342E30355C323032342E30352E31315C6D6670735C496E635C6170702E6800000000056170702E6800000000F0A0A100FFFFFFFF37463A5C4465736B746F705C576F726B5C323032342E30355C323032342E30352E31315C6D6670735C4170705C5372635C6D6F746F722E6300000000076D6F746F722E6300000000BCA8E100FFFFFFFF37463A5C4465736B746F705C576F726B5C323032342E30355C323032342E30352E31315C6D6670735C4170705C496E635C6F6C6564322E6800000000076F6C6564322E68000000009CC1B600FFFFFFFF39463A5C4465736B746F705C576F726B5C323032342E30355C323032342E30352E31315C6D6670735C4170705C5372635C746D63353136302E630000000009746D63353136302E6300000000F7B88600FFFFFFFF37463A5C4465736B746F705C576F726B5C323032342E30355C323032342E30352E31315C6D6670735C4170705C5372635C6D794C69622E6300000000076D794C69622E6300000000D9ADC200FFFFFFFF39463A5C4465736B746F705C576F726B5C323032342E30355C323032342E30352E31315C6D6670735C4170705C496E635C746D63353136302E680000000009746D63353136302E6800000000A5C2D700FFFFFFFF45463A5C4465736B746F705C576F726B5C323032342E30355C323032342E30352E31315C6D6670735C4D444B2D41524D5C737461727475705F73746D33326631303378652E730000000015737461727475705F73746D33326631303378652E7300000000B3A6BE00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000074F9FFFF660000000000000012030000
@@ -1838,7 +1838,7 @@
Debug
2373
- 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
+ 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
898
@@ -3579,7 +3579,7 @@
Debug
2362
- 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020000002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020000002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
+ 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000004002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020000002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020000002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
898
@@ -3603,16 +3603,7 @@
0
100
- 2
-
- ../Src/stm32f1xx_it.c
- 12
- 362
- 402
- 1
-
- 0
-
+ 6
../Src/main.c
0
@@ -3624,18 +3615,72 @@
..\App\Src\app.c
- 12
- 1
- 20
+ 5
+ 31
+ 54
1
0
..\App\Src\oled2.c
- 9
- 662
- 910
+ 0
+ 747
+ 771
+ 1
+
+ 0
+
+
+ ../Inc/app.h
+ 18
+ 1
+ 46
+ 1
+
+ 0
+
+
+ ..\App\Src\motor.c
+ 32
+ 218
+ 228
+ 1
+
+ 0
+
+
+ ../App/Inc/oled2.h
+ 82
+ 1
+ 22
+ 1
+
+ 0
+
+
+ ..\App\Src\tmc5160.c
+ 68
+ 315
+ 343
+ 1
+
+ 0
+
+
+ ..\App\Src\myLib.c
+ 0
+ 194
+ 226
+ 1
+
+ 0
+
+
+ ../App/Inc/tmc5160.h
+ 0
+ 1
+ 36
1
0
@@ -3643,57 +3688,12 @@
startup_stm32f103xe.s
0
- 133
+ 131
148
1
0
-
- ../Inc/app.h
- 28
- 1
- 37
- 1
-
- 0
-
-
- ..\App\Src\myLib.c
- 39
- 1
- 10
- 1
-
- 0
-
-
- ..\App\Src\key.c
- 39
- 146
- 187
- 1
-
- 0
-
-
- ..\App\Src\motor.c
- 52
- 334
- 359
- 1
-
- 0
-
-
- ../App/Inc/oled2.h
- 25
- 1
- 11
- 1
-
- 0
-
diff --git a/MDK-ARM/mfps.uvoptx b/MDK-ARM/mfps.uvoptx
index f91f33d..adbcb62 100644
--- a/MDK-ARM/mfps.uvoptx
+++ b/MDK-ARM/mfps.uvoptx
@@ -173,97 +173,97 @@
4
1
- tmc5160_sw
+ key_msg
5
1
- key_msg
+ ocin1,0x0A
6
1
- ocin1,0x0A
+ ocin2,0x0A
7
1
- ocin2,0x0A
+ key_cnt
8
1
- key_cnt
+ X_ads1220
9
1
- SG_RESULT_16
+ X_ads1220_prc
10
1
- X_ads1220
+ Runmotor_step
11
1
- X_ads1220_prc
+ TEMP_M1820
12
1
- Runmotor_step
+ Run_mm
13
1
- TEMP_M1820
+ rx_data2
14
1
- Run_mm
+ it_5000ms_flag
15
1
- step_temp
+ Motor_Run
16
1
- rx_data2
+ Run_Mode
17
1
- it_5000ms_flag
+ Run_mm
18
1
- oled_s
+ magnet_tx
19
1
- Motor_Run
+ oled_p
20
1
- Run_Mode
+ motor_direc
21
1
- Run_mm
+ Run_Step,0x0A
22
1
- magnet_tx
+ RAMP_STAT_32
diff --git a/MDK-ARM/mfps/ads1220.crf b/MDK-ARM/mfps/ads1220.crf
index 4d5f4a3..fe69dc5 100644
Binary files a/MDK-ARM/mfps/ads1220.crf and b/MDK-ARM/mfps/ads1220.crf differ
diff --git a/MDK-ARM/mfps/ads1220.o b/MDK-ARM/mfps/ads1220.o
index 8d2de88..8e12596 100644
Binary files a/MDK-ARM/mfps/ads1220.o and b/MDK-ARM/mfps/ads1220.o differ
diff --git a/MDK-ARM/mfps/app.crf b/MDK-ARM/mfps/app.crf
index 27d016c..aa5a770 100644
Binary files a/MDK-ARM/mfps/app.crf and b/MDK-ARM/mfps/app.crf differ
diff --git a/MDK-ARM/mfps/app.o b/MDK-ARM/mfps/app.o
index a3155aa..d7a8032 100644
Binary files a/MDK-ARM/mfps/app.o and b/MDK-ARM/mfps/app.o differ
diff --git a/MDK-ARM/mfps/delay.crf b/MDK-ARM/mfps/delay.crf
index 08f0e64..e194407 100644
Binary files a/MDK-ARM/mfps/delay.crf and b/MDK-ARM/mfps/delay.crf differ
diff --git a/MDK-ARM/mfps/delay.o b/MDK-ARM/mfps/delay.o
index 06ed52b..d8d968d 100644
Binary files a/MDK-ARM/mfps/delay.o and b/MDK-ARM/mfps/delay.o differ
diff --git a/MDK-ARM/mfps/dma.o b/MDK-ARM/mfps/dma.o
index cfe5f75..72458b3 100644
Binary files a/MDK-ARM/mfps/dma.o and b/MDK-ARM/mfps/dma.o differ
diff --git a/MDK-ARM/mfps/gpio.o b/MDK-ARM/mfps/gpio.o
index 5d121a6..7677a27 100644
Binary files a/MDK-ARM/mfps/gpio.o and b/MDK-ARM/mfps/gpio.o differ
diff --git a/MDK-ARM/mfps/i2c.o b/MDK-ARM/mfps/i2c.o
index a99566b..c30e5f0 100644
Binary files a/MDK-ARM/mfps/i2c.o and b/MDK-ARM/mfps/i2c.o differ
diff --git a/MDK-ARM/mfps/key.crf b/MDK-ARM/mfps/key.crf
index 5a23a63..69ca6af 100644
Binary files a/MDK-ARM/mfps/key.crf and b/MDK-ARM/mfps/key.crf differ
diff --git a/MDK-ARM/mfps/key.o b/MDK-ARM/mfps/key.o
index b5a92fa..e445fc8 100644
Binary files a/MDK-ARM/mfps/key.o and b/MDK-ARM/mfps/key.o differ
diff --git a/MDK-ARM/mfps/m1820.crf b/MDK-ARM/mfps/m1820.crf
index d736655..ad1b9e8 100644
Binary files a/MDK-ARM/mfps/m1820.crf and b/MDK-ARM/mfps/m1820.crf differ
diff --git a/MDK-ARM/mfps/m1820.o b/MDK-ARM/mfps/m1820.o
index 4e890dd..3756206 100644
Binary files a/MDK-ARM/mfps/m1820.o and b/MDK-ARM/mfps/m1820.o differ
diff --git a/MDK-ARM/mfps/main.crf b/MDK-ARM/mfps/main.crf
index ce9cbc1..4b8db68 100644
Binary files a/MDK-ARM/mfps/main.crf and b/MDK-ARM/mfps/main.crf differ
diff --git a/MDK-ARM/mfps/main.o b/MDK-ARM/mfps/main.o
index 66c68ff..2b78710 100644
Binary files a/MDK-ARM/mfps/main.o and b/MDK-ARM/mfps/main.o differ
diff --git a/MDK-ARM/mfps/mfps.axf b/MDK-ARM/mfps/mfps.axf
index c376ba3..83dbfb4 100644
Binary files a/MDK-ARM/mfps/mfps.axf and b/MDK-ARM/mfps/mfps.axf differ
diff --git a/MDK-ARM/mfps/mfps.build_log.htm b/MDK-ARM/mfps/mfps.build_log.htm
index b2e4f85..3af05d2 100644
--- a/MDK-ARM/mfps/mfps.build_log.htm
+++ b/MDK-ARM/mfps/mfps.build_log.htm
@@ -21,17 +21,59 @@ Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.2.0.0
Dialog DLL: TCM.DLL V1.56.4.0
Project:
-F:\Desktop\Work\2024.05\2024.05.09\mfps\MDK-ARM\mfps.uvprojx
+F:\Desktop\Work\2024.05\2024.05.11\mfps\MDK-ARM\mfps.uvprojx
Project File Date: 05/09/2024
Output:
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'E:\Softwares\Keil_v5\ARM\ARMCC\Bin'
-Build target 'mfps'
+Rebuild target 'mfps'
+assembling startup_stm32f103xe.s...
+compiling i2c.c...
+compiling stm32f1xx_hal_gpio_ex.c...
+compiling tim.c...
+compiling gpio.c...
+compiling stm32f1xx_hal.c...
+compiling dma.c...
+compiling stm32f1xx_hal_rcc_ex.c...
+compiling spi.c...
+compiling stm32f1xx_hal_msp.c...
+compiling stm32f1xx_hal_gpio.c...
+compiling usart.c...
+compiling main.c...
+compiling stm32f1xx_it.c...
+compiling stm32f1xx_hal_rcc.c...
+compiling stm32f1xx_hal_i2c.c...
+compiling stm32f1xx_hal_cortex.c...
+compiling stm32f1xx_hal_exti.c...
+compiling system_stm32f1xx.c...
+compiling stm32f1xx_hal_flash_ex.c...
+compiling stm32f1xx_hal_pwr.c...
+compiling stm32f1xx_hal_dma.c...
+compiling stm32f1xx_hal_flash.c...
+compiling delay.c...
compiling app.c...
+compiling key.c...
+compiling stm32f1xx_hal_tim_ex.c...
+compiling serial_port.c...
+compiling stm32f1xx_hal_spi.c...
+compiling stm32f1xx_hal_uart.c...
+compiling stm32f1xx_hal_tim.c...
+compiling myLib.c...
+compiling misc.c...
+compiling m1820.c...
+compiling tmc5160.c...
+compiling oled.c...
+compiling ads1220.c...
+compiling motor.c...
+compiling Uart1.c...
+..\App\Src\Uart1.c(526): warning: #111-D: statement is unreachable
+ if(VERFIY_TYPE) //异或校验 + 末尾字节
+..\App\Src\Uart1.c: 1 warning, 0 errors
+compiling oled2.c...
linking...
-Program Size: Code=29474 RO-data=2626 RW-data=356 ZI-data=2356
+Program Size: Code=31046 RO-data=3010 RW-data=368 ZI-data=2360
FromELF: creating hex file...
-"mfps\mfps.axf" - 0 Error(s), 0 Warning(s).
+"mfps\mfps.axf" - 0 Error(s), 1 Warning(s).
Software Packages used:
@@ -54,7 +96,7 @@ Package Vendor: Keil
Collection of Component Files used:
* Component: ARM::CMSIS:CORE@5.6.0
-Build Time Elapsed: 00:00:01
+Build Time Elapsed: 00:00:05