本帖最后由 yanbin560 于 2014-9-29 13:58 编辑
各位前辈:我使用AN2295SW内的HCS08例程,写入MCU无法实现bootloader功能,调试后有些疑问,请前辈解惑:
例程中,在接收到PC发送的字符后,程序直接进入了ICGTRIM,进入该函数后,紧接着就是一句
MONRXD:
BRSET RXDBIT,RXDPORT,MONRXD ; WAIT FOR BREAK SIGNAL TO START
我对此的理解是如果接收到的字符不是“0x00”,则等待,但协议中说:如果PC发送0xFC后未正确收到MCU返回的0xFC,则会发送间隙字符,调整波特率,也就是MCU接收到PC发送的0XFC后,就直接进入等待状态,而PC因为未收到MCU反馈的0XFC,就发送了调整波特率的命令,这导致了波特率的错误调整,不知道理解是否正确?
通过发送特定字符,不断尝试,我将初始化中设置波特率的值做了改变,并将MCU校正波特率的函数ICGTRIM注释掉后,现在可以写入s19文件。
但这样一来,就没有了MCU调整波特率的功能,而且我内心认为例程是不会有这种错误,肯定是我认识的不对,所以请各位做过的前辈解惑,谢谢! |