From 92395b9bb7f6ee698d4d05f8a26b41068408128d Mon Sep 17 00:00:00 2001 From: bmy <2583236812@qq.com> Date: Sun, 2 Jun 2024 18:25:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E7=81=AF=E6=9D=A1?= =?UTF-8?q?=E4=B8=8E=E8=9C=82=E9=B8=A3=E5=99=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/by_messy.c | 39 +++++++++++++++++++++++++++++++-------- project/src/main.c | 14 +++++--------- 2 files changed, 36 insertions(+), 17 deletions(-) diff --git a/app/by_messy.c b/app/by_messy.c index 2944a64..da7e56f 100644 --- a/app/by_messy.c +++ b/app/by_messy.c @@ -74,69 +74,92 @@ void by_messy_loop(void) buff_t_u8[1] = 5; // 设置复位速度 5 by_can_send_stdd(0x008, buff_t_u8, 1, 100); break; + case 0x43: // 设置转台末端执行器复位 by_frame_send(cmd, buff); // 正确接收后直接返回原文 buff_t_u8[0] = 0; by_can_send_stdd(0x009, buff_t_u8, 1, 100); break; - case 0x44: // 设置x轴位置 (增量) + + case 0x44: // 设置 x 轴位置 (增量) by_frame_send(cmd, buff); buff_t_u8[0] = 1; // 增量模式 - buff_t_u8[1] = buff[0]; // 拷贝设置速度 + buff_t_u8[1] = (uint8_t)(buff[0] & 0xFF); // 拷贝设置速度 memcpy(&buff_t_u8[2], &buff[1], sizeof(float)); // 拷贝设置距离 by_can_send_stdd(0x006, buff_t_u8, 8, 100); break; - case 0x46: // 设置z轴位置 (增量) + + case 0x46: // 设置 z 轴位置 (增量) by_frame_send(cmd, buff); buff_t_u8[0] = 1; // 增量模式 - buff_t_u8[1] = buff[0]; // 拷贝设置速度 + buff_t_u8[1] = (uint8_t)(buff[0] & 0xFF); // 拷贝设置速度 memcpy(&buff_t_u8[2], &buff[1], sizeof(float)); // 拷贝设置距离 by_can_send_stdd(0x008, buff_t_u8, 8, 100); break; - case 0x47: // 设置x轴位置 (绝对) + + case 0x47: // 设置 x 轴位置 (绝对) by_frame_send(cmd, buff); buff_t_u8[0] = 0; // 位置模式 - buff_t_u8[1] = buff[0]; // 拷贝设置速度 + buff_t_u8[1] = (uint8_t)(buff[0] & 0xFF); // 拷贝设置速度 memcpy(&buff_t_u8[2], &buff[1], sizeof(float)); // 拷贝设置距离 by_can_send_stdd(0x006, buff_t_u8, 8, 100); break; - case 0x49: // 设置z轴位置 (绝对) + + case 0x49: // 设置 z 轴位置 (绝对) by_frame_send(cmd, buff); buff_t_u8[0] = 0; // 增量模式 - buff_t_u8[1] = buff[0]; // 拷贝设置速度 + buff_t_u8[1] = (uint8_t)(buff[0] & 0xFF); // 拷贝设置速度 memcpy(&buff_t_u8[2], &buff[1], sizeof(float)); // 拷贝设置距离 by_can_send_stdd(0x008, buff_t_u8, 8, 100); break; + case 0x50: // 设置夹爪摇臂角度 by_frame_send(cmd, buff); memcpy(buff_t_f, buff, sizeof(float)); buff_t_u16[0] = (int16_t)(buff_t_f[0]); by_can_send_stdd(0x009, (uint8_t *)&buff_t_u16, 2, 100); break; + case 0x51: // 设置夹爪角度 by_frame_send(cmd, buff); memcpy(buff_t_f, buff, sizeof(float)); buff_t_u16[0] = (int16_t)(buff_t_f[0]); by_can_send_stdd(0x00A, (uint8_t *)&buff_t_u16, 2, 100); break; + case 0x52: // 设置摄像头角度 by_frame_send(cmd, buff); memcpy(buff_t_f, buff, sizeof(float)); buff_t_u16[0] = (int16_t)(buff_t_f[0]); by_can_send_stdd(0x00B, (uint8_t *)&buff_t_u16, 2, 100); break; + case 0x53: // 设置顶端抓取机构角度 by_frame_send(cmd, buff); memcpy(buff_t_f, buff, sizeof(float)); buff_t_u16[0] = (int16_t)(buff_t_f[0]); by_can_send_stdd(0x00C, (uint8_t *)&buff_t_u16, 2, 100); break; + case 0x54: // 设置托盘角度 by_frame_send(cmd, buff); memcpy(buff_t_f, buff, sizeof(float)); buff_t_u16[0] = (int16_t)(buff_t_f[0]); by_can_send_stdd(0x00D, (uint8_t *)&buff_t_u16, 2, 100); break; + + case 0x61: // 设置闪灯 + by_frame_send(cmd, buff); + memcpy(buff_t_u8, buff, sizeof(buff[1])); + gpio_bits_write(GPIOC, GPIO_PINS_3, buff_t_u8[0] ? FALSE : TRUE); // 灯条 + break; + + case 0x62: // 设置蜂鸣器 + by_frame_send(cmd, buff); + memcpy(buff_t_u8, buff, sizeof(buff[1])); + gpio_bits_write(GPIOC, GPIO_PINS_2, buff_t_u8[0] ? FALSE : TRUE); // 灯条 + break; + default: break; } diff --git a/project/src/main.c b/project/src/main.c index 43e05aa..96cae07 100644 --- a/project/src/main.c +++ b/project/src/main.c @@ -69,10 +69,10 @@ /* add user code end 0 */ /** - * @brief main function. - * @param none - * @retval none - */ + * @brief main function. + * @param none + * @retval none + */ int main(void) { /* add user code begin 1 */ @@ -152,12 +152,8 @@ int main(void) /* add user code end 2 */ - while(1) - { + while (1) { /* add user code begin 3 */ - // gpio_bits_write(GPIOC, GPIO_PINS_3, !gpio_output_data_bit_read(GPIOC, GPIO_PINS_3)); - // gpio_bits_write(GPIOC, GPIO_PINS_2, !gpio_output_data_bit_read(GPIOC, GPIO_PINS_2)); - // DWT_Delay(1000000); by_messy_loop(); by_motion_loop(); /* add user code end 3 */