转ST和AVR时都没有系统的看过相关文档,都是根据项目,拿到datasheet,备好工具就开始了,看得最多的就是feature和pins,所以经常在一些细节上疏忽了。在经历过惨痛的教训后,总结出来一些。。。。
1. 通过ISP给Tiny25下载程序时发现内置的EEPROM的数据全部被清掉,重置为0xFF了。经过多次实践,可以这样说:给AVR单片机下载程序时,内部EEPROM的数据全部会被重置,所以,如果想往EEPROM烧些初始化值的话,最好的方式是定义个.eeprom段,在烧完FLASH程序后再将生成的eep文件烧到EEPROM中去,修改Fuse和LockBits是不影响EEPROM数据的。
2. Tiny5的A/D引脚如果悬浮,那么该A/D引脚的AD电压就会受到其他引脚电压的影响。所以,在使用A/D模块时,确保每个A/D引脚都不是悬浮状态,不用的引脚可以上拉或者下拉,这一原则不仅对A/D引脚,对其他数字引脚也应该如此处理,不留悬浮引脚,减少隐患,减少EMI。
3. 打开AVR单片机的LockBits后,再读FLASH程序和EEPROM数据都会是FF,但可以重新给FLASH下载程序,下载程序后,LockBits自动清掉,默认是关闭的。
扩展阅读:单片机学习中常见问题