595很常用,可以使用硬件spi进行驱动,也可以及软件驱动

官方手册这个图展示的通信时序图比较迷,我反正是看不懂

stm32f031 hal库函数和寄存器结合软件驱动hc595

反正不管这么多了

直接上cubemx

stm32f031 hal库函数和寄存器结合软件驱动hc595

 stm32f031 hal库函数和寄存器结合软件驱动hc595

 一般来说,硬件驱动,时钟和数据传输很快,但是其他相关控制就会很慢,比如我有多个595分别用单独的io来控制RCK那就会变成下边这个样子

硬件spi驱动程序,国际惯例,直接流水灯吧

  注意那个&运算符

void hc595SpiTest()
{
     uint8_t testData=0x01;
          for(int i=0;i<8;i++)
          {
              rck_GPIO_Port->BRR=rck_Pin;//拉低
              HAL_SPI_Transmit(&hspi1, &testData, 1, 100) ;//注意这里是取地址
              rck_GPIO_Port->BSRR=rck_Pin;//拉高
               HAL_Delay(500);
              testData<<=1;
          }
}

 或者用数组,一次发多个数据出去

void hc595SpiTest() {
    uint8_t testData[4] = { 0x02, 0x02, 0x02, 0x02 };
    for (int i = 0; i < 8; i++) {
        rck_GPIO_Port->BRR = rck_Pin; //拉低
        HAL_SPI_Transmit(&hspi1, testData, 4, 100);
        rck_GPIO_Port->BSRR = rck_Pin; //拉高
        HAL_Delay(500);
    }
}

灯亮了,就进行下一步

再mx中对spi参数进行修改

图:48M下SPI设置为12M

stm32f031 hal库函数和寄存器结合软件驱动hc595

  所以呢,就不看Rck时钟了,只看数据

发一个0x01看看

stm32f031 hal库函数和寄存器结合软件驱动hc595

stm32f031 hal库函数和寄存器结合软件驱动hc595

 波形虽然很差了,但是通信没问题,很厉害,数字电路确实牛逼,但是不利于分析,还是先把速率调低一下把

所以,为了方便观察

还是把速率调到750k吧

再发一个0x01,好看多了

stm32f031 hal库函数和寄存器结合软件驱动hc595

 

 0x08

stm32f031 hal库函数和寄存器结合软件驱动hc595

 

 

stm32f031 hal库函数和寄存器结合软件驱动hc595

 

 

再发一个0x80

stm32f031 hal库函数和寄存器结合软件驱动hc595

stm32f031 hal库函数和寄存器结合软件驱动hc595

 

 

软件驱动就是比较通用,方便移植

 

具体可以参考

void hc595Write(uint8_t hcdata)
{
    uint8_t i,temp ;
        hcrck_GPIO_Port->BRR=hcrck_Pin;//拉低
      for(i=0;i<8;i++)
      {
          hcclk_GPIO_Port->BRR=hcclk_Pin;//拉低
        temp=hcdata & 0x80;
        if(temp==0x80)
        {
            hcdata_GPIO_Port->BSRR=hcdata_Pin; //拉高
        }
        else
        {
            hcdata_GPIO_Port->BRR=hcdata_Pin;//拉低
        }
        hcdata<<=1;    
         hcclk_GPIO_Port->BSRR=hcclk_Pin;//拉高
      }
      hcrck_GPIO_Port->BSRR=hcrck_Pin;//拉高
}    

 发送一个0x01看一下

 

 

 

 

stm32f031 hal库函数和寄存器结合软件驱动hc595

 

 

 

 再发一个0x80

 

 

 

stm32f031 hal库函数和寄存器结合软件驱动hc595

 

相关文章: