shenfengfeng 发表于 2024-8-12 10:40:28

STM32单片机运行时数码管突然全灭

发现单片机在带负载时(脉冲高压打火器)偶尔会让数码管全灭,灭了后按键功能都正常,不带负载就不灭,请问这种情况考虑什么引起的呢?

gaolf_2012 发表于 2024-8-12 10:59:48

在程序开头把复位信息打出来看一下,看看是不是复位了,是的话需要考虑改电路板,尤其是增强复位电路的抗干扰,不是的话,如果使用外部晶振可以先转为内部振荡器试试

胖子胖虎 发表于 2024-8-12 11:17:39

电源的问题,打火瞬间电源产生尖峰波动,导致单片机重启。

rainbow 发表于 2024-8-12 12:19:40

数码管是MCU直推,还是TM16xx系列专用驱动芯片。

ehengio 发表于 2024-8-12 13:57:17

按键正常MCU就没死,可能显示芯片乱了,需要重新初始化

ibmx311 发表于 2024-8-12 15:23:00

别扫,用595行吗,我一直用595,很好用

ddcour 发表于 2024-8-12 21:42:04

也是一直用595,现在嫌太占地方,也想换专用IC了

bad_fpga 发表于 2024-8-12 23:52:08

数码管驱动可以定时刷新或定时初始化

shenfengfeng 发表于 2024-8-13 08:19:57

rainbow 发表于 2024-8-12 12:19
数码管是MCU直推,还是TM16xx系列专用驱动芯片。
(引用自4楼)

你好,是1640系列的驱动

shenfengfeng 发表于 2024-8-13 08:21:13

ehengio 发表于 2024-8-12 13:57
按键正常MCU就没死,可能显示芯片乱了,需要重新初始化
(引用自5楼)

嗯,或许,这个情况添加软件陷阱程序好使不

shenfengfeng 发表于 2024-8-13 08:21:28

bad_fpga 发表于 2024-8-12 23:52
数码管驱动可以定时刷新或定时初始化
(引用自8楼)

这个情况若添加软件陷阱程序好使不

shenfengfeng 发表于 2024-8-13 08:21:59

ibmx311 发表于 2024-8-12 15:23
别扫,用595行吗,我一直用595,很好用
(引用自6楼)

我观察观察

shenfengfeng 发表于 2024-8-13 08:22:47

胖子胖虎 发表于 2024-8-12 11:17
电源的问题,打火瞬间电源产生尖峰波动,导致单片机重启。
(引用自3楼)

灭了之后单片机功能都是好的

shenfengfeng 发表于 2024-8-13 08:32:25

ibmx311 发表于 2024-8-12 15:23
别扫,用595行吗,我一直用595,很好用
(引用自6楼)

你好这个595对电磁干扰也很抗吗

akey3000 发表于 2024-8-13 09:17:29

led灭了,没有恢复,但按键是正常的么

shenfengfeng 发表于 2024-8-13 09:24:22

akey3000 发表于 2024-8-13 09:17
led灭了,没有恢复,但按键是正常的么
(引用自15楼)

是的,灭了之后按键都是正常的,重新上电就亮了 周围有电磁脉冲肉眼可见的频闪

akey3000 发表于 2024-8-13 09:26:46

shenfengfeng 发表于 2024-8-13 09:24
是的,灭了之后按键都是正常的,重新上电就亮了 周围有电磁脉冲肉眼可见的频闪 ...
(引用自16楼)

说明mcu没有重启,mcu重启了,led会恢复。可以再按键处理中加一个更新led显示的功能,再测试验证下,led能不能恢复

akey3000 发表于 2024-8-13 09:47:44

shenfengfeng 发表于 2024-8-13 09:24
是的,灭了之后按键都是正常的,重新上电就亮了 周围有电磁脉冲肉眼可见的频闪 ...
(引用自16楼)

看你还发了一个帖子,可能是1640挂了,而不是mcu

ibmx311 发表于 2024-8-13 11:22:28

应该做个调查了,看看有多少人用TM16xx做批产产品的显示驱动

lyl1070 发表于 2024-8-13 11:33:56

本帖最后由 lyl1070 于 2024-8-13 11:35 编辑

或者你需要的是这个。

// 更新显示
void Display_Update(void)
{
        uchar i=0,flag=0;                // 时间,或者有数据更改时,刷新显示
        for(i=0;i<Min(sizeofArray(TM1628_RAM),sizeofArray(display.buff));i++)
        {
                if(TM1628_RAM!=display.buff)
                {
                        flag=1;
                        break;
                }
        }
        if((display.clock>DISPLAY_CLOCK_MS) || (flag!=0))        // 有数据改变,或者每DISPLAY_CLOCK_MS刷新显示
        {
                display.clock-=DISPLAY_CLOCK_MS;
                for(i=0;i<Min(sizeofArray(TM1628_RAM),sizeofArray(display.buff));i++)
                {
                        TM1628_RAM=display.buff;
                }
                TM1628_LIGHT=display.light;
                TM1628_Update();
        }
}

void TM1628_Update(void)
{
        uchar i=0;
        Start();
        Serial_T(0x00|TM1628_MODE);                                // 写模式
        End();

        Start();
        Serial_T(TM1628_WRITE_ATUO);                        // 写数据,自动加1
        End();

        Start();
        Serial_T(0xC0);                                                        // 首地址
        for(i=0;i<sizeofArray(TM1628_RAM);i++)
        {
                Serial_T((uchar)(TM1628_RAM%256));        // 先送低位
                Serial_T((uchar)(TM1628_RAM/256));        // 再送高位
        }
        End();

        Start();
        Serial_T(0x88|(TM1628_LIGHT & 0x07));        // 写命令
        End();
}

shenfengfeng 发表于 2024-8-13 13:09:19

胖子胖虎 发表于 2024-8-12 11:17
电源的问题,打火瞬间电源产生尖峰波动,导致单片机重启。
(引用自3楼)

灭了之后单片机还是活着的 ,现在在1640接上电容不灭了但是有频闪

shenfengfeng 发表于 2024-8-13 13:09:54

lyl1070 发表于 2024-8-13 11:33
或者你需要的是这个。
(引用自20楼)

好的谢谢 不灭了 但是受到外界干扰还是会频闪

shenfengfeng 发表于 2024-8-13 13:10:41

akey3000 发表于 2024-8-13 09:47
看你还发了一个帖子,可能是1640挂了,而不是mcu
(引用自18楼)

1640挂了 给它接电容不挂了但会频闪

PPS 发表于 2024-8-13 13:34:11

1640的电源挂了多大的电容?

lyl1070 发表于 2024-8-13 17:39:31

shenfengfeng 发表于 2024-8-13 13:09
好的谢谢 不灭了 但是受到外界干扰还是会频闪
(引用自22楼)

用外挂的驱动,干扰产生频闪是正常现象,提高刷屏速度也没用。
干扰消失后能够自动恢复(无需操作)就可以了。认证是允许的。

lyl1070 发表于 2024-8-13 17:40:03

PPS 发表于 2024-8-13 13:34
1640的电源挂了多大的电容?
(引用自24楼)

挂啥,挂多大都会,没用的。

shenfengfeng 发表于 2024-8-13 19:58:26

PPS 发表于 2024-8-13 13:34
1640的电源挂了多大的电容?
(引用自24楼)

挂的是104电容,现在不灭了但是频闪

shenfengfeng 发表于 2024-8-13 19:59:53

lyl1070 发表于 2024-8-13 17:39
用外挂的驱动,干扰产生频闪是正常现象,提高刷屏速度也没用。
干扰消失后能够自动恢复(无需操作)就可 ...
(引用自25楼)

程序提高了刷新频率 有什么办法不叫他频闪吗

PPS 发表于 2024-8-13 20:23:56

shenfengfeng 发表于 2024-8-13 19:58
挂的是104电容,现在不灭了但是频闪
(引用自27楼)

再加个470uF给电源试试

lyl1070 发表于 2024-8-14 08:35:23

shenfengfeng 发表于 2024-8-13 19:59
程序提高了刷新频率 有什么办法不叫他频闪吗
(引用自28楼)

看示波器看好,将通讯的Delay改短试试,或许有用。

shenfengfeng 发表于 2024-8-14 17:25:12

感谢上面个位,上面方法大部分试了,最后是直接从6号飞线接最近地频闪好多了但是有零星频闪,基于此线有没有加强方案?
页: [1]
查看完整版本: STM32单片机运行时数码管突然全灭