完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
大家好,我正在尝试通过SIP从PIC18F85K22向PIC16F887发送数据。似乎一段时间数据是正确的,有时不是,但我看不出一个模式。我的其他代码可能有错误,但我需要知道的是,我修改过的用于设置和传输通道的微芯片代码t,请看下面。有谁能帮忙吗?谢谢Peter.=======================设置SPI,PIC18F85K22===================================BANKSEL TRISD;BANK 1movlw B'10101111';0x10;SCK是输出(Master),SDI是输入,movwf TRISD;SDO是输出,所有其他输出movlw B'01000000';0x40;模式1 SPI,在输出mo的中间SSP2STAT;时间采样银行SSP2CON1;银行0移动0x31;B'000100010001';0x31;模式1,1SPI主模式,1/16ToSPI位移动SSP2CON1;SSP正在返回;========================================================================================================__;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Send_DT movf xx,W;获取Ctr(计数器)值)在W银行SSP2BUF移动SSP2BUF;放入SSPBUF移动循环银行SSP2STAT;银行1btfss SSP2STAT,BF;数据传输完成?(缓冲器满?)胸罩循环;如果没有,请再次检查银行SSP2BUF;银行0移动SSP2BUF,W;从SSPBUF获得数据丢弃返回;从SSPBUF获得数据;从PIC16F887--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------I是输入,movwf TRISC;SDO是输出,所有其他输出movlw 0x40;模式1,1 SPI,movwf SSPSTAT;输出时间取样BANKSEL SSPCON;Bank 0movlw 0x34;模式1,1 SPI从模式,/SS所需movwf SSPCON;SSP打开;------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------再次执行;跳过_ND;新数据,进行传输(以下为RX_Data BanNKSEL SSPBUF;BanNK 0movf SSPBUF,W;将SSPBUF放入W BANKSEL PORTB;BanNK 0movwf PORTB;再次显示PORTBDo上的结果;可选客户代码可以转到她;转到Chk4Dat;接收下一个字节返回
|
|
相关推荐
5个回答
|
|
|
你打开了SS控制在16F87,但18F85 K22似乎不控制任何SS信号。
|
|
|
|
|
|
还请注意,这并不是您的问题,但是PIC18F85K22中的所有SSP控制寄存器都在“访问银行”中,所以在它们之前不需要BANKSEL指令。我知道您的从机只是将虚拟数据发送回主机,但是PIC16F887在错误的地方写入SSPBUF。它是在从主机读取每一个值之后,而不是在您检查主机是否发送了新的东西之前。
|
|
|
|
|
|
问题解决了!!!!在数据完成后清理SPSPUF是治愈的方法。非常感谢,但是为什么Microchip给出错误的样本代码?问候彼得。
|
|
|
|
|
|
你指的是哪一个精确的示例代码?
|
|
|
|
|
|
这是我的另一个错误。我以为它在本文件中,但是在检查之后它是正确的。http://www1.micro..com/downloads/en/devicedoc/spi.pdf我现在还记得两年前我在试验预加载SSSPBUF并且我刚刚复制了我使用的.asm。浪费你的时间,再次感谢你的帮助,彼得。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1124浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 02:09 , Processed in 1.594670 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3084