关于云台电机设置的问题
![肇恒博](https://hz-rm-bbs-web-prod.oss-cn-hangzhou.aliyuncs.com/avatar/pre/v1/000000252_avatar_big.jpg)
按照官方的数据手册,CAN发送控制数据的时候这么发送的:
void Motor_Set(int16_t *Motor_current)
{
TxMessage.StdId = 0x200; //±ê×¼Ö¡±êʶ·û
TxMessage.RTR = CAN_RTR_DATA;//Êý¾ÝÖ¡
TxMessage.IDE = CAN_ID_STD ; //±ê׼֡ģʽ
TxMessage.DLC = 8; //Êý¾Ý³¤¶È
//·¢ËÍÊý¾ÝÄÚÈÝ
TxMessage.Data[0] = (unsigned char)(Motor_current[0]>>8);
TxMessage.Data[1] = (unsigned char)Motor_current[0];
TxMessage.Data[2] = (unsigned char)(Motor_current[1]>>8);
TxMessage.Data[3] = (unsigned char)Motor_current[1];
TxMessage.Data[4] = (unsigned char)(Motor_current[2]>>8);
TxMessage.Data[5] = (unsigned char)Motor_current[2];
TxMessage.Data[6] = 0;
TxMessage.Data[7] = 0;
CanWriteData();
}
但是发送之后,接收到的设置数据总是和发送的不一致,而且差别很大,比如设置-576,传回的设定值是2880,中间完全无规律
我通过在CAN总线上外接一个接收端查看了发送的数据,并没有问题,而且接收的数据也没有问题,求解
void Motor_Set(int16_t *Motor_current)
{
TxMessage.StdId = 0x200; //±ê×¼Ö¡±êʶ·û
TxMessage.RTR = CAN_RTR_DATA;//Êý¾ÝÖ¡
TxMessage.IDE = CAN_ID_STD ; //±ê׼֡ģʽ
TxMessage.DLC = 8; //Êý¾Ý³¤¶È
//·¢ËÍÊý¾ÝÄÚÈÝ
TxMessage.Data[0] = (unsigned char)(Motor_current[0]>>8);
TxMessage.Data[1] = (unsigned char)Motor_current[0];
TxMessage.Data[2] = (unsigned char)(Motor_current[1]>>8);
TxMessage.Data[3] = (unsigned char)Motor_current[1];
TxMessage.Data[4] = (unsigned char)(Motor_current[2]>>8);
TxMessage.Data[5] = (unsigned char)Motor_current[2];
TxMessage.Data[6] = 0;
TxMessage.Data[7] = 0;
CanWriteData();
}
但是发送之后,接收到的设置数据总是和发送的不一致,而且差别很大,比如设置-576,传回的设定值是2880,中间完全无规律
我通过在CAN总线上外接一个接收端查看了发送的数据,并没有问题,而且接收的数据也没有问题,求解
请问这篇文章对你有用吗?
关于云台电机设置的问题