完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
你好!我叫路易斯,来自阿根廷。我正在使用dspic33fj128gp802I,想从低端口(RB7到RB0)读取一个字节,并通过SPI(在RB10到RB13中映射)将它存储在uSD中。如果我在这个引脚中读取一个高值(“1”),我不能存储整个字节,但是,如果它低(“0”),就没有问题……有什么问题吗?我不是在调试,而是在硬件上直接测试。我配置的端口是这样的:TRISBbits.TRISB0=1;TRISBbits.TRISB1=1;TRISBbits.TRISB2=1;TRISBbits.TRISB3=1;TRISBbits.TRISB4=1;TRISBbits.TRISBbits.TRISB5=1;TRISBbits.TRISB6=1;TRISBbits.TRISBbits.TRISB7=1;我这样读的:data=(char)(PORTB);//data data=/data被定义为Chan感谢在前进。问候!路易斯
|
|
相关推荐
6个回答
|
|
|
为什么不分配整个TrISB而不是每个单独的位呢?(FYI TRIS寄存器默认为高(输入),但我想设置它们以确保它们的状态)我将使用stdint.h库的uint8_t而不是char,因为它更好地描述了您的意图。你不需要没有签名吗?我不认为您需要强制转换,因为如果您不写它,它将只占用最低有效位(如果我错了请更正我)。上面的实现在PIC24FJ上为我工作。如果这不能工作,您能确认没有外围设备使用引脚代替吗?当RB6的值高时,您可以得到另一个引脚(如RA2(PIDOOMA))来变高,这将告诉您是否正在作为输入工作。
|
|
|
|
|
|
data=(char)(PORTB);//data被定义为charunsigned int data;data=PORTB&0xff;SPIxBUF=data将是更好的方法,如果SPIx处于8位模式,那么您甚至不需要&0xff。
|
|
|
|
|
|
非常感谢您的回复。我已经尝试过您的建议,但是什么也没有……根据数据表,这个引脚有:PGEC3/ASCL1/RP6/CN24/PMD6/RB6I非常确定没有外围设备在RB6中工作,因为我正在使用PEGEC1编程,I2C正在处理它的自然引脚;没有外围设备在RB6中工作。此处映射;不允许更改通知,并关闭主端口。为了测试,我添加了这行代码:LATAbits.LAT0=PORTBbits.RB6;//Led连接到RA0并且led正确地打开/关闭……因此,我假设这不是硬件问题,因为我能够读取RB6端口……也许当我使用FAT系统(SD)时,当RB6很高时,这个库就不能保存字节。很奇怪…我会继续寻找解决办法,我会告诉你的。非常感谢!我希望我的英语很好!路易斯。
|
|
|
|
|
|
非常感谢您的回复。我已经尝试过您的建议,但是什么也没有……根据数据表,这个引脚有:PGEC3/ASCL1/RP6/CN24/PMD6/RB6I非常确定没有外围设备在RB6中工作,因为我正在使用PEGEC1编程,I2C正在处理它的自然引脚;没有外围设备在RB6中工作。此处映射;不允许更改通知,并关闭主端口。为了测试,我添加了这行代码:LATAbits.LAT0=PORTBbits.RB6;//Led连接到RA0并且led正确地打开/关闭……因此,我假设这不是硬件问题,因为我能够读取RB6端口……也许当我使用FAT系统(SD)时,当RB6很高时,这个库就不能保存字节。很奇怪…我会继续寻找解决办法,我会告诉你的。非常感谢!我希望我的英语很好!路易斯。
|
|
|
|
|
|
有趣的是,如果你的初始化没有改变,只是你阅读它的方式,肯定存在这个问题。如果你已经尝试过Gort2015的建议,但是没有效果,那么它必须是在你实际阅读寄存器而不是截断/强制转换问题的时候。(?)当你这样做的时候:我以为这里发生的是,软件读取PORTB的整个寄存器,然后丢弃其他位。这就意味着当你复制整个寄存器时,看到它不能工作会很奇怪。选项:(a)在执行也许它是一个汇编程序问题,它把整个寄存器读入变量不正确?(不知道)我真的怀疑这会起作用。
|
|
|
|
|
|
我解决了!我觉得很傻…这是个问题:我用这个库做SD的脂肪系统。在这个库中,我为SPI信号配置了硬件:SDI、SDO、SCK、SS,但是我没有意识到还有更多的信号要配置:WP(写保护)和CD(卡检测)。你能猜出WP引脚在哪里被默认配置吗?是的…RB6!因此,我评论了这行(因为我在我的应用程序中实现软件卡检测和写入应该总是启用的)并且工作得很好!非常感谢您宝贵的时间给我一个忠告!祝你一切顺利!路易斯。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475 浏览 0 评论
5794 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1124浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1098浏览 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 12:48 , Processed in 0.974788 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2415