上图从左往右依次是让你选择调试类型,是否禁用曼切斯特模式,晶体误差(TX和RX两个),频率设置,发射速率设置,AFC是否开启,(中间的可以不理),频差
选择好以上的配置后,相应的在下面会有几个表,分别往所对应的寄存器写入相应的值就可以
频率设置
发射速率设置
频率偏差
其他设置(我也不知道是干嘛的,具体看数据手册吧)
把以上配置好后,SI4432的初始化基本也就配置好了。
接下来,应该对相应的spi口配置,写SI4432读寄存器函数和写寄存器函数,注意,在写的时候最高位应为1代表写!
配置大致就是这样了~~
接下来列出一些主要的寄存器吧~
地址03h.中断状态 1
地址04h. 中断/中断2
地址 05h.中断使能 1
地址 06h. 中断使能 2
地址 07h. 运行模式和功能控制1
地址 08h. 工作模式和功能控制
地址 09h. 30 MHz晶体振荡器负载电容
地址 0Bh. GPIO配置 0
地址 0Ch. GPIO配置 1
地址 0Dh. GPIO配置2
地址 30h. 数据存取控制
地址4Bh. 接收到的数据包长度
地址 69h. AGC 过载
地址71h. 调制模式控制 2
地址 7Fh. FIFO存取
首先跳频只能解决同一个环境下不同设备之间的干扰和频率占用的问题,并不能对提高通讯距离产生任何帮助。
要想增加通讯距离,要注意以下几个方面:
使用较高的发射功率,Si4432最高为+20dBm。
使用正确的工作频率,虽然Si4432支持的工作频率为240~930MHz,但国内Si4432无线模块的设计基本都是在433MHz附近。
使用正确的射频参数,这个可以从其它厂家的配套程序中参考,或使用Silabs的配置工具
使用较低的通讯速率,相同条件下速率越高,通讯距离越短。
使用高增益的天线。
使用性能参数好的无线模块。相同的程序,换用其它模块距离有所增加是因为每个厂家的模块性能不同造成的。
你的错误出在SCON的设置上
SCON应该设置为
0x50
应该选择模式1的,否则
波特率
是不对的.并且晶振要用11.0592MHZ
其它都是正确的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)