OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2747|回复: 0

STM32F103驱动74HC595失败 程序如下,求大神帮忙看看

[复制链接]

1

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2018-7-30
在线时间
13 小时
发表于 2018-7-30 11:50:59 | 显示全部楼层 |阅读模式
#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**********************/



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 01:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表