完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,我正在使用一个带有两个NRF24l01模块的大脑mx7ck演示板(PIC32MX795F512L)。一个是NRF发射机,另一个是NRF接收机。使用发射机,我发送4个字节,值是:0xAA(0b101010)。Lue:0xAA。但是当我说:如果接收到byte==0xAA,那么就放入led1,led1就停止了。那么我的SPI配置有问题吗?因为PIC接收的字节不是值:0xAA?相反,当我说:如果收到字节==0x55(0b010101),然后放入led1,led1就继续工作。时钟是8MHz/(4*(1+0))=2MHz有人能解决这个问题吗?这是我的代码,这是SPI的读写功能。谢谢。
|
|
相关推荐
10个回答
|
|
您没有显示Read TnRf1()或WreEnnnFr1()的代码。
|
|
|
|
对不起,我把它添加到帖子里
|
|
|
|
它看起来不像是在配置SPI时钟极性或相位。要么有错误要么会导致数据中的一个位偏移。
|
|
|
|
使用此行,CON寄存器中的每个位都配置为0x8220,这意味着:MODE位=00(8位)SMP位=1CKE位=0CKP位=0MSTEN位=1
|
|
|
|
在PIC微控制器中,控制SPI时钟(SCK)和数据输出(SDO)线路如何发送比特和控制SPI数据输入(SDI)线路的附加位有4个替代方案。仔细研究SPI从机和PIC微控制器的数据表中的时序图。在nRF24L01的数据表中图25的定时图,似乎SPI输入的数据被锁定在上升沿,在时钟线上从低到高的转换。新的数据位在时钟从高到低的下降沿之后输出。在我看来,这相当于CKP=0;CKE=1;SMP=0;在函数InitSPI3()中,实际上有SPI4的设置。在InitSPI3()和InitSPI1函数中,中断标志和中断启用的设置对于SPI1是相同的。在两个函数中,也只设置一个通道的中断优先级,SPI1!SPI4的中断设置在IFS1和IEC1、8、9和10位,以及在IPC8方面,Mysil
|
|
|
|
像你说的那样,我改变了设置。但当我用逻辑分析仪测量接收机,并在下降沿配置逻辑分析仪时钟时,收到的数据出现了故障。有时是好的,有时是错的,仍然不起作用。
|
|
|
|
当我将逻辑分析器的时钟配置到上升沿时,所有数据在逻辑分析器的屏幕上被正确接收,故障是当数据从接收nrf发送到pic。但是我如何解决这个问题呢?
|
|
|
|
分析仪仍然应该在时钟信号的上升沿触发,这是信号有效的时间,并且由无线电控制器读取。时钟信号的下降沿是当数据信号发生变化时。由于无线电看起来像预期的那样工作,SPI写入似乎工作。可以尝试将SPI数据输入采样相位设置更改为:SMP=1;即SPIxCON=0x8320;
|
|
|
|
对于0x8220位SMP=1;CKE=0;CKP=0;A尝试了不同的模式,但是没有成功。可能与时钟频率有关?但我会觉得奇怪,因为NRF模块工作,他们应该做的。
|
|
|
|
问题解决了,我使SMP位=0,并在函数中更改字符为UIT88T!谢谢大家的帮助:
|
|
|
|
只有小组成员才能发言,加入小组>>
5184 浏览 9 评论
2005 浏览 8 评论
1932 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3179 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2230 浏览 5 评论
740浏览 1评论
626浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
512浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
638浏览 0评论
536浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 18:23 , Processed in 1.383347 second(s), Total 95, Slave 78 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号