CC1101_CS_L();
CC1101_ReadWriteByte(BURST_WRITE_FIFO);
for(i = 0;i 《 len;i ++)
{
CC1101_ReadWriteByte(pBuff);
}
CC1101_CS_H();
}
/*************************************************************************************************************************
* 函数 : void CC1101_ReadRxFIFO(u8 *pBuff,u8 len)
* 功能 : 读取接收缓冲区
* 参数 : pBuff:需要读取的数据缓冲区指针,len:需要读取的数据长度
* 返回 : 无
* 依赖 : 底层宏定义
* 作者 : [email protected]
* 时间 : 2014-01-01
* 最后修改时间 : 2014-01-01
* 说明 : 从接收FIFO读取数据
*************************************************************************************************************************/
void CC1101_ReadRxFIFO(u8 *pBuff,u8 len)
{
u16 i;
CC1101_CS_L();
CC1101_ReadWriteByte(BURST_READ_FIFO);
for(i = 0;i 《 len;i ++)
{
pBuff = CC1101_ReadWriteByte(0xff);
}
CC1101_CS_H();
}
//发送数据,将缓冲区数据全部发送出去
//一次最多64B,因为受到FIFO限制
void CC1101_RfDataSend(u8 *pBuff,u8 len)
{
CC1101_Command(CC1101_CMD_SIDLE); //退出当前模式
CC1101_Command(CC1101_CMD_SFTX); //清空发送缓冲区
CC1101_WriteTxFIFO(pBuff, len); //写入数据到发送缓冲区
CC1101_Command(CC1101_CMD_STX); //开始发送数据
while(!CC1101_GDO0);
while(CC1101_GDO0);
CC1101_Command(CC1101_CMD_SIDLE); //退出当前模式
}
//发送数据包
//每次发送最多65B,第一字节为长度,数据多将会重复发送
//可以发送任意大小
//CC1101PackSize有效数据包大小,0-64,也就是CC1101单次发送数据大小-1
void CC1101_RfDataSendPack(u8 *pBuff, u16 len)
{
u16 i,m,n,j;
m = len / (CC1101_DATA_LEN-1); //整数数据帧数量
n = len % (CC1101_DATA_LEN-1); //余数
//发送整数包
for(i = 0;i 《 m;i ++)
{
Delay_MS(1);
CC1101_Command(CC1101_CMD_SIDLE); //退出当前模式
CC1101_Command(CC1101_CMD_SFTX); //清空发送缓冲区
CC1101_CS_L(); CC1101_ReadWriteByte(BURST_WRITE_FIFO); (责任编辑:admin) |