按照ATmega128芯片手册很快的编写了程序(有了16的基础,编写不是太难)。编译,连接,生成HEX文件,ISP烧写,打开串口调试助手……满心期待的等待出现效果,但是它像死掉了一样,一动不动。开始还以为是硬件连接不好,就逐渐排查硬件问题,发现硬件电路毫无问题。这就郁闷了,怎么就不好使呢?我开始怀疑是我自己的代码没有写对。到网上搜了一堆别人写的串口程序,希望找到解决之路,不过还是不好用。
无意之中把一个别人做好的HEX烧到片子上,效果出现了,它又神奇的活了过来。我把对应的代码粘贴到C文件,加载到工程,编译,生成HEX文件,烧写到片子还是不好用。我这就郁闷了,一样的程序,一样的编译器,生成的HEX文件,一个好用,一个不好用,这样我情何以堪呢?
伟大的柱哥出现了,随意的瞥了两眼,来了句“看看你的编译器设置对了吗?”
我迅速打开Project--Option,弹出对话框,找到Target---Device Configuration选择对应的芯片型号,OK关闭对话框。再次编译,烧写,如预想的一样,它动了。
从来没有想到是编译器的问题,一方面是自己还需要学习的很多,一方面是自己对问题看到太浅了。这次的问题让我反思,工欲善其事必先利其器,连工具都没有充分的了解,怎么能让工具发挥它最大的作用呢?怎么才能善其事呢?引以为戒!
本文分享了从ATmega16转战ATmega128开发过程中遇到的串口调试难题及解决过程。作者在尝试移植串口程序时遇到了无法启动的问题,最终发现是由于编译器设置不当导致。
1552

被折叠的 条评论
为什么被折叠?



