|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2014-12-8 09:55:44
|
显示全部楼层
上传一下SPI的那一部分。其他的跟官方的大同小异,就不上传了,可以到官方那下载。
注意:LD_A0那一句,那个在官方里面是没有提到的,资料也说那个是并行的。
但是,没那句真的就不行。LZ也是一时脑袋发热试了一下,发现神奇的可以了。
- void SPI_WriteByte(unsigned char Data)
- {
- unsigned char i;
- LD_A0 = 1; //这个卡了好几天,没这一句是不行的。资料里面这个是并行的数据和地址选择,串行没用
- for(i=0;i<8;i++)
- {
- if(Data & 0x80)
- {
- LD_SDI = 1;
- }
- else LD_SDI = 0;
- delay();
- LD_SDCK = 0;
- delay();
- Data <<= 1;
- LD_SDCK = 1;
- }
- }
- unsigned char SPI_ReadByte(void)
- {
- unsigned char i;
- unsigned char Data = 0;
- LD_A0 = 0; //SPI也要这一句。我试出来的。 (妈蛋,官方给的SPI驱动资料没有这一句)
- for(i=0;i<8;i++)
- {
- Data <<= 1;
- if(LD_SDO)
- {
- Data |= 0x01;
- }
- delay();
- LD_SDCK = 0;
- delay();
- LD_SDCK = 1;
- }
- return Data;
- }
- void LD3320_Write(unsigned char Addr,unsigned char Data)
- {
- unsigned char Com = 0x04;
- LD_SPIS = 0;
- LD_SCS = 0;
- delay();
- SPI_WriteByte(Com);
- SPI_WriteByte(Addr);
- SPI_WriteByte(Data);
- delay();
- LD_SCS = 1;
- }
- unsigned char LD3320_Read(unsigned char Addr)
- {
- unsigned char Com = 0x05;
- unsigned char Data = 0;
- LD_SPIS = 0;
- LD_SCS = 0;
- delay();
- SPI_WriteByte(Com);
- SPI_WriteByte(Addr);
- Data = SPI_ReadByte();
- LD_SCS = 1;
- delay();
- return Data;
- }
复制代码
|
|