完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我有一个两个PIC32在一个板上,我正在做SPI大师SLAVE通信他们之间。我有相同的电路板的4个相同的副本,我也在做同样的事情(2个PICS之间的SPI通信)。我编写的SPI通信代码在3个板上工作,在2个板上不起作用。(主PIC)int rData;IEC1CLR=0x000000E0;//禁用所有中断SPI2CON=0;//停止并重置SPI2.rData=SPI2BUF;//清除接收缓冲区IPC7CLR=0x1f000000;//清除优先级IPC7SET=0x0d000000;//设置IPL=3,次优先级1SPI2BRG=0x1;//使用FPB/4时钟频率,IFS1CLR=0x000000E0;//清除任何现有的事件IEC1SET=0x000E0;//启用RX、TX和错误中断//将其更改回ESPI2STATCLR=0x40;//清除OverflowSPI2CON=0x8220;//SPI ON,8位传输,SMP=1,主模式//从现在开始开启时,设备准备发送和接收dataSPI2BUF='A';(从PIC)int rData;IEC1CLR=0x000000E0;//禁用所有中断SPI2CON=0;//停止并重置SPI2.rData=SPI2BUF;//清除接收缓冲区IFS1CLR=0x000E0;//清除任何现有的事件IPC7CLR=0x1f000000;//清除SPI2.rData=0x000BUFpriorityIPC7SET=0x0d000000;//Set IPL=3,Sub.1IEC1SET=0x000E0;//Enable RX,TX和错误中断//将其更改回ESPI2STATCLR=0x40;//清除OverflowSPI2CON=0x8000;///从现在起,设备准备发送和接收数据。其他2个板从接收到1位右移的字节(例如A BYTE1000 1111被接收为01000111)。如果我只改变一件事,这个问题就解决了。我只改变一件事,那就是我在SPI2CON reg中设置第6位,并且从机接收字节的右移消失!SPI2CON=0x8260;(主)SPI2CON=0x8040;(从属)(位6CKP:时钟极性选择位1=时钟空闲状态是高电平;活动状态是低电平0=时钟空闲状态是低电平;活动状态是高电平)我的问题是,所有5块板中的所有东西都相似,但是为什么I h为一些图片做SPI2CON RG的调整,而不是其他的!(这是硬件问题吗?)或者我必须在PIC初始化时设置一些东西吗?
|
|
相关推荐
1个回答
|
|
嗨,是的,我记得那个。修正了一个小的延迟放置后的SPI启用和之前的第一次写。祝你好运,迈克
|
|
|
|
只有小组成员才能发言,加入小组>>
5166 浏览 9 评论
2000 浏览 8 评论
1929 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3175 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2227 浏览 5 评论
736浏览 1评论
619浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
507浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
633浏览 0评论
530浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 09:58 , Processed in 1.226794 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号