Notifications
Clear all
CAN Bus Communication for Servo**D Series Closed Loop Stepper Driver - STM32 Blue Pill
Sep 11, 2026 11:00 pm
Member
Joined: 1 week ago
[#83]

Servo42D/57D supports position mode and Speed mode. On Position Mode, the Position Mode includes absolute position and relative position.
The code below shows the Relative Position motion baccording to pulse number (page 78 on CAN User Manual)
#define SERVO42D_SPEED_MODE 0xF6
void Servo42D_RunPosition(void)
{
TxHeader.StdId=SERVO42D_ID;
TxHeader.ExtId=0;
TxHeader.IDE=CAN_ID_STD;
TxHeader.RTR=CAN_RTR_DATA;
TxHeader.DLC=8;
TxHeader.TransmitGlobalTime=DISABLE;
TxData[0]=SERVO42D_POSITION_MODE1;
TxData[1]=0x00;
TxData[2]=0x3C;
TxData[3]=0x02;
TxData[4]=0x00;
TxData[5]=0x00;
TxData[6]=0x64;
TxData[7]=(SERVO42D_ID+TxData[0]+TxData[1]+TxData[2]+TxData[3]+TxData[4]+TxData[5]+TxData[6])&0xFF;
if(HAL_CAN_AddTxMessage(&hcan,&TxHeader,TxData,&TxMailbox)!=HAL_OK)
{
Error_Handler();
}
}
1 Reply
Sep 11, 2026 11:01 pm
Member
Joined: 1 week ago
Speed mode:
#define SERVO42D_SPEED_MODE 0xF6
void Servo42D_RunSpeed(void)
{
TxHeader.StdId=SERVO42D_ID;
TxHeader.ExtId=0;
TxHeader.IDE=CAN_ID_STD;
TxHeader.RTR=CAN_RTR_DATA;
TxHeader.DLC=5;
TxHeader.TransmitGlobalTime=DISABLE;
// Speed Mode
TxData[0]=SERVO42D_SPEED_MODE;
TxData[1]=0x01;
TxData[2]=0x40;
TxData[3]=0x02;
TxData[4]=(SERVO42D_ID+TxData[0]+TxData[1]+TxData[2]+TxData[3])&0xFF;
if(HAL_CAN_AddTxMessage(&hcan,&TxHeader,TxData,&TxMailbox)!=HAL_OK)
{
Error_Handler();
}
}
Reply
Forum Information
Our newest member: aj
Forum Icons:
Forum contains no unread posts
Forum contains unread posts
Topic Icons:
Not Replied
Replied
Active
Hot
Sticky
Unapproved
Solved
Private
Closed
