第三方mcu给stc8g1k17a进行ISP下载
如图,问题出现在第三步,准备阶段,收到的数据是00 00 所以超时退出了,请教一下有遇到同样问题的吗?如何解决?
超时计数器 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秒钟,你对照一下例程,是不是哪里没有设置好,或者被你修改了。
乘风飞扬 发表于 2023-8-31 10:52
超时计数器 TimeOut 是在1ms中断里面递减,100ms才减1:
而在发送命令函数 CommSend 后面会进行串口通信参 ...
是我表述有问题,CommSend 发送数据没问题,但接收到的数据不对,发送完,接着接收到2个数据00,TimeOUT=0后,才超时退出 xxm 发表于 2023-8-31 13:05
是我表述有问题,CommSend 发送数据没问题,但接收到的数据不对,发送完,接着接收到2个数据00,TimeOUT= ...
准备时有进行波特率调整吗?
//准备
TH1 = HIBYTE(BR(MAXBAUD));
TL1 = LOBYTE(BR(MAXBAUD));
乘风飞扬 发表于 2023-8-31 15:51
准备时有进行波特率调整吗?
调整波特率试过了,也不行 请教一下,楼主解决了吗,我也遇到了相似的问题,发送准备命令后单片机无回复,超时后退出
页:
[1]