1、该单片机没有定时器1
2、EEPROM写入数据之前需要先擦除,否则可能导致写入数据和读出的数据不同。
3、注意IO口的4种模式区别。
4、官方EEPROM(多字节连续操作并用串口送出数据)范例程序中存在错误,已经用红色字体标出:
/* 写数据进数据Flash存储器(EEPROM), 只在同一个扇区内写,保留同一扇区中不需修改的数据 */
/* begin_addr,被写数据Flash开始地址;counter,连续写多少个字节; array[],数据来源 */
BYTE write_flash_with_protect_in_one_sector(WORD begin_addr, WORD counter, BYTE array[])
{
WORD i = 0;
WORD in_sector_begin_addr = 0;
WORD sector_addr = 0;
WORD byte_addr = 0;
/* 判是否是有效范围,此函数不允许跨扇区操作 */
if(counter > USED_BYTE_QTY_IN_ONE_SECTOR)
return ERROR;
in_sector_begin_addr = begin_addr & 0x01ff;
/* 假定从扇区的第0个字节开始,到USED_BYTE_QTY_IN_ONE_SECTOR-1个字节结束,后面部分不用,程序易编写 */
if((in_sector_begin_addr + counter) > USED_BYTE_QTY_IN_ONE_SECTOR)
return ERROR;
/* 将该扇区