No.98 作者:zaocan 邮件:zhliu2005@sohu.com ID:76328 登陆:1次 文章数:2篇 最后登陆IP: 最后登陆:2007/5/8 17:09:17 注册:2007/5/8 17:09:17 财富:100 发帖时间:2007/6/26 10:31:38 发贴者IP:124.90.22.0 标题:zaocan:疑问:在对stc89le58rd+的eeprom的读写过程中,有串口上的中断,读写完后单片机就工作异常 摘要:No.98疑问:在对stc89le58rd+的eeprom的读写过程中,有串口上的中断,读写完后单片机就工作异常 疑问:本人做的一个项目中,用到stc89le58rd+单片机,在对eeprom的读写过程中,有串口上的中断,读写完后单片机就工作异常 本人的eeprom的驱动是参考《stc89c51rc/rd+系列单片机手册》中36-43页,而且咨询过宏晶的技术支援,回馈为这手册适用于stc89le58rd+。 驱动如下: void read_eeprom(unsigned int dst,unsigned char * temp) { isp_addrh=((dst & 0xFFFF) > > 8); isp_addrl=((dst & 0xFF) ); ENTER_CRITICAL();//EA=0;// isp_contr=wait_time; isp_contr=(isp_contr|(0x80)); isp_cmd=isp_iap_byte_read; isp_trig=0x46; isp_trig=0xb9; _nop_(); _nop_(); *temp=isp_data; isp_contr=0x00; isp_cmd=0x00; // isp_trig=0x00; isp_addrh=0x00; // isp_addrl=0x00; // EXIT_CRITICAL();//EA=1;// } void write_eeprom(unsigned int dst,unsigned char ch) { isp_data=ch; isp_addrh=((dst & 0xFFFF) > > 8); isp_addrl=((dst & 0xFF) ); ENTER_CRITICAL();// ......
>>返回讨论的主题
|