xxm 发表于 2023-8-30 15:38:54

第三方mcu给stc8g1k17a进行ISP下载



如图,问题出现在第三步,准备阶段,收到的数据是00 00 所以超时退出了,请教一下有遇到同样问题的吗?如何解决?

乘风飞扬 发表于 2023-8-31 10:52:03

超时计数器 TimeOut 是在1ms中断里面递减,100ms才减1:

//1ms定时器中断服务程序
void tm0(void) interrupt 1
{
    static BYTE Counter100;
   
    f1ms = TRUE;
    if (Counter100-- == 0)
    {
      Counter100 = 100;
      if (TimeOut) TimeOut--;
    }
}
而在发送命令函数 CommSend 后面会进行串口通信参数初始化,TimeOut =20 也就是说2秒钟才会超时:
//串口通讯初始化
void CommInit(void)
{
    UartRecvStep = 0;
    TimeOut = 20;
    UartReceived = FALSE;
}就算接收了2个00也不至于要用2秒钟,你对照一下例程,是不是哪里没有设置好,或者被你修改了。

xxm 发表于 2023-8-31 13:05:11

乘风飞扬 发表于 2023-8-31 10:52
超时计数器 TimeOut 是在1ms中断里面递减,100ms才减1:

而在发送命令函数 CommSend 后面会进行串口通信参 ...

是我表述有问题,CommSend 发送数据没问题,但接收到的数据不对,发送完,接着接收到2个数据00,TimeOUT=0后,才超时退出

乘风飞扬 发表于 2023-8-31 15:51:18

xxm 发表于 2023-8-31 13:05
是我表述有问题,CommSend 发送数据没问题,但接收到的数据不对,发送完,接着接收到2个数据00,TimeOUT= ...

准备时有进行波特率调整吗?
    //准备
    TH1 = HIBYTE(BR(MAXBAUD));
    TL1 = LOBYTE(BR(MAXBAUD));

xxm 发表于 2023-8-31 16:05:35

乘风飞扬 发表于 2023-8-31 15:51
准备时有进行波特率调整吗?

调整波特率试过了,也不行

郭耀宗 发表于 2025-2-17 14:11:49

请教一下,楼主解决了吗,我也遇到了相似的问题,发送准备命令后单片机无回复,超时后退出

神农鼎 发表于 2025-2-17 14:18:30











页: [1]
查看完整版本: 第三方mcu给stc8g1k17a进行ISP下载