feat: 增加can总线和步进电机指令绑定
This commit is contained in:
38
app/by_messy.c
Normal file
38
app/by_messy.c
Normal file
@@ -0,0 +1,38 @@
|
||||
#include "by_messy.h"
|
||||
|
||||
#include <string.h>
|
||||
#include "by_stepper.h"
|
||||
#include "by_can.h"
|
||||
|
||||
void by_messy_loop(void)
|
||||
{
|
||||
}
|
||||
|
||||
void by_messy_int(void)
|
||||
{
|
||||
can_rx_message_type can_rx_message_struct;
|
||||
can_message_receive(CAN1, CAN_RX_FIFO0, &can_rx_message_struct);
|
||||
|
||||
// 接收到位置控制帧
|
||||
if (0x006 == can_rx_message_struct.standard_id) {
|
||||
uint8_t mode = 0;
|
||||
uint8_t speed = 0;
|
||||
float position_temp = 0;
|
||||
|
||||
memcpy(&mode, can_rx_message_struct.data, 1);
|
||||
memcpy(&speed, can_rx_message_struct.data + 1, 1);
|
||||
memcpy(&position_temp, can_rx_message_struct.data + 2, 4);
|
||||
|
||||
by_stepper_set_speed((stepper_speed_t)speed);
|
||||
|
||||
if (0 == mode) {
|
||||
by_stepper_set_position_millimeter(position_temp);
|
||||
} else if (1 == mode) {
|
||||
by_stepper_add_position_millimeter(position_temp);
|
||||
}
|
||||
} else if (0x007 == can_rx_message_struct.standard_id) {
|
||||
if (CAN_TFT_REMOTE == can_rx_message_struct.frame_type) {
|
||||
by_can_send_stdd(0x007, &running_flag, 1, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user