我把SL811HS映射到ARM的地址空间上,SL811HS和ARM 44b0x是这样连接的 SL811HS S3C44B0X nWR nWE nRD nOE nCS nGS4 A0 ADR0 nREST nREST M/S GND D0-D7 D0-D7
#define SL811H_ADDR (*(volatile BYTE *)0x08000000) #define SL811H_DATA (*(volatile BYTE *)0x08000001)
SL811HS的读写函数是: BYTE SL811Read(BYTE a) { SL811H_ADDR = a; return (SL811H_DATA); }
void SL811Write(BYTE a, BYTE d) { SL811H_ADDR = a; SL811H_DATA = d; }
main()函数里面与SL811hs相关的就是两句;
BYTE temp; SL811Write(0x40,0x88); temp=SL811Read (0x40);
0x40是sl811的存储器,0x88是测试数据。 读出的temp的值总是得到 temp=0x40;
如果换成: SL811Write(0x20,0x88); temp=SL811Read (0x20); 读出的temp的值总是得到 temp=0x20;
不知道什么原因。 望各位赐教,不胜感激!!