OpenEdv-开源电子网

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

使用74HC595D刷8X8 LED点阵,出现某些LED灭的状态下微亮的现象。

[复制链接]

145

主题

445

帖子

0

精华

高级会员

Rank: 4

积分
823
金钱
823
注册时间
2014-1-15
在线时间
350 小时
发表于 2019-12-7 16:19:55 | 显示全部楼层 |阅读模式
1金钱
使用74HC595D刷8X8 LED点阵,出现某些LED灭的状态下微亮的现象。感觉应该是硬件的问题,但是硬件很简单,两个595一个控制高,一个控制低。

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

使用道具 举报

6

主题

1127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1656
金钱
1656
注册时间
2019-8-15
在线时间
102 小时
发表于 2019-12-7 19:48:52 | 显示全部楼层
帮顶                              
成功没有捷径
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2019-12-8 02:54:26 | 显示全部楼层
要嘛595供电不对,要嘛扫描时序不对
回复

使用道具 举报

17

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
171
金钱
171
注册时间
2018-10-3
在线时间
60 小时
发表于 2019-12-10 18:59:32 | 显示全部楼层
我整过128*64双色 595  驱动,也碰过到这种现象。一行一行的扫描。行与行之间切换时,必须先清除本行的数据,再写入一行。就没有这种现象
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2019-11-30
在线时间
1 小时
发表于 2019-12-11 00:24:49 来自手机 | 显示全部楼层
这个是未做消隐处理
回复

使用道具 举报

145

主题

445

帖子

0

精华

高级会员

Rank: 4

积分
823
金钱
823
注册时间
2014-1-15
在线时间
350 小时
 楼主| 发表于 2019-12-11 09:09:24 | 显示全部楼层
电控 发表于 2019-12-10 18:59
我整过128*64双色 595  驱动,也碰过到这种现象。一行一行的扫描。行与行之间切换时,必须先清除本行的数据 ...

是吗?必须将上一行先写入0,再操作下一行?
回复

使用道具 举报

145

主题

445

帖子

0

精华

高级会员

Rank: 4

积分
823
金钱
823
注册时间
2014-1-15
在线时间
350 小时
 楼主| 发表于 2019-12-11 09:57:39 | 显示全部楼层
电控 发表于 2019-12-10 18:59
我整过128*64双色 595  驱动,也碰过到这种现象。一行一行的扫描。行与行之间切换时,必须先清除本行的数据 ...

下面是我的程序
void gm_led88_c_send_data(uint8_t data)
{
    uint8_t i, d;

    d  = data;

    for(i=0; i<8; i++)
    {
        nrf_gpio_pin_clear(LED88_595_C_SCLK_PIN);

        if( (d & 0x80) == 0x80)
        {
            nrf_gpio_pin_set(LED88_595_C_DATA_PIN);                  
        }
        else
        {
             nrf_gpio_pin_clear(LED88_595_C_DATA_PIN);        
        }
        d = d << 1;         
        nrf_gpio_pin_set(LED88_595_C_SCLK_PIN);                 
    }

    nrf_gpio_pin_clear(LED88_595_C_CLK_PIN);  
    nrf_gpio_pin_set(LED88_595_C_CLK_PIN);  
}

void gm_led88_r_send_data(uint8_t data)
{
    uint8_t i, d;

    d  = data;

    for(i=0; i<8; i++)
    {
        nrf_gpio_pin_clear(LED88_595_R_SCLK_PIN);

        if( (d & 0x80) == 0x80)
        {
            nrf_gpio_pin_set(LED88_595_R_DATA_PIN);                  
        }
        else
        {
             nrf_gpio_pin_clear(LED88_595_R_DATA_PIN);        
        }
        d = d << 1;         
        nrf_gpio_pin_set(LED88_595_R_SCLK_PIN);                 
    }

    nrf_gpio_pin_clear(LED88_595_R_CLK_PIN);  
    nrf_delay_us(5);
    nrf_gpio_pin_set(LED88_595_R_CLK_PIN);  
}

uint8_t m_led_martix[] =
{
0x20,0x30,0x20,0x20,0x20,0x20,0x70,0x00,

};
uint8_t dr, dc;

void gm_led88_refresh(void)
{
    uint8_t *ma, i;

    ma = m_led_martix;
    dr = 0xFF;
    dc = 0x00;

    for(i = 0; i < 8; i++)   
    {

        dr = ~(0x01 << i) & 0xFF;
        dc = *ma;

        gm_led88_c_send_data(dc);
        gm_led88_r_send_data(dr);   

        ma++;

        nrf_delay_ms(2);   
        gm_led88_c_send_data(0);
        gm_led88_r_send_data(dr);         
    }
}


gm_led88_refresh()是刷屏函数,这样写对吗?

回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2019-12-14 18:31:27 | 显示全部楼层
扫描方式不对吧
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-22 01:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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