#define RCK595 PAout(4)
#define SI595 PAout(7)
#define SCK595 PAout(5)
void _74HC595_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //使能PORTA,PORTE时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
void _74HC595_SendData(unsigned char dat) //单片机将dat这个数据发送到74HC595
{
unsigned char a;
unsigned char i=50;
SCK595=0;
RCK595=0;
for(a=0; a<8; a++)
{
SI595 = dat>>7;
dat <<= 1;
SCK595 = 1;
while(i--);
SCK595 = 0;
i = 50;
}
i = 50;
RCK595 = 1;
while(i--);
RCK595 = 0;
}