51单片机 + CC2420 模块 SPI读写的问题
如题,根据资料进行SNOP空操作的时候,SPI方式存取。需要读取状态字字节。
用示波器能看到SO口有波形输出,但用程序读不下来。
根据时序图是按位边写边读,有编过这方面的大侠没有? 现在没能看出什么问题出来
你可以试试TI给的51的库,直接用试试
有库么?到TI官网下载还是怎么的? TI管网上有
1。硬件SPI的时候,注意设置相关专用寄存器的状态值
2。注意速率不可过快。
3。及时处理相关数据。
4.代码中如果有死循环,请注意改成有限循环。增加代码稳定性 函数是这样的,在往SI写一个字节数据的同时要从SO口读一个字节,从高位开始写,从高位开始读写操作
unsigned char SpiWrite(unsigned char data_buf)
{
unsigned char i,j;
unsigned intk;
unsigned char temp_buf=0;;
CSN =0; //片选有效
k =0;
j=0x80;
while(j>0)
{
i= data_buf&j;
temp_buf=temp_buf<<1;
SCK = 0; //写数据上升沿有效
delay(5); //20Us
if(i==0){
SI =0; //写数据
}
else{
SI =1;
}
SCK = 1;
k=SO; //读数据
delay(5);
temp_buf= temp_buf|k;
j=j>>1;
}
CSN =1;
return temp_buf; //返回状态值
} 结个贴,问题原因找到了,居然是管脚定义反了,好失败啊!
感谢回帖的哈~~
页:
[1]