完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,我有一个奇怪的问题,可能是“经典”之一。我想使用PORTD RD4、RD5、RD6和RD7作为SPI CS线路的数字输出。我配置了TrISD寄存器来清除位4、5、6、7和ANSELD=0x00;但是输出不起作用。根据数据表,这些引脚也用于RPWR、PMRWD、C3CN和C3IN。我能错过什么?最好的,安德烈亚斯
|
|
相关推荐
7个回答
|
|
奇怪,你在写信给拉德,跟波德相反吗?
|
|
|
|
是的,我确实写到LATD寄存器。我还发现,一旦在初始化期间设置了LATD寄存器位(如果在TRIS寄存器和ANSEL初始化之前这样做),就可以切换管脚状态。然后,在初始化所有其他寄存器之后,不管我为这些管脚在LATD位中设置了什么,它们都不再改变。
|
|
|
|
因此,使用调试器,在设置TRISD之前设置断点,在写到LATDsing之前设置断点,然后查看寄存器,看看在写到LATD之前是否实际得到您想要的内容,检查TRISD是否仍然正确,然后单步查看LATD4/5/6/7位是否改变,如果其他一些init代码正在撤消您的TRISD设置,您将发现并且应该很容易发现您没有按预期命中TRISD/LATD位,您将发现TRISD是否正确,LATD位是否正在更改,但是引脚上没有相应的更改,那么您可能正在检查错误的pins,或者您正在使用备用pin函数或者使用pin作为PPS pin(这两种情况都不太可能,因为您必须经过努力才能设置它们)
|
|
|
|
嗨,伙计们,谢谢你们对我的问题的评论。一切似乎都很好。问题不在IO配置中。因此,设置LATD,TRISD,ANSELD等。工作,并导致正确的引脚功能。我可以跟踪的问题,直到功能,其中输出应该切换为具有SPI的CS功能。函数没有被调用。它编译没有错误或警告,但程序似乎找不到这个函数。我不知怎么调试这个,但是这个错误在一个从我的引导装载器中调用的应用程序代码中。我还没有为应用程序代码设置调试。只为引导加载程序,最好的,安德烈亚斯
|
|
|
|
嗨,伙计们,到目前为止,我可以把错误归结为一个矛盾的声明:我设置和清除CS行的功能。该函数在两个驱动程序中具有相同的名称,我使用的C/H文件。非常奇怪,我从未从XC32获得编译器错误或警告。最好的,安德烈亚斯。
|
|
|
|
在两个源文件中有相同的功能吗?肯定链接错误应该吐出来…除非他们被定义为“弱”,我想…
|
|
|
|
如果两个头文件都包含在两个C文件中,则只会出现错误。我怀疑您没有正确地使用头文件。
|
|
|
|
只有小组成员才能发言,加入小组>>
5125 浏览 9 评论
1984 浏览 8 评论
1914 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3148 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2212 浏览 5 评论
696浏览 1评论
583浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
465浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
601浏览 0评论
494浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-1 16:13 , Processed in 1.390975 second(s), Total 91, Slave 74 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号