作者:iamlaosong
为了查看程序运行情况,我尝试用串口把运行结果送到PC机上显示(用串口调试助手接收)。一般情况是程序烧好后,点击“start application”按钮执行用户程序,然后查看接收情况,结果发现用ATMEL的FLIP下载程序后,速率似乎被锁定了,用户程序中的串口初始化代码不起作用,我试了几个速率(9600,19200等)下载程序都是如此,按RESET键重启用户程序后,程序中的串口初始化代码才起作用,设成用户指定的速率。看来这个bootloader很厉害啊,可能会有一些不公开的指令。
此外还发现一个现象,我的板子用的是12M的晶振,9600的速率是无法达到的(误差太大,无法正常通信,必须用11.059M的晶振),只能设成2400的速率,但FLIP程序可以在9600的速率下和bootloade很好的沟通,不知道它是怎么达到的?难道又是非公开的指令?
本人在此环节费了很大的周折才搞清楚,开始没注意这个环节,结果总收不到正确的结果,接收时好时坏(有时按了reset,有时没按),代码也查了多遍找不到毛病,头都搞大了,最后偶然才发现是这么个情况,在此贡献出来,大家也少走点弯路。