OpenEdv-开源电子网

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

STM32连接74HC595控制LED

[复制链接]

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2016-8-9
在线时间
7 小时
发表于 2016-10-21 11:59:13 | 显示全部楼层 |阅读模式
把程序下载进去没显示呢,求大神指导



void HC595_Init(void)
{

GPIO_InitTypeDef  GPIO_InitStructure;
         
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG, ENABLE);         
        
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_4;                                 
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 
GPIO_Init(GPIOG, &GPIO_InitStructure);                                       
GPIO_ResetBits(GPIOG,GPIO_Pin_4);

}



#define HC595_SI PGout(0)
#define HC595_SCK PGout(1)
#define HC595_RCLK PGout(2)





char LED[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void sendbyte(unsigned char byte)
{
        unsigned char num,i;
        num=byte;
        for(i=0;i<8;i++)
        {
                HC595_SCK=0;
                delay_ms(5);
               
                if((num&0x80)==0x80)
                HC595_SI=1;
                else
                HC595_SI=0;
                num=num<<1;
                HC595_SCK=1;
                delay_ms(5);
        }
}

void out595()
{
        HC595_RCLK=0;
        delay_ms(5);
        HC595_RCLK=1;
        delay_ms(5);
        HC595_RCLK=0;
       
}




main()
{
      while(1)
     {
                for(i=0;i<8;i++)
                {
                        sendbyte(LED[i]);
                        out595();
                        delay_ms(300);

                }
      }
}



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

使用道具 举报

21

主题

387

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1043
金钱
1043
注册时间
2016-9-8
在线时间
213 小时
发表于 2016-10-21 12:02:57 | 显示全部楼层
shop60994719.taobao.com
回复 支持 反对

使用道具 举报

54

主题

372

帖子

0

精华

高级会员

Rank: 4

积分
972
金钱
972
注册时间
2016-6-15
在线时间
473 小时
发表于 2016-10-21 12:38:13 | 显示全部楼层
本帖最后由 shuaigew88 于 2016-10-21 12:39 编辑

char LED[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void sendbyte(unsigned char byte)
{
        unsigned char i;        
       HC595_RCLK=0;
        for(i=0x80;i!=0;i>>=1)
        {
                HC595_SCK=0;
                delay_us(1);
               
                if(byte &i)HC595_SI=1;
                elseHC595_SI=0;
                HC595_SCK=1;
                delay_us(1);
        }
        HC595_RCLK=1;
}


main()
{
      while(1)
     {
                for(i=0;i<8;i++)
                {
                        sendbyte(LED);
                        delay_ms(300);

                }
      }
}



回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2016-8-9
在线时间
7 小时
 楼主| 发表于 2016-10-21 14:19:47 | 显示全部楼层
shuaigew88 发表于 2016-10-21 12:38
char LED[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void sendbyte(unsigned char byte)
{

大神,还是不行呢,主函数LED应该是一个数组呢
回复 支持 反对

使用道具 举报

54

主题

372

帖子

0

精华

高级会员

Rank: 4

积分
972
金钱
972
注册时间
2016-6-15
在线时间
473 小时
发表于 2016-10-21 14:37:13 | 显示全部楼层
hkl 发表于 2016-10-21 14:19
大神,还是不行呢,主函数LED应该是一个数组呢

我上面的程序绝对不会有问题,如果你测试有问题就需要测试输出波形,看看是不是其他方面配置有问题。
回复 支持 反对

使用道具 举报

28

主题

306

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
1320
金钱
1320
注册时间
2012-6-3
在线时间
353 小时
发表于 2016-10-22 14:52:24 | 显示全部楼层
还能这样。。。。。。
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-11-28
在线时间
3 小时
发表于 2016-12-6 15:31:20 | 显示全部楼层
#include "stm32f10x.h"
#include "delay.h"

#define ds PAout(0)
#define sck PAout(1)
#define rck PAout(2)
#define oe PAout(3)

unsigned int  tab1[]={0x0001,0x0002,0x0004,0x0008,0x0010,0x0020,0x0040,0x0080,0x0100,0x0200,0x0400,0x0800,0x1000,0x2000,0x4000,0x8000};

void wr_595(u16 one);
void out_595(void);


int main(void)
{       
  
        GPIO_InitTypeDef  GPIO_InitStructure;
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);            //使能PA端口时钟
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All ;                            // 端口配置
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;          //推挽输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         //IO口速度为50MHz
  GPIO_Init(GPIOA, &GPIO_InitStructure);
  GPIO_SetBits(GPIOA,GPIO_Pin_All);         
  delay_init();
         
         while(1)
        {
          u8 a=0;
                for(a=0;a<16;a++)
                {
          wr_595(tab1[a]);
          out_595();
                delay_ms(500);
         
                }
               
               
        }
       
}


void wr_595(u16 one)
{  
  unsigned char i;
        sck=1;
  rck=1;
  oe=1;       
  for(i=0;i<16;i++)
   {
        if((one<<i)&0x8000) ds=1;
        else ds=0;                                    

        sck=0;  
        delay_us(20);         
        sck=1;
               
   }
       
}

void out_595(void)
{
  rck=0;
        delay_us(20);
  rck=1;
  oe=0;        
}

这是级联的16个LED也可以用
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-11-28
在线时间
3 小时
发表于 2016-12-6 15:34:04 | 显示全部楼层
高电平有效
回复 支持 反对

使用道具 举报

毕业设计 该用户已被删除
发表于 2016-12-31 16:06:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

毕业设计 该用户已被删除
发表于 2016-12-31 18:18:32 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

17

主题

231

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2085
金钱
2085
注册时间
2016-8-8
在线时间
362 小时
发表于 2017-7-28 10:20:15 | 显示全部楼层
shuaigew88 发表于 2016-10-21 12:38
char LED[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void sendbyte(unsigned char byte)
{

程序改了又改 你这个最好用
黑夜给了我黑色的眼睛,我却用它来寻找白花花的银子,黄灿灿的金子,以及红彤彤的毛爷爷
回复 支持 反对

使用道具 举报

5

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
333
金钱
333
注册时间
2015-2-9
在线时间
92 小时
发表于 2017-7-28 10:31:15 | 显示全部楼层
你原理图贴上来看看
回复 支持 反对

使用道具 举报

17

主题

231

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2085
金钱
2085
注册时间
2016-8-8
在线时间
362 小时
发表于 2017-8-3 08:57:47 | 显示全部楼层
御剑江湖 发表于 2017-7-28 10:31
你原理图贴上来看看

是我的电路吗?
黑夜给了我黑色的眼睛,我却用它来寻找白花花的银子,黄灿灿的金子,以及红彤彤的毛爷爷
回复 支持 反对

使用道具 举报

54

主题

372

帖子

0

精华

高级会员

Rank: 4

积分
972
金钱
972
注册时间
2016-6-15
在线时间
473 小时
发表于 2017-8-3 15:53:31 | 显示全部楼层
守候ocean 发表于 2017-7-28 10:20
程序改了又改 你这个最好用

好用就好。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-20 05:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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