本帖最后由 jinshaopu 于 2014-10-27 17:15 编辑
手里有4个cc1101的模块,准备自己做个小玩意
电路连接:
S52单片机供电5V
无线模块供电3.3V
SPI引脚直接连在P2口上
程序就是网上随便能下到的那个
因为接收程序上电之后就有数据(没发送的时候)考虑到可能是SPI的问题,就用串口写了下面一个读寄存器的测试来看SPI通信是不是正常。
看资料说这个返回结果应该是0x80 但是我的结果基本是乱码。可以确定是模拟SPI的问题,换了几个模块都不行。
while(1)
{
if (Cmd==0x01)
{
Cmd=0x00;
ros=1;
SendByte(0x01);
ros=0;
i=halSpiReadReg( CCxxx0_PARTNUM);
ros=1;
SendByte(i);
ros=0;
}
}
模拟SPI的过程 网上那个我也没改
uint8 SpiTxRxByte(uint8 dat)
{
uint8 i,temp;
temp = 0;
SCK = 0;
for(i=0; i<8; i++)
{
if(dat & 0x80)
{
MOSI = 1;
}
else MOSI = 0;
dat <<= 1;
SCK = 1;
_nop_();
_nop_();
//halWait(50); 本来想这是延时短的事,但测试感觉不是
temp <<= 1;
if(MISO)temp++;
SCK = 0;
_nop_();
_nop_();
//halWait(50);
}
return temp;
}
也试过在MISO MOSI上加上拉电阻10K的感觉没什么改善
大家有没有调这个的经验 谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>