找回密码
 立即注册
查看: 124|回复: 2

汇编下使用CDC库遇到软复位死机情况

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:244
  • 最近打卡:2025-05-01 15:50:20

49

主题

129

回帖

1361

积分

金牌会员

积分
1361
发表于 2024-12-16 11:26:50 | 显示全部楼层 |阅读模式

正在调试汇编下使用STC的CDC库。遇到问题是:
一旦运行软件复位语句:IAP_CONTR = 0x20
整个系统就锁死了,必须关闭电源再打开重新开机。
之前发帖是在C编程下遇到这个问题,STC官方回复:
USBCON = 0x00; //清除USB设置
USBCLK = 0x00;
IRC48MCR = 0x00;

delay_ms(10);
IAP_CONTR = 0x20;   //软件复位

按上述方法解决了这个问题。可是现在在汇编下,使用下述语句:
#include"AI8H.H"

IRC48    XDATA  0FE07H

STC的CDC官方汇编语句

我们的汇编程序语句

SREST:
      CLR  A                          ; 1
      MOV  DPTR, #USBCON              ; 3
      MOVX @DPTR, A                   ; 1
      MOV  DPTR, #USBCLK              ; 3
      MOVX @DPTR, A                   ; 1
      MOV  DPTR, #IRC48               ; 3
      MOVX @DPTR, A                   ; 1

	  LCALL Delay5ms()                ;延时5ms
	  LCALL Delay5ms()                ;延时5ms
      MOV   IAP_CONTR, #20H           ;*软件复位软件复位  3   
	  RET                                      ; 20

上面是软复位语句,应该是按STC官方提供的解决办法。可是软复位执行了这段语句,还是出现完全死机情况。不知原因?
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-12-16 11:40:07 | 显示全部楼层
IAP_CONTR = 0x60 呢?
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:244
  • 最近打卡:2025-05-01 15:50:20

49

主题

129

回帖

1361

积分

金牌会员

积分
1361
发表于 2024-12-16 18:45:48 | 显示全部楼层

好。再试试!

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 11:12 , Processed in 0.261007 second(s), 64 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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