jwd 发表于 2024-1-26 08:02:47

21cnsound 发表于 2024-1-23 11:38
难道不需要按P3.2吗?这个是怎么实现的?

软复位

21cnsound 发表于 2024-1-26 08:40:02

jwd 发表于 2024-1-26 08:02
软复位
多谢回复。
我想了解的已经得到答复:
软复位后进入ISP程序后,如果软复位标识为1,则不再检查P3.2状态。
只对支持USB-HID下载的单片机

21cnsound 发表于 2024-1-27 15:48:33

已验证,代码完美运行

QIUYU 发表于 2024-3-12 07:59:20

奇怪,为何我测试不能用呢?检测串口在下载前根本没有发@STCISP#

dongyaozhang17 发表于 2024-4-12 21:45:38

大佬好,用无线蓝牙串口下载,一直显示通信超时,请问有什么思路吗啊?蓝牙的波特率已设置为115200

LoveAmanda 发表于 2024-4-13 06:35:09

{:5_332:}

sevencai 发表于 2024-4-18 23:28:02

好办法,学习...

vb2002 发表于 2024-5-23 23:09:27

康辉55AA 发表于 2023-12-28 16:11
我把这个功能移植到STC8G1K08-8PIN上面,并且整合到我的串口通讯协议中,很简单,也很好用。

...

一直以为我的8g1k08不行,现在看来也行

vb2002 发表于 2024-5-24 02:56:59

又是失眠学这个,冲哥布置的作业

垂柳工作室 发表于 2024-6-27 21:49:23

原样照抄版主的代码,严格按步骤编译程序,另外焊接stc8H8K64U 28脚芯片最小系统,下载hex文件,电脑系统提示不识别usb设备。无奈从系统之家下载win7旗舰版64位系统,重装电脑,依然不行。无奈,下载STC官方USB库函数,解压,单独拷贝STC_HID_INTERRUPT_LIBRARY目录下stc8h_hid_data_query_demo,keil打开工程文件,修改主程序为



#include "stc8h.h"
#include "stc32_stc8_usb.h"
void sys_init();
void DelayXms(int n);

char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";                      //设置自动复位到ISP区的用户接口命令

void main()
{
    sys_init();
    usb_init();
    EA = 1;

    while (1)
    {
      if( DeviceState != DEVSTATE_CONFIGURED )         //
                        continue;
                        if (bUsbOutReady)
                                {            
            usb_OUT_done();
      }
                                P2 = 0xF0;//测试用的,本人焊接最小系统附带8个LED灯
    }
}

void sys_init()
{
                P_SW2 = 0x80;
                P3M0 &= ~0x03,P3M1 |= 0x03;        //设置P3.0和P3.1高阻模式                   
                P2M0 &= 0x00,P2M1 &= 0x00;                //设置P2口驱动LED灯,测试用,跟不断电自动下载无关。
                   
    //设置USB使用的时钟源
    IRC48MCR = 0x80;    //使能内部48M高速IRC
    while (!(IRC48MCR & 0x01));//等待时钟稳定
}



下载后可行,唯一不足的就是编译出来的代码比较大,Program Size: data=44.3 xdata=192 const=137 code=4591
页: 1 2 3 [4] 5 6 7
查看完整版本: 用户自定义命令实现ISP不停电下载-串口命令模式-8H系列