搜索
bottom↓
回复: 30

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

[复制链接]

出0入0汤圆

发表于 前天 10:40 | 显示全部楼层 |阅读模式
发现单片机在带负载时(脉冲高压打火器)偶尔会让数码管全灭,灭了后按键功能都正常,不带负载就不灭,请问这种情况考虑什么引起的呢?

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出20入12汤圆

发表于 前天 10:59 来自手机 | 显示全部楼层
在程序开头把复位信息打出来看一下,看看是不是复位了,是的话需要考虑改电路板,尤其是增强复位电路的抗干扰,不是的话,如果使用外部晶振可以先转为内部振荡器试试

出0入90汤圆

发表于 前天 11:17 | 显示全部楼层
电源的问题,打火瞬间电源产生尖峰波动,导致单片机重启。

出10入210汤圆

发表于 前天 12:19 | 显示全部楼层
数码管是MCU直推,还是TM16xx系列专用驱动芯片。

出0入217汤圆

发表于 前天 13:57 | 显示全部楼层
按键正常MCU就没死,可能显示芯片乱了,需要重新初始化

出0入300汤圆

发表于 前天 15:23 来自手机 | 显示全部楼层
别扫,用595行吗,我一直用595,很好用

出10入95汤圆

发表于 前天 21:42 来自手机 | 显示全部楼层
也是一直用595,现在嫌太占地方,也想换专用IC了

出0入0汤圆

发表于 前天 23:52 | 显示全部楼层
数码管驱动可以定时刷新或定时初始化

出0入0汤圆

 楼主| 发表于 昨天 08:19 | 显示全部楼层
rainbow 发表于 2024-8-12 12:19
数码管是MCU直推,还是TM16xx系列专用驱动芯片。
(引用自4楼)

你好,是1640系列的驱动

出0入0汤圆

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

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

出0入0汤圆

 楼主| 发表于 昨天 08:21 | 显示全部楼层
bad_fpga 发表于 2024-8-12 23:52
数码管驱动可以定时刷新或定时初始化
(引用自8楼)

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

出0入0汤圆

 楼主| 发表于 昨天 08:21 | 显示全部楼层
ibmx311 发表于 2024-8-12 15:23
别扫,用595行吗,我一直用595,很好用
(引用自6楼)

我观察观察

出0入0汤圆

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

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

出0入0汤圆

 楼主| 发表于 昨天 08:32 | 显示全部楼层
ibmx311 发表于 2024-8-12 15:23
别扫,用595行吗,我一直用595,很好用
(引用自6楼)

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

出100入312汤圆

发表于 昨天 09:17 来自手机 | 显示全部楼层
led灭了,没有恢复,但按键是正常的么

出0入0汤圆

 楼主| 发表于 昨天 09:24 | 显示全部楼层
akey3000 发表于 2024-8-13 09:17
led灭了,没有恢复,但按键是正常的么
(引用自15楼)

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

出100入312汤圆

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

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

出100入312汤圆

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

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

出0入300汤圆

发表于 昨天 11:22 | 显示全部楼层
应该做个调查了,看看有多少人用TM16xx做批产产品的显示驱动

出0入0汤圆

发表于 昨天 11:33 | 显示全部楼层
本帖最后由 lyl1070 于 2024-8-13 11:35 编辑

或者你需要的是这个。

  1. // 更新显示
  2. void Display_Update(void)
  3. {
  4.         uchar i=0,flag=0;                // 时间,或者有数据更改时,刷新显示
  5.         for(i=0;i<Min(sizeofArray(TM1628_RAM),sizeofArray(display.buff));i++)
  6.         {
  7.                 if(TM1628_RAM[i]!=display.buff[i])
  8.                 {
  9.                         flag=1;
  10.                         break;
  11.                 }
  12.         }
  13.         if((display.clock>DISPLAY_CLOCK_MS) || (flag!=0))        // 有数据改变,或者每DISPLAY_CLOCK_MS刷新显示
  14.         {
  15.                 display.clock-=DISPLAY_CLOCK_MS;
  16.                 for(i=0;i<Min(sizeofArray(TM1628_RAM),sizeofArray(display.buff));i++)
  17.                 {
  18.                         TM1628_RAM[i]=display.buff[i];
  19.                 }
  20.                 TM1628_LIGHT=display.light;
  21.                 TM1628_Update();
  22.         }
  23. }

  24. void TM1628_Update(void)
  25. {
  26.         uchar i=0;
  27.         Start();
  28.         Serial_T(0x00|TM1628_MODE);                                // 写模式
  29.         End();

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

  33.         Start();
  34.         Serial_T(0xC0);                                                        // 首地址
  35.         for(i=0;i<sizeofArray(TM1628_RAM);i++)
  36.         {
  37.                 Serial_T((uchar)(TM1628_RAM[i]%256));        // 先送低位
  38.                 Serial_T((uchar)(TM1628_RAM[i]/256));        // 再送高位
  39.         }
  40.         End();

  41.         Start();
  42.         Serial_T(0x88|(TM1628_LIGHT & 0x07));        // 写命令
  43.         End();
  44. }
复制代码

出0入0汤圆

 楼主| 发表于 昨天 13:09 来自手机 | 显示全部楼层
胖子胖虎 发表于 2024-8-12 11:17
电源的问题,打火瞬间电源产生尖峰波动,导致单片机重启。
(引用自3楼)

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

出0入0汤圆

 楼主| 发表于 昨天 13:09 来自手机 | 显示全部楼层
lyl1070 发表于 2024-8-13 11:33
或者你需要的是这个。
(引用自20楼)

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

出0入0汤圆

 楼主| 发表于 昨天 13:10 来自手机 | 显示全部楼层
akey3000 发表于 2024-8-13 09:47
看你还发了一个帖子,可能是1640挂了,而不是mcu
(引用自18楼)

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

出30入42汤圆

发表于 昨天 13:34 | 显示全部楼层
1640的电源挂了多大的电容?

出0入0汤圆

发表于 昨天 17:39 | 显示全部楼层
shenfengfeng 发表于 2024-8-13 13:09
好的谢谢 不灭了 但是受到外界干扰还是会频闪
(引用自22楼)

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

出0入0汤圆

发表于 昨天 17:40 | 显示全部楼层
PPS 发表于 2024-8-13 13:34
1640的电源挂了多大的电容?
(引用自24楼)

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

出0入0汤圆

 楼主| 发表于 昨天 19:58 | 显示全部楼层
PPS 发表于 2024-8-13 13:34
1640的电源挂了多大的电容?
(引用自24楼)

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

出0入0汤圆

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

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

出30入42汤圆

发表于 昨天 20:23 来自手机 | 显示全部楼层
shenfengfeng 发表于 2024-8-13 19:58
挂的是104电容,现在不灭了但是频闪
(引用自27楼)

再加个470uF给电源试试

出0入0汤圆

发表于 10 小时前 | 显示全部楼层
shenfengfeng 发表于 2024-8-13 19:59
程序提高了刷新频率 有什么办法不叫他频闪吗
(引用自28楼)

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

出0入0汤圆

 楼主| 发表于 1 小时前 | 显示全部楼层
感谢上面个位,上面方法大部分试了,最后是直接从6号飞线接最近地频闪好多了但是有零星频闪,基于此线有没有加强方案?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-14 19:15

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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