[ZLG-ARM] 请教关于NOR FLASH的读写

[复制链接]
2467|1
 楼主| xkleee 发表于 2007-8-5 15:47 | 显示全部楼层 |阅读模式
将周工的SMARTARM2200上的CPU&nbsp;PACK换成LPC2214,BANK0,BANK1分别接了一片SST39VF1601,程序放在LPC2214片内RAM中运行,工程模板使用2100,在应用程序中增加了对总线的配置,但无法读写FLASH,请各位大侠帮个忙!程序如下:<br />/****************************************************************************<br />*&nbsp;文&nbsp;件&nbsp;名:main.c<br />*&nbsp;功&nbsp;&nbsp;&nbsp;&nbsp;能:对SST39VF160进行全片擦除,然后写两字节数据到芯片0地址,再读出来校验,<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;若校验通过则蜂鸣器响一声,否则不断地蜂鸣报警。<br />*&nbsp;说&nbsp;&nbsp;&nbsp;&nbsp;明:将跳线器JP4短接,JP7断开。<br />****************************************************************************/<br />#include&nbsp;&quot;config.h&quot;<br /><br />#define&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BEEPCON&nbsp;&nbsp;1&lt&lt7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;P0.7引脚控制B1,低电平蜂鸣<br />#define&nbsp;&nbsp;FLASH_ADDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x81000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;FLASH的起始地址(分配为Bank1块)<br /><br />//&nbsp;转换地址。将要发送给SST39VF160的地址值进行转换,以便于LPC2210输出。<br />//&nbsp;由于SST39VF160的A0是与LPC2210的A1相连,所以addr要左移1位。<br />#define&nbsp;&nbsp;GetAddr(addr)&nbsp;&nbsp;&nbsp;&nbsp;(volatile&nbsp;uint16&nbsp;&nbsp;*)(FLASH_ADDR|(addr&lt&lt1))<br /><br />#define&nbsp;BCFG_DEF&nbsp;0x10000400<br />#define&nbsp;IDCY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(0x00&lt&lt0)<br />#define&nbsp;WST1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(0x01&lt&lt5)<br />#define&nbsp;WST2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(0x01&lt&lt11)<br />#define&nbsp;BCFG3_SET&nbsp;(BCFG_DEF|IDCY|WST1|WST2)<br /><br />#define&nbsp;IDCFS&nbsp;&nbsp;&nbsp;(0x01&lt&lt0)<br />#define&nbsp;WST1FS&nbsp;&nbsp;&nbsp;(0x03&lt&lt5)<br />#define&nbsp;WST2FS&nbsp;&nbsp;&nbsp;(0x03&lt&lt11)<br />#define&nbsp;BCFG_FS&nbsp;&nbsp;(BCFG_DEF|IDCFS|WST1FS|WST2FS)<br /><br />/****************************************************************************<br />*&nbsp;名&nbsp;&nbsp;&nbsp;&nbsp;称:DelayNS()<br />*&nbsp;功&nbsp;&nbsp;&nbsp;&nbsp;能:长软件延时。<br />*&nbsp;入口参数:dly&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;延时参数,值越大,延时越久<br />*&nbsp;出口参数:无<br />****************************************************************************/<br />void&nbsp;&nbsp;DelayNS(uint32&nbsp;&nbsp;dly)<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint32&nbsp;&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(;&nbsp;dly&gt0;&nbsp;dly--)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;&nbsp;i&lt5000;&nbsp;i++);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /><br /><br />/****************************************************************************<br />*&nbsp;名&nbsp;&nbsp;&nbsp;&nbsp;称:WordProgram()<br />*&nbsp;功&nbsp;&nbsp;&nbsp;&nbsp;能:半字(16位)数据编程。<br />*&nbsp;入口参数:Addr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;编程地址(SST39VF160内部地址)&nbsp;&nbsp;&nbsp;&nbsp;<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;编程数据<br />*&nbsp;出口参数:返回TRUE表示操作成功,返回FALSE表示操作失败<br />****************************************************************************/<br />uint8&nbsp;&nbsp;WordProgram(uint32&nbsp;Addr,&nbsp;uint16&nbsp;Data)&nbsp;<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;volatile&nbsp;uint16&nbsp;&nbsp;*ip;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint16&nbsp;&nbsp;temp1,temp2;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;ip&nbsp;=&nbsp;GetAddr(0x5555);&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;转换地址0x5555<br />&nbsp;&nbsp;&nbsp;&nbsp;ip[0]&nbsp;=&nbsp;0xaaaa;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;第一个写周期,地址0x5555,数据0xAA<br />&nbsp;&nbsp;&nbsp;&nbsp;ip&nbsp;=&nbsp;GetAddr(0x2aaa);<br />&nbsp;&nbsp;&nbsp;&nbsp;ip[0]&nbsp;=&nbsp;0x5555;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;第二个写周期,地址0x2aaa,数据0x55<br />&nbsp;&nbsp;&nbsp;&nbsp;ip&nbsp;=&nbsp;GetAddr(0x5555);<br />&nbsp;&nbsp;&nbsp;&nbsp;ip[0]&nbsp;=&nbsp;0xa0a0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;第三个写周期,地址0x5555,数据0xA0<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;ip&nbsp;=&nbsp;(volatile&nbsp;uint16&nbsp;&nbsp;*)(FLASH_ADDR|(Addr&0x1FFFFF));<br />&nbsp;&nbsp;&nbsp;&nbsp;*ip&nbsp;=&nbsp;Data;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;第四个写周期,地址Addr,数据Data<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;等待操作完成&nbsp;(若编程操作没有完成,每次读操作DQ6会跳变)<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp1&nbsp;=&nbsp;*ip;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp2&nbsp;=&nbsp;*ip;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(temp1&nbsp;==&nbsp;temp2)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(temp1&nbsp;!=&nbsp;Data)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(FALSE);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(TRUE);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;return(TRUE);<br />}<br /><br />/****************************************************************************<br />*&nbsp;名&nbsp;&nbsp;&nbsp;&nbsp;称:ChipErase()<br />*&nbsp;功&nbsp;&nbsp;&nbsp;&nbsp;能:芯片全片擦除。<br />*&nbsp;入口参数:无<br />*&nbsp;出口参数:返回TRUE表示操作成功,返回FALSE表示操作失败<br />****************************************************************************/<br />uint8&nbsp;&nbsp;ChipErase(void)&nbsp;<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;volatile&nbsp;uint16&nbsp;&nbsp;*ip;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint16&nbsp;&nbsp;temp1,temp2;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;ip&nbsp;=&nbsp;GetAddr(0x5555);<br />&nbsp;&nbsp;&nbsp;&nbsp;ip[0]&nbsp;=&nbsp;0xaaaa;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;第一个写周期,地址0x5555,数据0xAA<br />&nbsp;&nbsp;&nbsp;&nbsp;ip&nbsp;=&nbsp;GetAddr(0x2aaa);<br />&nbsp;&nbsp;&nbsp;&nbsp;ip[0]&nbsp;=&nbsp;0x5555;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;第二个写周期,地址0x2aaa,数据0x55<br />&nbsp;&nbsp;&nbsp;&nbsp;ip&nbsp;=&nbsp;GetAddr(0x5555);<br />&nbsp;&nbsp;&nbsp;&nbsp;ip[0]&nbsp;=&nbsp;0x8080;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;第三个写周期,地址0x5555,数据0x80<br />&nbsp;&nbsp;&nbsp;&nbsp;ip&nbsp;=&nbsp;GetAddr(0x5555);<br />&nbsp;&nbsp;&nbsp;&nbsp;ip[0]&nbsp;=&nbsp;0xaaaa;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;第四个写周期,地址0x5555,数据0xAA<br />&nbsp;&nbsp;&nbsp;&nbsp;ip&nbsp;=&nbsp;GetAddr(0x2aaa);<br />&nbsp;&nbsp;&nbsp;&nbsp;ip[0]&nbsp;=&nbsp;0x5555;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;第五个写周期,地址0x2aaa,数据0x55<br />&nbsp;&nbsp;&nbsp;&nbsp;ip&nbsp;=&nbsp;GetAddr(0x5555);<br />&nbsp;&nbsp;&nbsp;&nbsp;ip[0]&nbsp;=&nbsp;0x1010;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;第六个写周期,地址0x5555,数据0x10<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;等待操作完成&nbsp;(若擦除操作没有完成,每次读操作DQ6会跳变)<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp1&nbsp;=&nbsp;*ip;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp2&nbsp;=&nbsp;*ip;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(temp1&nbsp;==&nbsp;temp2)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(temp1&nbsp;!=&nbsp;0xffff)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(FALSE);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(TRUE);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;return(TRUE);<br />}<br /><br /><br />/****************************************************************************<br />*&nbsp;名&nbsp;&nbsp;&nbsp;&nbsp;称:main()<br />*&nbsp;功&nbsp;&nbsp;&nbsp;&nbsp;能:SST39VF160擦除、编程操作。<br />****************************************************************************/<br />int&nbsp;&nbsp;main(void)<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;&nbsp;err&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;volatile&nbsp;uint16&nbsp;&nbsp;*addr;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL0&nbsp;=&nbsp;0x00000000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置管脚连接GPIO&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL2=0x0f814914;<br />&nbsp;&nbsp;&nbsp;//BCFG0=BCFG_FS;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;BCFG1=BCFG_FS;&nbsp;<br />&nbsp;&nbsp;//BCFG2=BCFG3_SET;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;IO0DIR&nbsp;=&nbsp;BEEPCON;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置I/O为输出<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;ChipErase();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;FLASH全片擦除<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;校验是否真正擦除。若发现有非0xFFFF的存储单元,设置err=1<br />&nbsp;&nbsp;&nbsp;&nbsp;addr&nbsp;=&nbsp;(volatile&nbsp;uint16&nbsp;&nbsp;*)FLASH_ADDR&nbsp;+&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;&nbsp;i&lt100;&nbsp;i++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(0xFFFF&nbsp;!=&nbsp;(*addr))&nbsp;err&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addr++;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;WordProgram(0x0,&nbsp;0x55AA);//&nbsp;向FLASH的0地址写入0x55AA<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;addr&nbsp;=&nbsp;(volatile&nbsp;uint16&nbsp;&nbsp;*)FLASH_ADDR&nbsp;+&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(0x55AA&nbsp;!=&nbsp;(*addr))&nbsp;err&nbsp;=&nbsp;1;//&nbsp;读出校验,若数据错误则设置err=1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(0==err)&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IO0CLR&nbsp;=&nbsp;BEEPCON;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;BEEPCON&nbsp;=&nbsp;0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DelayNS(20);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IO0SET&nbsp;=&nbsp;BEEPCON;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;BEEPCON&nbsp;=&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DelayNS(20);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(1)&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IO0CLR&nbsp;=&nbsp;BEEPCON;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;BEEPCON&nbsp;=&nbsp;0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DelayNS(10);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IO0SET&nbsp;=&nbsp;BEEPCON;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;BEEPCON&nbsp;=&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DelayNS(10);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;return(0);<br />}<br /><br />麻烦周工及各位大侠帮下忙,谢谢!<br /><br />
 楼主| xkleee 发表于 2007-8-5 15:49 | 显示全部楼层

接上

跳线设置无误,好像可以擦除,但写入数据后再读出来为FFFF
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

62

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部