请问这个舵机的模块如何与正点原子的战舰开发板相连接,即如何实现通信?
想着要通过串口调试助手写入指令来控制舵机,但是不知道两个模块怎么连接。
舵机是飞特的SCS009,是串口总线舵机
【相关推荐】
比如我们希望输入k7854\r\n,就对k变量赋值7854,而输入其他,如m7854\r\n,则对m赋值7854
char rece_buffer[128];
char rece_buffer1[128];//两个数组,,用于数据的移位
int RxCounter;
void USART1_IRQHandler(void )
{
u8 clear=clear;
float num;
USART_ClearFlag(USART1,USART_FLAG_TC);
if(USART_GetITStatus(USART1,USART_IT_RXNE)!=Bit_RESET)
{
rece_buffer[RxCounter++]=USART1->DR;
USART_ClearITPendingBit(USART1, USART_IT_RXNE);
}
else if(USART_GetFlagStatus(USART1,USART_FLAG_IDLE)!=Bit_RESET)
{ u8 i;
clear=USART1->SR;
clear=USART1->DR;
if(rece_buffer[0]=='k')
{ RxCounter=0;
for(i=0;i<=(sizeof(rece_buffer)/sizeof(rece_buffer[0]));i++)
{
rece_buffer1[i]=rece_buffer[i+1];
//比如我们输入 k 854 ,rece_buffer里面的数据为 k 8 5 4,然后把后面的三个数据赋给cece_buffer1为 8 5 4
}
printf ("%s\r\n",rece_buffer1);
sscanf (rece_buffer1,"%f",&num );//将字符转变为浮点
printf ("%f\r\n",num);
printf ("rece_buffer[0]=%c\r\n",rece_buffer[0]) ;
printf ("rece_buffer[1]=%c\r\n",rece_buffer[1]) ;
//printf只是为了验证,无实际意义
}
else {printf ("你输入了错误命令");
RxCounter=0;
printf ("rece_buffer[0]=%c\r\n",rece_buffer[0]) ;
printf ("rece_buffer[1]=%c\r\n",rece_buffer[1]) ;}
}
}
**
如此便实现了串口常用的几种功能