- 打卡等级:初来乍到
- 打卡总天数:3
- 最近打卡:2025-05-29 14:10:08
已绑定手机
新手上路
- 积分
- 40
|
我用8051u的列子串口读写EEPROM的读EEPROM一段,写进芯片调试出错,哪位大侠帮看看什么原因。
P0M1 = 0x00; P0M0 = 0x00; //ÉèÖÃΪ׼˫Ïò¿Ú
P1M1 = 0x00; P1M0 = 0x00; //ÉèÖÃΪ׼˫Ïò¿Ú
P2M1 = 0x00; P2M0 = 0x00; //ÉèÖÃΪ׼˫Ïò¿Ú
P3M1 = 0x00; P3M0 = 0x00; //ÉèÖÃΪ׼˫Ïò¿Ú
P4M1 = 0x00; P4M0 = 0x00; //ÉèÖÃΪ׼˫Ïò¿Ú
P5M1 = 0x00; P5M0 = 0x00; //ÉèÖÃΪ׼˫Ïò¿Ú
P6M1 = 0x00; P6M0 = 0x00; //ÉèÖÃΪ׼˫Ïò¿Ú
P7M1 = 0x00; P7M0 = 0x00; //ÉèÖÃΪ׼˫Ïò¿Ú
UART1_config(1); // Ñ¡Ôñ²¨ÌØÂÊ, 2: ʹÓÃTimer2×ö²¨ÌØÂÊ, ÆäËüÖµ: ʹÓÃTimer1×ö²¨ÌØÂÊ.
EA = 1; //ÔÊÐí×ÜÖжÏ
// PrintString1("AI8051UϵÁе¥Æ¬»úEEPROM²âÊÔ³ÌÐò£¬´®¿ÚÃüÁîÉèÖÃÈçÏÂ:\r\n"); //UART1·¢ËÍÒ»¸ö×Ö·û´®
// PrintString1("W 0x000040 1234567890 --> ¶Ô0x000040µØÖ·Ð´Èë×Ö·û1234567890.\r\n"); //UART1·¢ËÍÒ»¸ö×Ö·û´®
// PrintString1("R 0x000040 10 --> ¶Ô0x000040µØÖ·¶Á³ö10¸ö×Ö½ÚÄÚÈÝ.\r\n"); //UART1·¢ËÍÒ»¸ö×Ö·û´®
while(1)
{
delay_ms(1);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// EEPROM_SectorErase(addr); //²Á³ýÉÈÇø
// i = EEPROM_write_n(addr,&RX1_Buffer[11],j); //дN¸ö×Ö½Ú
while(1)
{ addr=0xFFFC00;
j=1;
// tmp=0xF0;
EEPROM_read_n(addr,tmp,j);
}
}
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
void EEPROM_read_n(u32 EE_address,u8 *DataAddress,u8 length)
{
IAP_ENABLE(); //ÉèÖõȴýʱ¼ä£¬ÔÊÐíIAP²Ù×÷£¬ËÍÒ»´Î¾Í¹»
IAP_READ(); //ËÍ×Ö½Ú¶ÁÃüÁÃüÁî²»Ðè¸Ä±äʱ£¬²»ÐèÖØÐÂËÍÃüÁî
do
{
IAP_ADDRE = (u8)(EE_address >> 16); //Ë͵ØÖ·¸ß×Ö½Ú£¨µØÖ·ÐèÒª¸Ä±äʱ²ÅÐèÖØÐÂË͵ØÖ·£©
IAP_ADDRH = (u8)(EE_address >> 8); //Ë͵ØÖ·ÖÐ×Ö½Ú£¨µØÖ·ÐèÒª¸Ä±äʱ²ÅÐèÖØÐÂË͵ØÖ·£©
IAP_ADDRL = (u8)EE_address; //Ë͵ØÖ·µÍ×Ö½Ú£¨µØÖ·ÐèÒª¸Ä±äʱ²ÅÐèÖØÐÂË͵ØÖ·£©
EEPROM_Trig(); //´¥·¢EEPROM²Ù×÷
/////////////////////////////////////////////////////////////////////////
while(CMD_FAIL)
{P0=0x66;
}
//////////////////////////////////////////////////////////////////////////////
*DataAddress = IAP_DATA; //¶Á³öµÄÊý¾ÝËÍÍù
EE_address++;
DataAddress++;
}while(--length);
DisableEEPROM();
}
|
|