stm32读取两片74hc165d数据不正确

2019-07-14 14:16发布

unsigned char i;
  ADDR_SW_Data = 0;
  GPIO_ResetBits(GPIOC, 2);//clock_en ´ò¿ª165ѡͨ¶Ë
  GPIO_ResetBits(GPIOC, 1);//PL  //ÔËÐÐÊý¾Ý¼ÆÈë165
  delay_ms(1);
  GPIO_SetBits(GPIOC, 1);//PL //ÔÊÐíÊý¾ÝÒÆλ
  delay_ms(1);
  for(i=0;i<16;i++)  //¶Á16´ÎÊý¾Ý
  {
    GPIO_ResetBits(GPIOC, 0);//clock
    delay_ms(1);
   
    ADDR_SW_Data = GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_3) | (ADDR_SW_Data<<1);//¶ÁÊäÈëÊý¾Ýλ  
   
    GPIO_SetBits(GPIOC, 0);//clock
    delay_ms(1);
  }
  GPIO_SetBits(GPIOC, 2);//clock_en //¹Ø±Õ165ѡͨ¶Ë
  GPIO_ResetBits(GPIOC,1);//PL  //ÔËÐÐÊý¾Ý¼ÆÈë165
  
  ADDR_SW_Data  =  ~ADDR_SW_Data;      //²¦Â뿪¹ØÈ¡·´
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。