有关串口总线舵机与STM32开发板的问题

请问这个舵机的模块如何与正点原子的战舰开发板相连接,即如何实现通信?
想着要通过串口调试助手写入指令来控制舵机,但是不知道两个模块怎么连接。
舵机是飞特的SCS009,是串口总线舵机

img

img

img

img

【相关推荐】



  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7774005
  • 这篇博客也不错, 你可以看下stm32串口发送数据的配置,以及通过串口发送结构体数组总是多一个00字节的问题--已解决
  • 您还可以看一下 Abel小智老师的嵌入式开发系统学习路线 从基础到项目 精品教程 工程师必备课程 物联网课程中的 STM32接线与下载第一个程序小节, 巩固相关知识点
  • 除此之外, 这篇博客: 关于STM32串口收发,以及数据类型的任意转换及识别字符命令进行相应赋值。**中的 识别字符串命令及其赋值 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

    比如我们希望输入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])	;}
    
    
    }
    			
    
    
    }
    
    
    

    **

    如此便实现了串口常用的几种功能


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^