Bootstrap

74HC595 驱动代码 单线串口输出转并输出


void _74HC595IOIinit()
{
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);

	GPIO_InitStructure.GPIO_Pin =RCLK_Pin ;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;	//复用推挽输出
    GPIO_Init(RCLK_GPIO, &GPIO_InitStructure);			//

	GPIO_InitStructure.GPIO_Pin = SRCLK_Pin;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;	//复用推挽输出
    GPIO_Init(SRCLK_GPIO, &GPIO_InitStructure);			//
	
	GPIO_InitStructure.GPIO_Pin = SERDAT_Pin;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;	//复用推挽输出
    GPIO_Init(SERDAT_GPIO, &GPIO_InitStructure);			//

	RCLK = 0;
	SRCLK  = 0;
	SERDAT = 0;
}


void _74HC595Out(unsigned char dat)
{
	RCLK = 0;
	for(unsigned char i = 0 ; i<8;i++)
	{
		SRCLK  = 0;
		SERDAT = (dat>>i)&0x01?1:0;
		SRCLK  = 1;
	}
	RCLK = 1;
}

;