目前我在用cc1101模块做项目应用,基本的发送接受都完成了功能,目前采用的方式是,接收端:采用GDO2中断方式接收,中断触发方式是0x07方式, MCSM1 设置为0x3c ,即接收完下一个状态保持在接收状态,没有设置成0x30,进入空闲状态,单独一个标签或者两个标签的话接收都没问题,但是现在挂载了6个标签,发现接收端串口打印出来的数据出现了错位和乱码,但是基本的数据格式都是正确的,上边几条都是正常的,下边几条开始出现数据乱码
基本的发送数据格式都是正确的,0531xxxx是我的标签ID号码,我现在怀疑是不是我在读取cc1101接收缓存的时候数据被覆盖了,因为这个标签同步字都是0531,后四位是id号,但是我看官方文档,0x07方式,表明crc_ok正确,产生gdo2中断,我通过中断标志来读取cc1101缓存,按理说这不应该出现错误,那问题出在哪里呢?求教TI的大神解答。。。CC1101_RxBuf是我把数据读出来存放的buf,之后就合成一些参数把buf发送出来,我现在怀疑在一帧数据接收完后我在读缓存的时候CCxxx0_RXFIFO被覆盖了,不知道cc1101有没有这个问题???文档上也没有说明。。。
while(1)
{
if(CC1101_RxFlag == 1)
{
CC1101_RxFlag = 0;
halSpiReadBurstReg(CCxxx0_RXFIFO,CC1101_RxBuf,rfSettings.PKTLEN);
halSpiReadBurstReg(CCxxx0_RXFIFO,CC1101_AStatus,2);
}