21cnsound 发表于 2024-1-23 11:38
难道不需要按P3.2吗?这个是怎么实现的?
软复位
jwd 发表于 2024-1-26 08:02
软复位
多谢回复。
我想了解的已经得到答复:
软复位后进入ISP程序后,如果软复位标识为1,则不再检查P3.2状态。
只对支持USB-HID下载的单片机
已验证,代码完美运行
奇怪,为何我测试不能用呢?检测串口在下载前根本没有发@STCISP#
大佬好,用无线蓝牙串口下载,一直显示通信超时,请问有什么思路吗啊?蓝牙的波特率已设置为115200
{:5_332:}
好办法,学习...
康辉55AA 发表于 2023-12-28 16:11
我把这个功能移植到STC8G1K08-8PIN上面,并且整合到我的串口通讯协议中,很简单,也很好用。
...
一直以为我的8g1k08不行,现在看来也行
又是失眠学这个,冲哥布置的作业
原样照抄版主的代码,严格按步骤编译程序,另外焊接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