初级会员

- 积分
- 62
- 金钱
- 62
- 注册时间
- 2018-7-30
- 在线时间
- 13 小时
|
#ifndef __74HC595_H
#define __74HC595_H
#include "stm32f10x.h"
#include "GPIO_Bit_Config.h"
#include "delay.h"
#define HC595_SDI_H GPIO_SetBits(GPIOB,GPIO_Pin_0)
#define HC595_SDI_L GPIO_ResetBits(GPIOB,GPIO_Pin_0)
#define HC595_SCK_H GPIO_SetBits(GPIOB,GPIO_Pin_1)
#define HC595_SCK_L GPIO_ResetBits(GPIOB,GPIO_Pin_1)
#define HC595_LCK_H GPIO_SetBits(GPIOB,GPIO_Pin_3)
#define HC595_LCK_L GPIO_ResetBits(GPIOB,GPIO_Pin_3)
void HC595_GPIO_Config(void);
void HC595_SendByte(uint8_t DATA);
void HC595_SendOut(void);
void HC595_N_SendByte(uint8_t DATA2,uint8_t DATA1);
#endif
#include "74HC595.h"
void HC595_GPIO_Config()
{
GPIO_InitTypeDef GPIO_InitStruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_3;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStruct);
}
void HC595_SendByte(uint8_t DATA)
{
uint8_t i;
for(i=0;i<8;i++)
{
if((DATA&0x80) == 0x80)
{
HC595_SDI_H;
}
else
{
HC595_SDI_L;
}
HC595_SCK_L;
DATA<<=1;
Delay_us(10);
HC595_SCK_H;
Delay_us(10);
}
}
void HC595_SendOut()
{
HC595_LCK_L;
Delay_us(10);
HC595_LCK_H;
Delay_us(10);
HC595_LCK_L;
}
void HC595_N_SendByte(uint8_t DATA2,uint8_t DATA1)
{
//HC595_SendByte(DATA3);
HC595_SendByte(DATA2);
HC595_SendByte(DATA1);
HC595_SendOut();
}
#include "stm32f10x.h"
#include "led.h"
#include "delay.h"
#include "GPIO_Bit_Config.h"
#include "74HC595.h"
int main(void)
{
// Led_GPIO_Config();
HC595_GPIO_Config();
while(1)
{
HC595_SendByte(0x00);
HC595_SendOut();
HC595_SendByte(0xFF);
HC595_SendOut();
// HC595_N_SendByte(0x00,0xff);
}
}
/************************END OF FILE**********************/
|
|