#define MOSIO GPIO_Pin_2 //PA2; 12
#define S_CLK GPIO_Pin_3 //PA3; 13
#define R_CLK GPIO_Pin_4 //PA4; 14
void HC595_INIT()
{
GPIO_InitStructure.GPIO_Pin = MOSIO|R_CLK|S_CLK;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_SetBits(GPIOA,R_CLK);
GPIO_SetBits(GPIOA,S_CLK);
GPIO_SetBits(GPIOA,MOSIO);
}
void HC595SendData(unsigned char SendVal)
{
unsigned char i;
GPIO_ResetBits(GPIOA, R_CLK);
for(i=0;i<8;i++)
{
GPIO_ResetBits(GPIOA, S_CLK);
if((SendVal< {
GPIO_SetBits(GPIOA, MOSIO);
}
else
{
GPIO_ResetBits(GPIOA, MOSIO);
}
delay_us1(1);
GPIO_SetBits(GPIOA, S_CLK);
}
delay_us1(1);
GPIO_SetBits(GPIOA, R_CLK);
}
仔细看下595数据手册,时序不对
是不是时序不对