zsb7739 发表于 2025-1-14 14:38:05

我的USB-CDC不停电下载还是不行, 求助!!(已解决)

这是我录的屏, 已经下载了CDC的程序, 而且是在论坛上下载的, 仅仅在keil中修改了单片机的型号(我用的型号是STC32F12K54), 代码如下

#include "stc32g.h"
#include "stc32_stc8_usb.h"

char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";

void main()
{
    P_SW2 |= 0x80;
   
    P0M1 = 0x00;   P0M0 = 0x00;
    P1M1 = 0x00;   P1M0 = 0x00;
    P2M1 = 0x00;   P2M0 = 0x00;
    P3M1 = 0x00;   P3M0 = 0x00;
    P4M1 = 0x00;   P4M0 = 0x00;
    P5M1 = 0x00;   P5M0 = 0x00;
    P6M1 = 0x00;   P6M0 = 0x00;
    P7M1 = 0x00;   P7M0 = 0x00;

    P3M0 &= ~0x03;
    P3M1 |= 0x03;
   
    IRC48MCR = 0x80;
    while (!(IRC48MCR & 0x01));
   
    USBCLK = 0x00;
    USBCON = 0x90;
   
    usb_init();                                     //USB CDC 接口配置
   
    IE2 |= 0x80;                                    //使能USB中断
    EA = 1;
   
    while (DeviceState != DEVSTATE_CONFIGURED);   //等待USB完成配置

    while (1)
    {
      if (bUsbOutReady)
      {
            USB_SendData(UsbOutBuffer,OutNumber);   //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
            
            usb_OUT_done();
      }
    }
}
通过CDC助手可以正常的和电脑进行通讯, 是不是就可以证明, 硬件电路是没有问题的?! 但就是一点下载, 竟连单片机型号都识别不出来, 求高手解惑~~~!!!!
attach://80591.mp4
在视频的刚开始我插上USB线以后, 就再也没有动过电路板, 电路板是最小系统,外加了两个指示灯
CDC相关和晶振有关系吗? 刚发现, 这段代码没有选择晶振
问题已解决, 谢谢2楼3楼的兄弟!!
经过反复观看视频, 终于把这个过程USB-CDC的过程弄清楚了

所谓的这个"不停电下载"这个叫法, 是一个泛泛的叫法,它不等同于USB-CDC, 之前我一直是把两者画等号的.
其实这种不停电的下载方法, 只是利用了CDC的这种通讯, , 大致过程如下:
1. STC软件通过CDC通讯向STC单片机发送口令(@STCISP#)让STC片子重启,
2. STC单片机重启后, 自动切换到HID口,
3. STC软件再通过HID口下载程序到STC芯片
4. STC重新再切回到USB-CDC口
所以, 根据以上4条, 得把这三个勾都选上


我之所以失败, 完全是不理解这个过程, 之前一直以为所有操作全权交给USB-CDC口去操作
至此, 不掉电下载完结.

每天不一YOUNG 发表于 2025-1-14 15:18:02

《8051U深度入门到32位51大型实战视频》,【免费 + 包邮 送】实验箱@Ai8051U,100万套
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=11902
(出处: 国芯技术交流网站)

参考冲哥的视频学习第四集 不停电下载

国学芯用 发表于 2025-1-14 15:48:59

我这个是用AI8051U测试的   也是兼容的   里面还有视频您参考一下

zsb7739 发表于 2025-1-14 16:09:25

感谢
页: [1]
查看完整版本: 我的USB-CDC不停电下载还是不行, 求助!!(已解决)