USB-CDC执行IAP_CONTR=0x60为什么不会重启
本帖最后由 xxkj2010 于 2023-1-14 17:58 编辑请教:STC8H启用USB转虚拟串口功能,执行IAP_CONTR=0x60;后为什么不会重启,且再也无法接收PC发来的数据?
代码根据STC8H8K64U-DEMO-CODE\61-CDC(Communication Device Class)协议范例进行修改。
就是在主程序中设置每5秒执行IAP_CONTR=0x60;
STC-ISP工具上任何提示也没有,串口号也不变,只是单片机有点动静(外接的数码管会闪动一下)
用原生串口(串口1或2)软启动,实现自动烧写功能却完全正常。
STC8H8K64U在等待USB下载了 神农鼎 发表于 2023-1-14 20:02
STC8H8K64U在等待USB下载了
没有,因为CDC串口号没有变化 你拍个视频发上来,明天还有研发上班,马上放春节假了
我是这样测试 执行IAP_CONTR=0x60 的:
例程:STC8H8K64U-DEMO-CODE\61-CDC(Communication Device Class)协议范例
芯片:STC8H8K64U-45MHz-TSSOP20
主频:24MHz
大循环中改为每10秒重启一次:
while (1)
{
delay_ms(10000); //
IAP_CONTR=0x60;//重启
}
结果:STC-ISP中的串口号不会变回 STC USB Writer (HID1)
现在知道怎样解决这个问题,就是不知道是什么原因。
xxkj2010 发表于 2023-1-16 09:00
我是这样测试 执行IAP_CONTR=0x60 的:
例程:STC8H8K64U-DEMO-CODE\61-CDC(Communication Device Class) ...
复位之前,先清除USB设置试试。参考这个按键进入下载模式的配置:
void KeyResetScan(void)
{
if(!P32)
{
if(!Key_Flag)
{
Key_cnt++;
if(Key_cnt >= 1000) //连续1000ms有效按键检测
{
Key_Flag = 1; //设置按键状态,防止重复触发
USBCON = 0x00; //清除USB设置
USBCLK = 0x00;
IRC48MCR = 0x00;
delay_ms(10);
IAP_CONTR = 0x60; //触发软件复位,从ISP开始执行
while (1);
}
}
}
else
{
Key_cnt = 0;
Key_Flag = 0;
}
}
我只运行:USBCON = 0x00; 及稍微延时就执行IAP_CONTR = 0x60;
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=720&extra=
页:
[1]