From b3aac80331fc139592d97fe197b05166d8ab03f2 Mon Sep 17 00:00:00 2001 From: zwsd Date: Mon, 25 Jul 2022 17:32:08 +0800 Subject: [PATCH] bugfixed --- main/ble_parse_data.c | 1 + main/main.c | 15 ++++++--------- main/motor_drive.c | 14 ++++++++------ 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/main/ble_parse_data.c b/main/ble_parse_data.c index 05edb61..dcaa95b 100644 --- a/main/ble_parse_data.c +++ b/main/ble_parse_data.c @@ -34,6 +34,7 @@ void bluetooth_gatts_try_process_data() { if (strcmp(parse_bluetooth_processer->order, set_position) == 0) { parse_bluetooth_processer->auto_report_flag = true; ESP_LOGI(BLE_PARSE_DATA_TAG, set_position); + motor_drive_set_packages_ctr(352.68); // motor_cmd_set_position(parse_bluetooth_processer->speedLevel, parse_bluetooth_processer->position, parse_bluetooth_processer->direction); receipt_json_set_position(); } diff --git a/main/main.c b/main/main.c index 98b845a..aff126f 100644 --- a/main/main.c +++ b/main/main.c @@ -55,7 +55,7 @@ void app_main(void) { motor_drive_uart_init(); // ble_uart_init(UART_NUM_1, 1, 2); // char* test_str = "This is a test string.\n"; - double encoder = 0.0; + // double encoder = 0.0; while (true) { bluetooth_gatts_try_process_data(); @@ -69,14 +69,11 @@ void app_main(void) { // s_bluetooth_processer.motor_drive_turn_flag = false; // } - if (s_bluetooth_processer.auto_report_flag) { - encoder = motor_drive_read_encoder(); - ESP_LOGI(MAIN_TAG, "encoder :%.2lf",encoder); - s_bluetooth_processer.auto_report_flag = false; - } - - // motor_drive_set_packages_ctr(35.68); - // motor_drive_set_packages_data_max64bit(0x34,4,0X76482534); + // if (s_bluetooth_processer.auto_report_flag) { + // encoder = motor_drive_read_encoder(); + // ESP_LOGI(MAIN_TAG, "encoder :%.2lf",encoder); + // s_bluetooth_processer.auto_report_flag = false; + // } // uart_write_bytes(UART_NUM_1, (const char*)test_str, strlen(test_str)); // ets_delay_us(1000000); diff --git a/main/motor_drive.c b/main/motor_drive.c index 3f90d38..5ebd62a 100644 --- a/main/motor_drive.c +++ b/main/motor_drive.c @@ -90,18 +90,20 @@ void motor_drive_set_packages_ctr(double position) { uint8_t strbuffer[20] = {0}; position_int = position * 100; + ESP_LOGI(MOTOR_DRIVE, "%d", position_int); if (position_int != 0) { - while ((position_int / 256) > 0) { - position_remainder = position_int % 256; + while ((position_int / 0XFF) > 0) { + position_remainder = position_int & 0XFF; + ESP_LOGI(MOTOR_DRIVE, "position_remainder :%d", position_remainder); buffer[position_buffer_size] = position_remainder; position_buffer_size += 1; - position_int = position_int / 256; + position_int = position_int >> 8; checksum += position_remainder; } buffer[position_buffer_size] = position_int; checksum += position_int; - checksum %= 256; + checksum = checksum & 0XFF; buffer[9] = checksum; } for (int i = 0; i < 10; i++) { @@ -137,7 +139,7 @@ size_t motor_drive_buffer_cmd_generate(uint8_t *buffer, uint8_t cmd, uint8_t buf buffer[1] = cmd; buffer[2] = 0X1; buffer[3] = buffer_data_size; - buffer[4] = (0X3E + cmd + 0X1 + buffer_data_size) % 255; + buffer[4] = (0X3E + cmd + 0X1 + buffer_data_size) % 0XFF; if (buffer_data_size > 0) { hex_to_str_size = buffer_data_size + 1; @@ -147,7 +149,7 @@ size_t motor_drive_buffer_cmd_generate(uint8_t *buffer, uint8_t cmd, uint8_t buf buffer[5 + i] = buffer_data_uint8; checksum += buffer_data_uint8; } - buffer[5 + buffer_data_size] = (checksum % 255); + buffer[5 + buffer_data_size] = (checksum % 0XFF); } motor_drive_hex_to_str((char *)buffer, (5 + hex_to_str_size), (char *)strbuffer);