void cd_4094(unsigned char d)
{
unsigned char i,temp;
temp=d;
for(i=0;i<8;i++) //写八位数据进CD4094;
{
if(temp&0x01) //判断并发串行数据;
{
GPIO_SetBits(GPIOA, GPIO_Pin_5); //发高电平;
}
else
{
GPIO_ResetBits(GPIOA, GPIO_Pin_5); //发低电平;
}
GPIO_ResetBits(GPIOA, GPIO_Pin_4); //形成上升延脉冲;
GPIO_SetBits(GPIOA, GPIO_Pin_4);
temp>>=1; //数据移位,送下一位数据;
}
}
主函数中
{
cd_4094(0x60)
GPIO_SetBits(GPIOA, GPIO_Pin_6);
for(i=2;i>0;i--);
GPIO_ResetBits(GPIOA, GPIO_Pin_6);
}
GPIO设置 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
GPIO_Init(GPIOA, &GPIO_InitStructure);
用STM32的PA4,PA5,PA6与CD4094作显示,为什么显示混乱?
请师傅们指点一下: |