完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我使用PIC32 MX795F512L进行SPI通信。在调试模式下,SPI1CON显示值0xC120,但我正在发送0x8120。我不知道为什么会发生这样的事?波特率值设置正确,但是当我将“A”写入SPI1BUF寄存器时,它在调试器中不会显示在SPI1BUF中,并且在这一行“return SPI1BUF;”SPI1BUF显示值0xFF。我不知道我错过了什么地方,请帮忙,谢谢!
|
|
相关推荐
16个回答
|
|
|
这表示设置了位14。这是“未实现的”位,所以不管它是什么。它不会。您不能读回您写给SPI1BUF的值。这包括调试器。读取访问读取缓冲区,将写入写入缓冲区。它们是分开的缓冲器,你的SPI端口连接到什么?您是否尝试将SDO连接到SDI,以查看是否接收到所编写的后台数据?
|
|
|
|
|
|
@Ric正如您所说,有两种不同的缓冲区用于读取和写入,请您告诉我它们的名称,这样我就可以监视它们,并在调试时注意到它们的价值。数据表上说有一个寄存器用于读和写,所以我感到困惑。我没有将SPI连接到任何设备。我只是想发送数据,并检查它是否在SPI1BUF进行调试,然后将短路的SDO和SDI,以接收回来。谢谢。!
|
|
|
|
|
|
不能。它们都被命名为SPI1BUF。您只能写到写缓冲区,并且从读缓冲区读取,所以不可能看到您使用调试器编写的内容。您连接了吗?在你看到你自己的数据回来之前,你必须先做。
|
|
|
|
|
|
@ RicYou想说,如果我在SPI COMM中发送一个字符,那么在调试模式中,SPI1BUF只保存接收数据的值,而不是发送的数据。
|
|
|
|
|
|
我缩短了SDO和SDI,并且提出了如下条件:但是SPI1BUF仍然给出0xFF,并且终端中正在显示Not Matched。我需要启用或禁用某些东西吗?
|
|
|
|
|
|
SPI引脚的PPS或模拟特性?
|
|
|
|
|
|
请显示整个测试程序,而不仅仅是您认为哪些位元有问题。
|
|
|
|
|
|
现在我有一个疑问:你确定你的程序实际上正在运行吗?iNITSd()做了什么,你的代码能卡在那里吗?而且,你能检查针的范围吗?
|
|
|
|
|
|
@ric.,我将使用变量进行测试,我想知道,当我执行“SPI1BUF=b;”时,在调试时我无法看到SPI1BUF中传输的数据。这可能还是SPI1BUF只显示接收到的值。
|
|
|
|
|
|
你看不见。我已经明确说明过两次了。你想让我尝试另一种方式来表达吗?
|
|
|
|
|
|
但是,有了一个范围,他可以…
|
|
|
|
|
|
这里有很多小东西。它不会工作,直到你把它们搞定。初始化:不要在设置相同的指令时启用模块。这可能会初始化错误。如果它已经打开了,它将重置模块。你是奴隶。如果你的主人使用SS,你应该设置S森。否则,您的从属会对时钟线上的任何噪声作出响应。因为您是从属,所以在事务发生时您没有选择。另一方面,大师完全忘记了你在做什么。在开始侦听WriteSPI()之后,必须确保主传输成功。WriteSPI()函数不是很好,但是它适合接收一个字节。不要触摸它之外的SPI1BUF,不要使用程序,也不要使用调试器。为了避免并发症,将接收到的字节分配给变量:然后在调试器中观察X。这个顺序非常重要:1。运行你的程序,让它用WTITESPIE()2阻塞。让主机发送。3。在调试器中停止并监视X。
|
|
|
|
|
|
嗯?他设定SSP1CON。5,所以他是大师。
|
|
|
|
|
|
对,他是主人。我的错误。谢谢。我们再试一次。有很多小东西。它不会工作,直到你把它们搞定。初始化:不要在设置相同的指令时启用模块。这可能会初始化错误。如果它已经打开了,它将重置模块。你是一个大师。你首先要弄清楚的是,你的奴隶是否需要SS。如果是,那么您需要用MSSEN位来驱动它,如果您的从设备可以的话,或者使用单独的手动控制管脚来驱动从设备的SS线路。不要触摸它之外的SPI1BUF,不要使用程序,也不要使用调试器。为了避免并发症,将接收到的字节分配给变量:然后在调试器中观察X。这个顺序非常重要:1。确保奴隶在监听。2。运行你的程序并做WTITESS()。确保SS被正确操纵。3。在调试器中停止并监视X。
|
|
|
|
|
|
@ NordGuy谢谢你的回答。这是我根据你的答案更新的代码:现在它被踩在我已经缩短SDO SDI线,但它不走在这条线前面。这一行等待数据被传送,因此这意味着数据没有被传送。在调试中打开了监视窗口,发现SP1ISAT的值为0x10000,这意味着thatxBuffelm & lt;4:0& gt具有值0x01。这意味着什么?
|
|
|
|
|
|
这里:您刚刚清除了SPI1CON中的所有其他位。回首NordGee推荐的第二条指令,这与您所做的非常不同。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1122浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
872浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 22:58 , Processed in 1.054633 second(s), Total 102, Slave 85 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1620