diff --git a/app/by_frame.c b/app/by_frame.c index 4df88b4..70baa6f 100644 --- a/app/by_frame.c +++ b/app/by_frame.c @@ -88,6 +88,7 @@ void by_frame_parse(uint8_t data_num, uint32_t *data_array) if (!cnt_crc) { if (crc_cal == crc16_check(data_array_temp, 2 + data_num * sizeof(uint32_t))) { memcpy(data_array, data_array_temp + 2, data_num * sizeof(uint32_t)); + fifo_clear(&frame_fifo); // lwrb_reset(&lwrb_struct); // 处理完直接清空缓冲区,避免堆积产生处理阻塞 memset(data_array_temp, 0, sizeof(data_array_temp)); // printf("parsed done!\r\n"); diff --git a/app/jj_blueteeth.c b/app/jj_blueteeth.c index 6b6b44d..0e5f124 100644 --- a/app/jj_blueteeth.c +++ b/app/jj_blueteeth.c @@ -6,7 +6,7 @@ uint8 bt_buffer; // 接收字符存入 uint32_t bt_run_flag = 0; uint8_t bt_fly_flag = 0; uint32_t bt_run = 0; -uint32_t bt_fly = 0; +uint32_t bt_fly = 500; enum bt_order { Fly_ctrl = 0x01, // 起飞转换 Fly_up = 0x02, // 起飞程度增加 diff --git a/app/jj_motion.c b/app/jj_motion.c index 9127b20..f752022 100644 --- a/app/jj_motion.c +++ b/app/jj_motion.c @@ -70,25 +70,26 @@ void sport_motion(void) if (cnt1 >= 10) { PID_Compute(&far_angle_pid); PID_Compute(&speed_pid); - // in_speed = -encoder_get_count(TIM5_ENCOEDER); // 速度输入,m/s - in_speed = sport_get_speed(); - printf("rate:%d\r\n", (int16_t)in_speed); + in_speed = -sport_get_speed(); + // printf("rate:%d\r\n", (int16_t)in_speed); PID_Compute(&near_pos_pid); cnt1 = 0; } if (bt_run_flag == 1) { - by_pwm_power_duty((int32_t)(500 + out_pos + out_gyro), - (int32_t)(500 - out_pos - out_gyro), - (int32_t)(500 + out_speed + out_gyro), - (int32_t)(500 + out_speed - out_gyro)); + // by_pwm_power_duty((int32_t)(500 + out_pos + out_gyro), + // (int32_t)(500 - out_pos - out_gyro), + // (int32_t)(500 + out_speed + out_gyro), + // (int32_t)(500 + out_speed - out_gyro)); + by_pwm_power_duty(500, 500, 500 + out_speed, 500 + out_speed); } else { by_pwm_power_duty(500, 500, 500, 500); } if (bt_fly_flag == 0) { - bt_fly = 0; + by_pwm_update_duty(0 + 500, 0 + 500); + } else { + by_pwm_update_duty(bt_fly + 500, bt_fly + 500); } - by_pwm_update_duty(bt_fly + 500, bt_fly + 500); } /** diff --git a/app/main.c b/app/main.c index b05338b..32baee1 100644 --- a/app/main.c +++ b/app/main.c @@ -63,18 +63,9 @@ int main(void) while (1) { Page_Run(); by_frame_parse(2, &test_data[0].u32); - // uart_write_byte(UART_8, 0x1F); by_buzzer_run(); jj_bt_run(); in_pos = test_data[1].f32; in_angle = test_data[0].f32; - ips200_show_float(40, 40, test_data[0].f32, 4, 1); - ips200_show_float(40, 60, test_data[1].f32, 4, 1); - ips200_show_float(40, 80, in_gyro, 4, 2); - ips200_show_float(40, 100, in_speed, 4, 4); - ips200_show_string(0, 120, "outang"); - ips200_show_float(80, 120, out_angle, 4, 1); - ips200_show_string(0, 140, "outgyr"); - ips200_show_float(80, 140, out_gyro, 4, 1); } } diff --git a/app/page/page.c b/app/page/page.c index 031005c..0cc6ab7 100644 --- a/app/page/page.c +++ b/app/page/page.c @@ -89,8 +89,8 @@ uint8_t Page_GetStatus(void) */ void Page_Run(void) { - uint8_t temp_status = by_get_rb_status(); // 轮询旋钮状态 - if(temp_status){ + uint8_t temp_status = by_get_rb_status(); // 轮询旋钮状态 + if (temp_status) { pagelist[now_page].EventCallback(temp_status); } @@ -124,12 +124,12 @@ void Page_Run(void) void Page_Init(void) { PAGE_REG(page_menu); - // PAGE_REG(page_rtcam); + // PAGE_REG(page_rtcam); PAGE_REG(page_param); // PAGE_REG(page_argv); // PAGE_REG(page_sys); // PAGE_REG(page_run); - + PAGE_REG(page_dparam); Page_Shift(page_menu); pagelist[now_page].SetupCallback(); // 先构建一遍 diff --git a/app/page/page.h b/app/page/page.h index 521b003..1791886 100644 --- a/app/page/page.h +++ b/app/page/page.h @@ -21,6 +21,7 @@ enum PageID { page_menu, //page_rtcam, page_param, + page_dparam, // page_argv, // page_sys, // page_run, diff --git a/app/page/page_dparam.c b/app/page/page_dparam.c new file mode 100644 index 0000000..85ed16a --- /dev/null +++ b/app/page/page_dparam.c @@ -0,0 +1,95 @@ +#include "jj_param.h" +#include "page_ui_widget.h" +#include "jj_motion.h" +#include "page.h" + +#include + +#define LINE_HEAD 0 +#define LINE_END DATA_NUM - 2 +static char Text[] = "dParam"; +static int8_t Curser = LINE_HEAD; // 定义光标位置 +static int8_t Curser_Last = LINE_HEAD; // 定义光标位置 +/*************************************************************************************** + * + * 以下为页面模板函数 + * + ***************************************************************************************/ +/** + * @brief 页面初始化事件 + * @param 无 + * @retval 无 + */ +static void Setup() +{ + ips200_clear(); + Print_Curser(Curser, Curser_Last, RGB565_PURPLE); +} + +/** + * @brief 页面退出事件 + * @param 无 + * @retval 无 + */ +static void Exit() +{ +} + +/** + * @brief 页面循环执行的内容 + * @param 无 + * @retval 无 + */ +static void Loop() +{ + ips200_show_string(0, 40, "far"); + ips200_show_float(80, 40, in_angle, 4, 1); + ips200_show_string(0, 60, "near"); + ips200_show_float(80, 60, in_pos, 4, 1); + ips200_show_string(0, 80, "gyrz"); + ips200_show_float(80, 80, in_gyro, 4, 2); + ips200_show_string(0, 100, "speed"); + ips200_show_float(80, 100, in_speed, 4, 4); + ips200_show_string(0, 120, "outang"); + ips200_show_float(80, 120, out_angle, 4, 1); + ips200_show_string(0, 140, "outgyr"); + ips200_show_float(80, 140, out_gyro, 4, 1); + ips200_show_string(0, 160, "outpos"); + ips200_show_float(80, 160, out_pos, 4, 1); +} +/** + * @brief 页面事件 + * @param btn:发出事件的按键 + * @param event:事件编号 + * @retval 无 + */ +static void Event(page_event event) +{ + + Curser_Last = Curser; + if (page_event_forward == event) { + Curser--; // 光标上移 + } else if (page_event_backward == event) { + Curser++; // 光标下移 + } else if (page_event_press_short == event) { + sport_pid_init(); + } else if (page_event_press_long == event) { + Page_Shift(page_menu); + } + if (Curser < LINE_HEAD) { + Curser = LINE_END; + } else if (Curser > LINE_END) { + Curser = LINE_HEAD; + } + Print_Curser(Curser, Curser_Last, RGB565_PURPLE); +} + +/** + * @brief 页面注册函数 + * + * @param pageID + */ +void PageRegister_page_dparam(unsigned char pageID) +{ + Page_Register(pageID, Text, Setup, Loop, Exit, Event); +}