新手上路
- 积分
- 43
- 金钱
- 43
- 注册时间
- 2019-6-11
- 在线时间
- 12 小时
|
void Section_Write(u32 addr,u8 *buffer,u16 Size)
{
u16 i=0;
Section(addr);//Ïè2á3y
EWSR();//ê1ÄüD′×′쬼Ä′æÆ÷
WREN();//D′ê1Äü
CE_H_L=0;
SPI_SendByte(0xAD);
SPI_SendByte((addr&0xFFFFFF)>>16);
SPI_SendByte((addr&0xFFFF)>>8);
SPI_SendByte(addr&0xFF);
SPI_SendByte(buffer[0]);
SPI_SendByte(buffer[1]);
CE_H_L=1;
i=0;
while(i<Size)
{
delay_us(10);
CE_H_L=0;
SPI_SendByte(0xAD);
SPI_SendByte(buffer[i++]);
SPI_SendByte(buffer[i++]);
CE_H_L=1;
}
delay_us(10);
WRDI();//íË3öAAIÄ£ê½
BUSY();
}
上面的方式读写就正常了,但是和时序图不符,问题出在I变量的循环次数,地址后数组0和1两个写入一定要重写不然就会不对
假如I=2,数据为01 02 03 04 05 06 写入,读取到是 03 04 05 06 ff ff,这样是符合时序图的,但是数据不对
如果I为0,数据为01 02 03 04 05 06 写入,读取到是 01 02 03 04 05 06,这样不符合时序图的,但是数据对
请用过的大佬指教
|
|