stm32如何与绝对式编码器的ssi接口进行通信

2019-07-21 08:47发布

   近期使用欧姆龙12位绝对式编码器测量角位移,用stm32作为主控芯片,每一个角度对应12位二进制,编码器是ssi接口,如何用stm32与其进行通信,读取角位移的二进制数据?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
wsxg520
1楼-- · 2019-07-23 07:18
gh0526 发表于 2016-12-20 10:21
楼主能否发下源码参考学习下,多谢啦

int  get(void)
{

  GPIO_SetBits(GPIOB,GPIO_Pin_7);
        delay_us(5);
        GPIO_ResetBits(GPIOB,GPIO_Pin_7);
        delay_us(5); // ê±ÖóDÅoÅμÄμúò»¸öϽμÑØ ′Ëê±êy¾Y±»Ëø¶¨ÖáòÆλ¼Ä′æÆ÷
       
        GPIO_SetBits(GPIOB,GPIO_Pin_7);//μúò»¸öÂö3åéÏéyÑØ
        delay_us(5);
        if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)&0x01) d[0]=1;
          else d[0]=0;
        GPIO_ResetBits(GPIOB,GPIO_Pin_7);
        delay_us(5);
       
        GPIO_SetBits(GPIOB,GPIO_Pin_7);//μú¶t¸öÂö3åéÏéyÑØ
        delay_us(5);
        if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)&0x01) d[1]=1;
          else d[1]=0;
        GPIO_ResetBits(GPIOB,GPIO_Pin_7);
        delay_us(5);
       
        GPIO_SetBits(GPIOB,GPIO_Pin_7);//μúèy¸öÂö3åéÏéyÑØ
        delay_us(5);
        if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)&0x01) d[2]=1;
          else d[2]=0;
        GPIO_ResetBits(GPIOB,GPIO_Pin_7);
        delay_us(5);
       
        GPIO_SetBits(GPIOB,GPIO_Pin_7);//μúËĸöÂö3åéÏéyÑØ
        delay_us(5);
        if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)&0x01) d[3]=1;
          else d[3]=0;
        GPIO_ResetBits(GPIOB,GPIO_Pin_7);
        delay_us(5);
       
        GPIO_SetBits(GPIOB,GPIO_Pin_7);//μúÎå¸öÂö3åéÏéyÑØ
        delay_us(5);
        if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)&0x01) d[4]=1;
          else d[4]=0;
        GPIO_ResetBits(GPIOB,GPIO_Pin_7);
        delay_us(5);
       
        GPIO_SetBits(GPIOB,GPIO_Pin_7);//μúáù¸öÂö3åéÏéyÑØ
        delay_us(5);
        if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)&0x01) d[5]=1;
          else d[5]=0;
        GPIO_ResetBits(GPIOB,GPIO_Pin_7);
        delay_us(5);
       
        GPIO_SetBits(GPIOB,GPIO_Pin_7);//μúÆ߸öÂö3åéÏéyÑØ
        delay_us(5);
        if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)&0x01) d[6]=1;
          else d[6]=0;
        GPIO_ResetBits(GPIOB,GPIO_Pin_7);
        delay_us(5);
       
        GPIO_SetBits(GPIOB,GPIO_Pin_7);//μú°Ë¸öÂö3åéÏéyÑØ
        delay_us(5);
        if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)&0x01) d[7]=1;
          else d[7]=0;
        GPIO_ResetBits(GPIOB,GPIO_Pin_7);
        delay_us(5);
       
        GPIO_SetBits(GPIOB,GPIO_Pin_7);//μú¾Å¸öÂö3åéÏéyÑØ
        delay_us(5);
        if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)&0x01) d[8]=1;
          else d[8]=0;
        GPIO_ResetBits(GPIOB,GPIO_Pin_7);
        delay_us(5);
       
        GPIO_SetBits(GPIOB,GPIO_Pin_7);//μúꮸöÂö3åéÏéyÑØ
        delay_us(5);
        if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)&0x01) d[9]=1;
          else d[9]=0;
        GPIO_ResetBits(GPIOB,GPIO_Pin_7);
        delay_us(5);
       
        GPIO_SetBits(GPIOB,GPIO_Pin_7);//μúê®ò»¸öÂö3åéÏéyÑØ
        delay_us(5);
        if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)&0x01) d[10]=1;
          else d[10]=0;
        GPIO_ResetBits(GPIOB,GPIO_Pin_7);
        delay_us(5);
       
        GPIO_SetBits(GPIOB,GPIO_Pin_7);//μúꮶt¸öÂö3åéÏéyÑØ
        delay_us(5);
        if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)&0x01) d[11]=1;
          else d[11]=0;
        GPIO_ResetBits(GPIOB,GPIO_Pin_7);
        delay_us(5);
       
        GPIO_SetBits(GPIOB,GPIO_Pin_7);//ê±Öó¿ÕÏDê±à-¸ßμçƽ
  return 0;
}
qd0090
2楼-- · 2019-07-23 10:21
靖航
3楼-- · 2019-07-23 11:02
 精彩回答 2  元偷偷看……

一周热门 更多>