金牌会员
 
- 积分
- 1276
- 金钱
- 1276
- 注册时间
- 2016-5-31
- 在线时间
- 499 小时
|
发表于 2017-4-24 20:29:28
|
显示全部楼层
请楼主参考,我原来用到项目中的HC595的驱动部分:
#define HC595_SerDAT GPIO_Pin_6 //PC.6--->数据
#define HC595_SCK GPIO_Pin_8 //PA.8--->移位时钟
#define HC595_RCK GPIO_Pin_7 //PC.7--->锁存时钟
/****************************************************************************
* 功 能: 输出8bits串行数据函数
*---------------------------------------------------------------------------*
* 入口参数:num: 串行数据
* 出口参数:nil
****************************************************************************/
void HC595_Out_Byte(u8 num)
{
u8 i;
GPIO_ResetBits(GPIOC, HC595_RCK); // HC595_RCK=0
for(i=8;i>0;i--)
{
GPIO_ResetBits(GPIOA, HC595_SCK); //HC595_SCK=0
GPIO_WriteBit(GPIOC, HC595_SerDAT,(BitAction)(num&0x80)); // HC595_SerDAT=num&0x80
GPIO_SetBits(GPIOA, HC595_SCK); //HC595_SCK=1
num<<=1;
}
GPIO_SetBits(GPIOC, HC595_RCK); //HC595_RCK=1; //上升沿时移位寄存器的数据进入数据存储寄存
}
|
|