xiao223 发表于 2026-4-19 10:14:41

AI8051U使用USB自动下载不成功

使用USB自动下载,AI8051U单片机无法复位到系统ISP运行。
#include "delay1ms.h"
#include "ai8051u.h"
#include "stc32_stc8_usb.h"
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";

void main(void)
{
        unsigned char x1 = 0;

        P_SW2 |= 0x80; // B7位写1,使能访问XFR

        P0M1 = 0x00;
        P0M0 = 0x00;
        P1M0 = 0xff;
        P1M1 = 0xff;
        P2M1 = 0x00;
        P2M0 = 0x00;
        P2 = 0x00;
        P3M1 = 0x00;
        P3M0 = 0x00;
        P4M1 = 0x00;
        P4M0 = 0x00;
        P5M1 = 0x00;
        P5M0 = 0x00;
        P6M1 = 0x00;
        P6M0 = 0x00;
        P7M1 = 0x00;
        P7M0 = 0x00;

        usb_init();       // USB CDC 接口配置
        IE2 |= EUSB; // 使能USB中断
        EA = 1;               // IE |= 0X80;

        while (1)
        {
        }
}

jwd 发表于 2026-4-19 10:42:47

你需要先按P32再上电,使用usb不停电下载过一次后才行

xiao223 发表于 2026-4-19 12:18:44

jwd 发表于 2026-4-19 10:42
你需要先按P32再上电,使用usb不停电下载过一次后才行
我已经下载过程序到单片机了,使用不停电下载不行,还试图通过手动到系统ISP,还是不行,不能复位到系统ISP中


                        USBCON = 0x00;
                        USBCLK = 0x00;
                        IRC48MCR = 0x00;

                        Delay1ms(20);
                        IAP_CONTR = 0x60;

soma 发表于 2026-4-19 20:13:53

8051U的ISP功能不受USB下载影响吧

ercircle 发表于 2026-4-19 20:58:02

直接使用usb库例程测试,先拿免费领的擎天柱核心板试:


https://www.stcaimcu.com/data/download/Library/STC_USB_LIBRARY.zip


xiao223 发表于 2026-4-20 10:38:26

ercircle 发表于 2026-4-19 20:58
直接使用usb库例程测试,先拿免费领的擎天柱核心板试:




秦天柱核心板是能软复位到系统ISP的,你给的代码还是不行,后面我自己解决了,用下面的代码模拟USB断开,就可以复位到系统ISP
                        P3M0 |= 0x03;
                        P3M1 |= 0x03;

                        P30 = 0;
                        P31 = 0;

                        IAP_CONTR = 0x60;

ercircle 发表于 2026-4-20 11:34:12

xiao223 发表于 2026-4-20 10:38
秦天柱核心板是能软复位到系统ISP的,你给的代码还是不行,后面我自己解决了,用下面的代码模拟USB断开, ...

是自己打的板子需要上面这段代码?

可以发下电路图pdf文件吗

xiao223 发表于 2026-4-20 22:29:02

这是我的电路图

yueguang3048 发表于 2026-4-24 15:30:12

检查你的ISP下载软件内 是否勾上了 《每次下载前都先发送自定义命令》

xiao223 发表于 2026-4-24 17:15:58

yueguang3048 发表于 2026-4-24 15:30
检查你的ISP下载软件内 是否勾上了 《每次下载前都先发送自定义命令》
该排查的都排查了,特意将char *USER_STCISPCMD = NULL;改掉了,现在只能以这种方式实现不停电下载,实际上不做任何修改,单片机是能复位的,但是就是不进系统ISP
                if (bUsbOutReady)
                {
                        if (strncmp(UsbOutBuffer, "@STCISP#", 8) == 0)
                        {
                              P3M0 |= 0x03;
                              P3M1 |= 0x03;

                              P30 = 0;
                              P31 = 0;
                              IAP_CONTR = 0x60;
                        }
                        usb_OUT_done();
                }
页: [1] 2
查看完整版本: AI8051U使用USB自动下载不成功