STM32驱动74hc595

发布者:masphia最新更新时间:2020-09-14 来源: eefocus关键字:STM32  驱动74hc595  延时 手机看文章 扫描二维码
随时随地手机看文章

#include "bsp_74HC595.h"

#define HC595_DS        PCout(13)//

#define HC595_OE        PAout(0)//

#define HC595_ST_CP        PBout(9)//

#define HC595_SH_CP             PBout(8)//

static void HC595_Delay(u32 t)

{

    u32 i;

    while(t--)

        for (i = 0; i < 1; i++);

}

 

 

void HC595_Init(void)

{

  

 GPIO_InitTypeDef  GPIO_InitStructure; 

 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC, ENABLE);     //

 

 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;              //

 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;        //推挽输出

 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;       //IO口速度为10MHz

 GPIO_Init(GPIOC, &GPIO_InitStructure);

     

 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9;                //

 GPIO_Init(GPIOB, &GPIO_InitStructure);

     

 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;               //

 GPIO_Init(GPIOA, &GPIO_InitStructure);                  //

 HC595_OE        = 1;

 HC595_DS        = 1;

 HC595_ST_CP = 1;

 HC595_SH_CP = 1;

 HC595_OE        = 0;

}

void Send595Data(u8 data)

{

    u8 i;

    for (i = 0;i<8;i++)

    {

        if ( ((data<        {

            HC595_DS=1;//数据位置位

        }

        else

        {

            HC595_DS=0;//数据位清零

        }

         

        HC595_SH_CP=0;//需延时至少24NS

        HC595_Delay(1);

        HC595_SH_CP=1;

    }

     

    HC595_ST_CP=0;//需延时24NS

    HC595_Delay(1);

    HC595_ST_CP=1;

}


关键字:STM32  驱动74hc595  延时 引用地址:STM32驱动74hc595

上一篇:MDK-ARM输出HEX文件重命名设置
下一篇:stm32定时器主从模式

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved