Как получить сигнал от 74595 - PullRequest
0 голосов
/ 11 января 2020

enter image description here

Я использовал код как shift _register_write_byte(0xFF); Я хочу использовать функцию shift_register_write_byte для генерации светодиодного выхода на основе 8-битной переменной данных. Но я не получил сигнал. Как я могу получить сигнал? Спасибо!

  void shift_register_reset(void){
  GPIOA->BSRR=GPIO_PIN_9;
  Delay_us(5);
  GPIOA->BRR=GPIO_PIN_9;
  Delay_us(5);
  GPIOA->BSRR=GPIO_PIN_9;}

  void shift_register_clk_pulse(void){
      GPIOA->BSRR=GPIO_PIN_8;
      Delay_us(5);
      GPIOA->BRR=GPIO_PIN_8;
  }

  void shift_register_load_pulse(void){
       GPIOA->BSRR=GPIO_PIN_10;
       Delay_us(5);
       GPIOA->BRR=GPIO_PIN_10;
  }

  void shift_register_write_byte(uint8_t data){
    shift_register_reset();
    for(int i=0;i<8;i++){

        if(((data>>i) &0x01) == 0 ){
            GPIOA->BSRR = GPIO_PIN_15;
            HAL_Delay(5);
            shift_register_clk_pulse();
        }
        else if(((data>>i)& 0x01) == 1){
            GPIOA->BSRR = GPIO_PIN_15;
            HAL_Delay(5);
            GPIOA->BRR = GPIO_PIN_15;
            shift_register_clk_pulse();
        }
    }
    HAL_Delay(5);
    shift_register_clk_pulse();
    HAL_Delay(5);
    shift_register_load_pulse();}
...