找回密码
 立即注册
查看: 1356|回复: 14

EEPROM 擦除数据 不能跳出CASE语句 | 已解决

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:115
  • 最近打卡:2025-03-28 11:36:20

8

主题

42

回帖

384

积分

中级会员

积分
384
发表于 2024-2-6 09:00:45 | 显示全部楼层 |阅读模式
case 5:
       EEPROM_SectorErase(EEPROM_ADD_1);
       printf("Erase_j ok \r\n");
       break;


串口打印的数据:
[08:39:34.623]接收←Erase_j okErase_j ok
[08:39:34.849]接收←Erase_j okErase_j ok
[08:39:34.986]接收←Erase_j okErase_j ok
....
一直打印,为何执行完一次擦除不跳出case语句(stc8g1k08)

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-2-6 09:07:54 | 显示全部楼层
放代码要放全0.0  别让我们猜

感觉像是你这个判断条件没有被改变,循环里一直在执行
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:115
  • 最近打卡:2025-03-28 11:36:20

8

主题

42

回帖

384

积分

中级会员

积分
384
发表于 2024-2-6 09:25:30 | 显示全部楼层
                        switch (g_card_cnt)
                        {
                                case 3:
                                        if(j_card[0]==0 && j_card[1]==0 && j_card[2]==0 && j_card[3]==0 && j_card[4]==0 &&  
                                                 j_card[5]==0 && j_card[6]==0 && j_card[7]==0 && j_card[8]==0 && j_card[9]==0 )
                                        {
                                                set_j_card();
                                        }
                                                break;
                                case 5:
                                                EEPROM_SectorErase(EEPROM_ADD_1);
                                                printf("Erase_j ok \r\n");
                                                break;
                                default:
                                                break;
                        }               
g_card_cnt 是刷卡的次数,刷一次变一下
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-2-6 09:41:09 | 显示全部楼层
lier378*** 发表于 2024-2-6 09:25
switch (g_card_cnt)
                        {
                                case 3:

那你这个,,,不刷卡不就一直是g_card_cnt==5 么 一直走这个分支不是也正常么
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:115
  • 最近打卡:2025-03-28 11:36:20

8

主题

42

回帖

384

积分

中级会员

积分
384
发表于 2024-2-6 09:47:26 | 显示全部楼层
但是 case3语句 完成时,直接break跳转了,case 5语句 执行时 g_card_cnt自加1,它也跳转不出去,一直擦除
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-2-6 10:21:44 | 显示全部楼层
lier378*** 发表于 2024-2-6 09:47
但是 case3语句 完成时,直接break跳转了,case 5语句 执行时 g_card_cnt自加1,它也跳转不出去,一直擦除 ...

不应该,,应该不会是case这里的问题,,感觉可能是别的地方又把这个条件改成5  
你可以尝试把其他所有程序都 注释掉,,只留下这个switch 这里,,在测试一下,,
程序应该正确烧录了把
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-2-6 10:23:50 | 显示全部楼层
lier378*** 发表于 2024-2-6 09:47
但是 case3语句 完成时,直接break跳转了,case 5语句 执行时 g_card_cnt自加1,它也跳转不出去,一直擦除 ...

你要是说在case 5 里面加入了g_card_cnt 自增  如果没有其它地方改变这个g_card_cnt变量 那就永远不会再进case5 所以要么是应该还有别的地方改变了这个变量。。要么就是程序烧写的时候还是原来的程序
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-2-6 10:24:57 | 显示全部楼层
还有如果这个单片机支持调试的话 debug看看 你的变量是怎么变化的
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
8058
QQ
发表于 2024-2-6 10:58:41 | 显示全部楼层
串口一直打印 g_card_cnt 这个变量的数值看一下呗
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:453
  • 最近打卡:2025-05-02 08:15:40
已绑定手机

13

主题

1257

回帖

2975

积分

金牌会员

积分
2975
发表于 2024-2-6 11:13:10 | 显示全部楼层
还有一种可能是:g_card_cnt=5时进入Case 5执行EEPROM_SectorErase(EEPROM_ADD_1),但擦除过程事件很长,擦除过程是需要关闭其他中断的,这期间你刷卡不起作用,擦除完成后你还没来得及刷卡又进入了case 5。
最好能贴上你的代码,否则大家只能猜
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 08:58 , Processed in 0.143780 second(s), 113 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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