diff --git a/.gitignore b/.gitignore index 99ef46b..4084d4f 100644 --- a/.gitignore +++ b/.gitignore @@ -216,3 +216,8 @@ GD32F103C8T6/Bootloader/Output/Debug/Obj/Bootloader/spi.o GD32F103C8T6/Bootloader/Output/Debug/Obj/Bootloader/system.d GD32F103C8T6/Bootloader/Output/Debug/Obj/Bootloader/system.o GD32F103C8T6/GD32F10x.emSession +GD32F103C8T6/._GD32F10x.emProject +GD32F103C8T6/App/Output/Debug/Obj/App/v58-e8e109c7.o.tmp +WpfApp1/.vs/WpfApp1/FileContentIndex/294201ea-13b4-4ce6-87c7-fe11eac372a1.vsidx +GD32F103C8T6/GD32F10x.emSession +协议文档/~$通信协议说明.docx diff --git a/GD32F103C8T6/App/User/Api/api.h b/GD32F103C8T6/App/User/Api/api.h index 1ec3f3c..37d893a 100644 --- a/GD32F103C8T6/App/User/Api/api.h +++ b/GD32F103C8T6/App/User/Api/api.h @@ -22,7 +22,7 @@ #define API_FRAME_RESPONSE (0x01) /* 响应帧 */ #define API_FRAME_NOTIFICATION (0x02) /* 通知帧 */ -#define SOFTWARE_VERSION ("V1.20") +#define SOFTWARE_VERSION ("V1.21") #define HARDWARE_VERSION ("V1.01") extern uint8_t api_upgrade_mode; diff --git a/GD32F103C8T6/App/User/Peripheral/CAN/can_parsing.c b/GD32F103C8T6/App/User/Peripheral/CAN/can_parsing.c index 1d1d617..cc32072 100644 --- a/GD32F103C8T6/App/User/Peripheral/CAN/can_parsing.c +++ b/GD32F103C8T6/App/User/Peripheral/CAN/can_parsing.c @@ -49,30 +49,6 @@ void can_byd_02_parsing(uint32_t id, uint8_t *data, uint8_t *door_front, uint8_t } } -void can_byd_03_parsing(uint32_t id, uint8_t *data, uint8_t *door_front, uint8_t *door_back, uint8_t *turn_left, uint8_t *turn_right, uint8_t *reversing) -{ - switch (id) - { - case 0x18FDA589: - /* 前门 */ - *door_front = (data[0] >> 4 & 0x03) == 0x01 ? 0 : 1; - /* 中门 */ - *door_back = (data[0] >> 6 & 0x03) == 0x01 ? 0 : 1; - break; - - case 0x0CFE4199: - /* 左转向 */ - *turn_left = (data[0] >> 6 & 0x03) == 0x01 ? 0 : 1; - /* 右转向 */ - *turn_right = (data[1] & 0x03) == 0x01 ? 0 : 1; - break; - - case 0x18F00503: - /* 当前档位 */ - *reversing = data[3] == 0x7C ? 0 : 1; - break; - } -} void can_yutong_parsing(uint32_t id, uint8_t *data, uint8_t *door_front, uint8_t *door_back, uint8_t *turn_left, uint8_t *turn_right, uint8_t *reversing) { diff --git a/GD32F103C8T6/App/User/Peripheral/CAN/can_parsing.h b/GD32F103C8T6/App/User/Peripheral/CAN/can_parsing.h index 2489401..cd2ace6 100644 --- a/GD32F103C8T6/App/User/Peripheral/CAN/can_parsing.h +++ b/GD32F103C8T6/App/User/Peripheral/CAN/can_parsing.h @@ -7,8 +7,6 @@ void can_byd_01_parsing(uint32_t id, uint8_t *data, uint8_t *door_front, uint8_t void can_byd_02_parsing(uint32_t id, uint8_t *data, uint8_t *door_front, uint8_t *door_back, uint8_t *turn_left, uint8_t *turn_right, uint8_t *reversing); -void can_byd_03_parsing(uint32_t id, uint8_t *data, uint8_t *door_front, uint8_t *door_back, uint8_t *turn_left, uint8_t *turn_right, uint8_t *reversing); - void can_yutong_parsing(uint32_t id, uint8_t *data, uint8_t *door_front, uint8_t *door_back, uint8_t *turn_left, uint8_t *turn_right, uint8_t *reversing); void can_jinlong_parsing(uint32_t id, uint8_t *data, uint8_t *door_front, uint8_t *door_back, uint8_t *turn_left, uint8_t *turn_right, uint8_t *reversing); diff --git a/GD32F103C8T6/App/User/app.c b/GD32F103C8T6/App/User/app.c index d6e8990..142cf66 100644 --- a/GD32F103C8T6/App/User/app.c +++ b/GD32F103C8T6/App/User/app.c @@ -7,11 +7,14 @@ #define STROBE_LIGHT_ENABLE_SETTING_INDEX (0x02) #define VOLUME_LEVEL_SETTING_INDEX (0x03) -static uint64_t led_rx_timestamp = 0, led_tx_timestamp = 0; +static uint64_t can_rx_led_timestamp = 0; +static uint64_t diaodu_rx_led_timestamp = 0; +static uint64_t run_led_timestamp = 0; +static uint64_t diaodu_status_rx_timestamp = 0; static uint8_t door_front_status = 1, door_front_status_temporary = 1; static uint8_t door_back_status = 1, door_back_status_temporary = 1; -static uint8_t door_status = 1, door_status_temporary = 1; +static uint8_t door_status = 1, door_status_temporary = 2; static uint8_t turn_left_status = 1, turn_left_status_temporary = 1; static uint8_t turn_left_parsing_count = 0; /* 转向接收次数 */ static uint8_t turn_right_status = 1, turn_right_status_temporary = 1; @@ -49,13 +52,10 @@ static void strobe_light_reset(void); /* 频闪灯闪烁*/ static void strobe_light_toggle(uint8_t count); -#ifdef USE_LED -/* LED 指示灯分析任务 */ -static void led_parsing_task(uint8_t uuid); -#endif - /* 设置音量级别 */ static void set_volume_level(uint8_t level); +/* LED 指示灯分析任务 */ +static void led_parsing_task(uint8_t uuid); /* 音量级别控制按钮 分析任务 */ static void volume_io_control_parsing_task(uint8_t uuid); /* can 数据分析任务 */ @@ -144,8 +144,6 @@ void app_init(void) m62429_init(); - ir_init(); - /* 主动获取一次IO状态 */ door_front_status = door_front_status_temporary = gpio_input_bit_get(DOOR_FRONT_PERIPH, DOOR_FRONT_PIN); door_back_status = door_back_status_temporary = gpio_input_bit_get(DOOR_BACK_PERIPH, DOOR_BACK_PIN); @@ -163,19 +161,14 @@ void app_init(void) /* 创建 上位机数据检测任务 */ task_create((task_func)api_process, 0); - /* 创建 红外遥控器数据检测任务 */ - task_create((task_func)ir_process, 0); - /* 创建 调度数据检测任务 */ task_create((task_func)diaodu_process, 0); /* 创建 心跳发送任务 */ task_create((task_func)api_upload_heart_beat, 3000); -#ifdef USE_LED /* 创建 LED 指示灯分析任务 */ - task_create(led_parsing_task, 30); -#endif + task_create(led_parsing_task, 500); /* 创建 CAN数据分析任务 */ task_create(can_parsing_task, 0); @@ -214,51 +207,56 @@ static void strobe_light_toggle(uint8_t count) } } -#ifdef USE_LED static void led_parsing_task(uint8_t uuid) { - /* 超过500ms钟未发送数据,熄灭发送指示灯 */ - if (timestamp - led_rx_timestamp > 500) + /* 超过 2s 未检测到CAN数据变化,熄灭发送指示灯 */ + if (timestamp - can_rx_led_timestamp > 2000) { - gpio_bit_write(LED_RX_PERIPH, LED_RX_PIN, RESET); - led_rx_timestamp = timestamp; + gpio_bit_write(LED_CAN_PERIPH, LED_CAN_PIN, RESET); + can_rx_led_timestamp = timestamp; } - /* 超过500ms钟未接收到数据,熄灭接收指示灯 */ - if (timestamp - led_tx_timestamp > 500) + /* 超过 2s 未检测到CAN数据变化,熄灭发送指示灯 */ + if (timestamp - diaodu_rx_led_timestamp > 2000) { - gpio_bit_write(LED_TX_PERIPH, LED_TX_PIN, RESET); - led_tx_timestamp = timestamp; + gpio_bit_write(LED_DIAODU_PERIPH, LED_DIAODU_PIN, RESET); + diaodu_rx_led_timestamp = timestamp; + } + + /* 1.5s 闪烁一次 */ + if (timestamp - run_led_timestamp > 1000) + { + gpio_bit_toggle(LED_RUN_PERIPH, LED_RUN_PIN); + run_led_timestamp = timestamp; } } -#endif static void set_volume_level(uint8_t level) { switch (level) { case 0x00: - m62429_set_vol(0); - strobe_light_flashing_enable = 0x01; + m62429_set_vol(11); + strobe_light_flashing_enable = 0x00; break; case 0x01: - m62429_set_vol(8); - strobe_light_flashing_enable = 0x01; - break; - case 0x02: m62429_set_vol(9); strobe_light_flashing_enable = 0x01; break; + case 0x02: + m62429_set_vol(8); + strobe_light_flashing_enable = 0x01; + break; case 0x03: - m62429_set_vol(11); - strobe_light_flashing_enable = 0x00; + m62429_set_vol(0); + strobe_light_flashing_enable = 0x01; break; default: return; } - if (level == 3) + if (level == 0) gpio_bit_write(AMP_CTRL_PERIPH, AMP_CTRL_PIN, RESET); /* 停止功放 */ else gpio_bit_write(AMP_CTRL_PERIPH, AMP_CTRL_PIN, SET); /* 开启功放 */ @@ -325,6 +323,8 @@ static void can_parsing_task(uint8_t uuid) /* CAN 解析 */ if (receive_message.rx_ff == CAN_FF_EXTENDED) { + uint8_t can_channge_status = 0; + switch (can_type) { case 0x00: @@ -334,33 +334,51 @@ static void can_parsing_task(uint8_t uuid) can_byd_02_parsing(receive_message.rx_efid, receive_message.rx_data, &door_front_status_temporary, &door_back_status_temporary, &turn_left_status_temporary, &turn_right_status_temporary, &reversing_status_temporary); break; case 0x02: - can_byd_03_parsing(receive_message.rx_efid, receive_message.rx_data, &door_front_status_temporary, &door_back_status_temporary, &turn_left_status_temporary, &turn_right_status_temporary, &reversing_status_temporary); - break; - case 0x03: can_yutong_parsing(receive_message.rx_efid, receive_message.rx_data, &door_front_status_temporary, &door_back_status_temporary, &turn_left_status_temporary, &turn_right_status_temporary, &reversing_status_temporary); break; - case 0x04: + case 0x03: can_jinlong_parsing(receive_message.rx_efid, receive_message.rx_data, &door_front_status_temporary, &door_back_status_temporary, &turn_left_status_temporary, &turn_right_status_temporary, &reversing_status_temporary); break; - case 0x05: + case 0x04: can_ankai_parsing(receive_message.rx_efid, receive_message.rx_data, &door_front_status_temporary, &door_back_status_temporary, &turn_left_status_temporary, &turn_right_status_temporary, &reversing_status_temporary); break; } if (door_front_status_temporary != door_front_status) + { + can_channge_status = 1; door_front_upload_status = 0x01; + } if (door_back_status_temporary != door_back_status) + { + can_channge_status = 1; door_back_upload_status = 0x01; + } if (turn_left_status_temporary != turn_left_status) + { + can_channge_status = 1; turn_left_upload_status = 0x01; + } if (turn_right_status_temporary != turn_right_status) + { + can_channge_status = 1; turn_right_upload_status = 0x01; + } if (reversing_status_temporary != reversing_status) + { + can_channge_status = 1; reversing_upload_status = 0x01; + } + + if(can_channge_status == 1) + { + gpio_bit_write(LED_CAN_PERIPH, LED_CAN_PIN, SET); + can_rx_led_timestamp = timestamp; + } } } } @@ -450,9 +468,9 @@ static void vehicle_status_parsing_task(uint8_t uuid) { reversing_status = reversing_status_temporary; - status_type = 3; + status = reversing_status == 0 ? 1 : 0; - status = reversing_status; + status_type = 3; /* 优先级最高, 如果状态为触发, 关闭语音 */ if (reversing_status == 0) @@ -468,62 +486,77 @@ static void vehicle_status_parsing_task(uint8_t uuid) /* 进出站状态判断 */ if (diaodu_status_temporry != 0 && diaodu_status != diaodu_status_temporry) { - diaodu_status = diaodu_status_temporry; - - /* 到站 */ - if (diaodu_status == 1) + /* 当前为出站状态, 如果之前是进站状态,则停止播报, 否则不处理 */ + if(diaodu_status_temporry == 2) { + if(diaodu_status == 1) + { + status = 0x00; + status_type = 5; + } + } + /* 到站 */ + else if (diaodu_status_temporry == 1) + { + status = 0x01; status_type = 4; - status = 0x00; - /* 优先级最高,关闭语音 */ v58_stop(); } - ///* 出站 */ - // else if(diaodu_status == 2) - // status_type = 5; - + + diaodu_status = diaodu_status_temporry; + goto EXECUTE; } + /* 如果一直处于进站状态, 超过 2 分钟, 则取消该状态, 并停止语音 */ + if (diaodu_status == 1) + { + if(diaodu_status_rx_timestamp != 0 && + timestamp - diaodu_status_rx_timestamp >= 120000) + { + /* 修改为出站状态 */ + diaodu_arrival_or_departure_parsing(0x02); + + goto EXECUTE; + } + } + if (door_front_status_temporary != door_front_status) door_front_status = door_front_status_temporary; if (door_back_status_temporary != door_back_status) door_back_status = door_back_status_temporary; + //door_status_temporary = door_front_status_temporary + door_back_status_temporary; door_status_temporary = door_front_status_temporary | door_back_status_temporary; if (door_status != door_status_temporary) { door_status = door_status_temporary; - status_type = 0; + status = door_status == 0 ? 1 : 0; - status = door_status; + status_type = 0; } - /* 进站状态, 不继续执行 */ - if (diaodu_status == 1) + /* 当前后门开启后 */ + if(door_status == 0) { - /* 当前后门开启后 */ - if (door_status == 0) + /* 进站状态, 不继续执行 */ + if (diaodu_status == 1) { - /* 重置进站状态 */ - diaodu_status = diaodu_status_temporry = 0; /* 关闭语音 */ v58_stop(); - goto EXECUTE; + /* 重置进站状态 */ + diaodu_status_temporry = diaodu_status = 0; } - return; - } - - /* 当前后门开启后, 不处理其他数据 */ - if (door_status == 0) + /* 不处理其他数据 */ goto EXECUTE; + } /* 左转弯状态判断 */ if (turn_left_status != turn_left_status_temporary) @@ -539,15 +572,21 @@ static void vehicle_status_parsing_task(uint8_t uuid) turn_left_parsing_count = 0; - turn_left_status = turn_left_status_temporary; - - status_type = 1; - - status = turn_left_status; - /* 屏蔽此时左转弯数据 */ - if (turn_left_status == 1 && turn_right_status == 0) + if (turn_left_status_temporary == 0 && turn_right_status == 0) status_type = 0xFF; + else + { + turn_left_status = turn_left_status_temporary; + + status = turn_left_status == 0 ? 1 : 0; + + status_type = 1; + + //printf("left status = %d \r\n", status); + + goto EXECUTE; + } } TURN_RIGHT_STATUS_TAG2: @@ -565,15 +604,21 @@ TURN_RIGHT_STATUS_TAG2: turn_right_parsing_count = 0; - turn_right_status = turn_right_status_temporary; - - status_type = 2; - - status = turn_right_status; - /* 屏蔽此时右转弯数据 */ - if (turn_right_status == 1 && turn_left_status == 0) + if (turn_right_status_temporary == 0 && turn_left_status == 0) status_type = 0xFF; + else + { + turn_right_status = turn_right_status_temporary; + + status = turn_right_status == 0 ? 1 : 0; + + status_type = 2; + + //printf("right status = %d \r\n", status); + + goto EXECUTE; + } } #if 0 @@ -623,7 +668,7 @@ EXECUTE: if (status_type == 0xFF || emergency_flashers_status_temporary == 0) return; - if (status == 0x01) + if (status == 0x00) { /* 挂起 频闪灯控制任务 */ task_suspend(strobe_light_task_uuid); @@ -739,27 +784,30 @@ void diaodu_arrival_or_departure_parsing(uint8_t status) { diaodu_status_temporry = status; diaodu_upload_status = 0x01; + + diaodu_status_rx_timestamp = diaodu_rx_led_timestamp = timestamp; + gpio_bit_write(LED_DIAODU_PERIPH, LED_DIAODU_PIN, SET); } -void ir_key_triggered(uint8_t key) -{ - uint8_t level = 0x00; +//void ir_key_triggered(uint8_t key) +//{ +// uint8_t level = 0x00; - if (key == 0x98) /* + */ - level = volume_level - 1; - else if (key == 0x68) /* - */ - level = volume_level + 1; - else if(key == 0xA2) - level = 3; - else - return; +// if (key == 0x98) /* + */ +// level = volume_level - 1; +// else if (key == 0x68) /* - */ +// level = volume_level + 1; +// else if(key == 0xA2) +// level = 3; +// else +// return; - strobe_light_toggle(2); +// strobe_light_toggle(2); - set_volume_level(level); +// set_volume_level(level); - api_upload_data_forwarding(0x06, level); -} +// api_upload_data_forwarding(0x06, level); +//} void api_notify_data_upload(uint8_t *buffer, uint16_t length) { @@ -836,26 +884,32 @@ void api_notify_data_forwarding(uint8_t type, uint8_t value) switch (type) { case 0x00: + door_front_upload_status = 0x01; door_front_status_temporary = value; break; case 0x01: + door_back_upload_status = 0x01; door_back_status_temporary = value; break; case 0x02: + turn_left_upload_status = 0x01; turn_left_status_temporary = value; break; case 0x03: + turn_right_upload_status = 0x01; turn_right_status_temporary = value; break; case 0x04: + reversing_upload_status = 0x01; reversing_status_temporary = value; break; case 0x05: + diaodu_upload_status = 0x01; diaodu_status_temporry = value; break; diff --git a/GD32F103C8T6/App/main.c b/GD32F103C8T6/App/main.c index ea9c4c1..566c77c 100644 --- a/GD32F103C8T6/App/main.c +++ b/GD32F103C8T6/App/main.c @@ -35,14 +35,6 @@ static void bsp_initialization(void) /* RS485使能控制脚 初始化, 默认接收 */ gpio_config(RS485_CL_PERIPH, RS485_CL_PIN, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, RESET); -#ifdef USE_LED - /* 接收指示灯 控制引脚初始化 */ - gpio_config(LED_RX_PERIPH, LED_RX_PIN, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, RESET); - - /* 发送指示灯 控制引脚 初始化 */ - gpio_config(LED_TX_PERIPH, LED_TX_PIN, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, RESET); -#endif - /* 频闪灯 控制引脚 初始化 */ gpio_config(LED_STROBE_PERIPH, LED_STROBE_PIN, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, RESET); @@ -77,4 +69,13 @@ static void bsp_initialization(void) gpio_config(V58_STATUS_PERIPH, V58_STATUS_PIN, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, nullptr); iic_config(M62429_SDA_PERIPH, M62429_SDA_PIN, M62429_SCL_PERIPH, M62429_SCL_PIN); + + /* CAN指示灯 控制引脚 初始化 */ + gpio_config(LED_CAN_PERIPH, LED_CAN_PIN, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, RESET); + + /* 485指示灯 控制引脚 初始化 */ + gpio_config(LED_DIAODU_PERIPH, LED_DIAODU_PIN, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, RESET); + + /* 运行指示灯 控制引脚 初始化 */ + gpio_config(LED_RUN_PERIPH, LED_RUN_PIN, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, RESET); } \ No newline at end of file diff --git a/GD32F103C8T6/App/main.h b/GD32F103C8T6/App/main.h index 3faeb25..605b50b 100644 --- a/GD32F103C8T6/App/main.h +++ b/GD32F103C8T6/App/main.h @@ -5,13 +5,10 @@ #define __weak __WEAK /* Flash容量 (单位KB) */ -//#define FMC_CAPACITY_SIZE_64K -#define FMC_CAPACITY_SIZE_128K +#define FMC_CAPACITY_SIZE_64K +//#define FMC_CAPACITY_SIZE_128K //#define FMC_CAPACITY_SIZE_512K -/* 是否适用LED状态灯 */ -//#define USE_LED - #include "gd32f10x_libopt.h" #include @@ -34,7 +31,6 @@ #include "api.h" #include "app.h" -#include "ir.h" #include "diaodu.h" #include "setting.h" #include "m62429.h" @@ -50,16 +46,6 @@ #define RS485_CL_PERIPH GPIOB #define RS485_CL_PIN GPIO_PIN_1 -#ifdef USE_LED -/* 接收指示灯 控制引脚 */ -#define LED_RX_PERIPH GPIOB -#define LED_RX_PIN GPIO_PIN_10 - -/* 发送指示灯 控制引脚 */ -#define LED_TX_PERIPH GPIOB -#define LED_TX_PIN GPIO_PIN_11 -#endif - /* 音量 Level 4 控制引脚 */ #define VOLUME_4_PERIPH GPIOB #define VOLUME_4_PIN GPIO_PIN_12 @@ -100,10 +86,6 @@ #define REVERSING_PERIPH GPIOB #define REVERSING_PIN GPIO_PIN_6 -/* IR 检测引脚 */ -#define IR_IN_PERIPH GPIOA -#define IR_IN_PIN GPIO_PIN_6 - /* 功放控制脚,默认为低,高电平打开 */ #define AMP_CTRL_PERIPH GPIOB #define AMP_CTRL_PIN GPIO_PIN_5 @@ -122,4 +104,13 @@ #define M62429_SDA_PERIPH GPIOB #define M62429_SDA_PIN GPIO_PIN_11 +#define LED_CAN_PERIPH GPIOA +#define LED_CAN_PIN GPIO_PIN_5 + +#define LED_DIAODU_PERIPH GPIOB +#define LED_DIAODU_PIN GPIO_PIN_0 + +#define LED_RUN_PERIPH GPIOB +#define LED_RUN_PIN GPIO_PIN_7 + #endif \ No newline at end of file diff --git a/GD32F103C8T6/Bootloader/main.h b/GD32F103C8T6/Bootloader/main.h index f59ed53..e43df96 100644 --- a/GD32F103C8T6/Bootloader/main.h +++ b/GD32F103C8T6/Bootloader/main.h @@ -5,8 +5,8 @@ #define __weak __WEAK /* Flash容量 (单位KB) */ -//#define FMC_CAPACITY_SIZE_64K -#define FMC_CAPACITY_SIZE_128K +#define FMC_CAPACITY_SIZE_64K +//#define FMC_CAPACITY_SIZE_128K #include "gd32f10x_libopt.h" diff --git a/GD32F103C8T6/GD32F10x.emProject b/GD32F103C8T6/GD32F10x.emProject index f825f7b..7045a47 100644 --- a/GD32F103C8T6/GD32F10x.emProject +++ b/GD32F103C8T6/GD32F10x.emProject @@ -30,21 +30,21 @@ arm_rtl_variant="SEGGER" arm_simulator_memory_simulation_parameter="ROM;0x08000000;0x00020000;RAM;0x20000000;0x00005000" arm_target_debug_interface_type="ADIv5" - arm_target_device_name="GD32F103CB" + arm_target_device_name="CS32F103C8" arm_target_interface_type="SWD" c_preprocessor_definitions="ARM_MATH_CM3;GD32F10X_MD;USE_STDPERIPH_DRIVER;__GD32F103_SUBFAMILY;__GD32F10X_FAMILY;__NO_FPU_ENABLE" - c_user_include_directories="$(ProjectDir);$(ProjectDir)/CMSIS_5/CMSIS/Core/Include;$(ProjectDir)/User;$(ProjectDir)/User/Api;$(ProjectDir)/User/Libs/Include;$(ProjectDir)/User/Peripheral/AK517;$(ProjectDir)/User/Peripheral/CAN;$(ProjectDir)/User/Peripheral/DiaoDu;$(ProjectDir)/User/Peripheral/IR;$(ProjectDir)/User/Peripheral/M62429;$(ProjectDir)/User/Peripheral/QGEL50X;$(ProjectDir)/User/Peripheral/V58;$(ProjectDir)/../../../../arm/GD32F10x/Driver/Include;$(ProjectDir)/../../../../arm/GD32F10x/System/Include;$(ProjectDir)/../../../../arm/GD32F10x/Utils/Byte" + c_user_include_directories="$(ProjectDir);$(ProjectDir)/CMSIS_5/CMSIS/Core/Include;$(ProjectDir)/User;$(ProjectDir)/User/Api;$(ProjectDir)/User/Libs/Include;$(ProjectDir)/User/Peripheral/AK517;$(ProjectDir)/User/Peripheral/CAN;$(ProjectDir)/User/Peripheral/DiaoDu;$(ProjectDir)/User/Peripheral/M62429;$(ProjectDir)/User/Peripheral/QGEL50X;$(ProjectDir)/User/Peripheral/V58;$(ProjectDir)/../../../../arm/GD32F10x/Driver/Include;$(ProjectDir)/../../../../arm/GD32F10x/System/Include;$(ProjectDir)/../../../../arm/GD32F10x/Utils/Byte" debug_register_definition_file="$(ProjectDir)/GD32F10x_MD_Registers.xml" debug_stack_pointer_start="__stack_end__" debug_start_from_entry_point_symbol="Yes" debug_target_connection="J-Link" gcc_entry_point="Reset_Handler" link_linker_script_file="$(ProjectDir)/GD32F10x_Flash.icf" - linker_memory_map_file="$(ProjectDir)/GD32F103CB_MemoryMap.xml" + linker_memory_map_file="$(ProjectDir)/GD32F103C8_MemoryMap.xml" linker_output_format="bin" linker_printf_fp_enabled="Float" linker_section_placements_segments="FLASH1 RX 0x08000000 0x00020000;RAM1 RWX 0x20000000 0x00005000;" - macros="DeviceHeaderFile=$(PackagesDir)/GD32F10x/Device/Include/gd32f10x.h;DeviceSystemFile=$(PackagesDir)/GD32F10x/Device/Source/system_gd32f10x.c;DeviceVectorsFile=$(PackagesDir)/GD32F10x/Source/gd32f10x_md_Vectors.s;DeviceFamily=GD32F10x;DeviceSubFamily=GD32F103;Target=GD32F103CB" + macros="DeviceHeaderFile=$(PackagesDir)/GD32F10x/Device/Include/gd32f10x.h;DeviceSystemFile=$(PackagesDir)/GD32F10x/Device/Source/system_gd32f10x.c;DeviceVectorsFile=$(PackagesDir)/GD32F10x/Source/gd32f10x_md_Vectors.s;DeviceFamily=GD32F10x;DeviceSubFamily=GD32F103;Target=GD32F103C8" project_directory="App" project_type="Executable" target_reset_script="Reset();" @@ -165,10 +165,6 @@ - - - - @@ -202,7 +198,7 @@ arm_rtl_variant="SEGGER" arm_simulator_memory_simulation_parameter="ROM;0x08000000;0x00020000;RAM;0x20000000;0x00005000" arm_target_debug_interface_type="ADIv5" - arm_target_device_name="GD32F103CB" + arm_target_device_name="GD32F103C8" arm_target_interface_type="SWD" c_preprocessor_definitions="ARM_MATH_CM3;GD32F10X_MD;USE_STDPERIPH_DRIVER;__GD32F103_SUBFAMILY;__GD32F10X_FAMILY;__NO_FPU_ENABLE" c_user_include_directories="$(ProjectDir);$(ProjectDir)/CMSIS_5/CMSIS/Core/Include;$(ProjectDir)/User;$(ProjectDir)/../../../../arm/GD32F10x/Driver/Include;$(ProjectDir)/../../../../arm/GD32F10x/System/Include;$(ProjectDir)/../../../../arm/GD32F10x/Utils/Byte" @@ -212,10 +208,10 @@ debug_target_connection="J-Link" gcc_entry_point="Reset_Handler" link_linker_script_file="$(ProjectDir)/GD32F10x_Flash.icf" - linker_memory_map_file="$(ProjectDir)/GD32F103CB_MemoryMap.xml" + linker_memory_map_file="$(ProjectDir)/GD32F103C8_MemoryMap.xml" linker_output_format="hex" - linker_section_placements_segments="FLASH1 RX 0x08000000 0x00020000;RAM1 RWX 0x20000000 0x00005000;" - macros="DeviceHeaderFile=$(PackagesDir)/GD32F10x/Device/Include/gd32f10x.h;DeviceSystemFile=$(PackagesDir)/GD32F10x/Device/Source/system_gd32f10x.c;DeviceVectorsFile=$(PackagesDir)/GD32F10x/Source/gd32f10x_md_Vectors.s;DeviceFamily=GD32F10x;DeviceSubFamily=GD32F103;Target=GD32F103CB" + linker_section_placements_segments="FLASH1 RX 0x08000000 0x00010000;RAM1 RWX 0x20000000 0x00005000;" + macros="DeviceHeaderFile=$(PackagesDir)/GD32F10x/Device/Include/gd32f10x.h;DeviceSystemFile=$(PackagesDir)/GD32F10x/Device/Source/system_gd32f10x.c;DeviceVectorsFile=$(PackagesDir)/GD32F10x/Source/gd32f10x_md_Vectors.s;DeviceFamily=GD32F10x;DeviceSubFamily=GD32F103;Target=GD32F103C8" project_directory="Bootloader" project_type="Executable" target_reset_script="Reset();" diff --git a/GD32F103C8T6/GD32F10x.emSession b/GD32F103C8T6/GD32F10x.emSession index 5f04fae..b8dd771 100644 --- a/GD32F103C8T6/GD32F10x.emSession +++ b/GD32F103C8T6/GD32F10x.emSession @@ -2,6 +2,7 @@ + @@ -37,7 +38,6 @@ - @@ -89,27 +89,26 @@ - - - - - - + + + + + - + - + - - - - + + + + - + diff --git a/WpfApp1/WpfApp1/MainWindow.xaml b/WpfApp1/WpfApp1/MainWindow.xaml index afa147c..e3ad697 100644 --- a/WpfApp1/WpfApp1/MainWindow.xaml +++ b/WpfApp1/WpfApp1/MainWindow.xaml @@ -77,7 +77,6 @@ - diff --git a/协议文档/通信协议说明.docx b/协议文档/通信协议说明.docx index 532cc3c..dc00acb 100644 Binary files a/协议文档/通信协议说明.docx and b/协议文档/通信协议说明.docx differ