完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,这比SPI更像是一个编码问题,但是我不知道还有什么地方可以发布。我有一个dspic33ep256mu806,通过SPI从另一个dspic接收数据。我建立了一个DMA通道来接收数据。我创建了一个结构,并将结构地址作为DMA缓冲区给出,如下所示,我的结构设置为下面的全局变量,该变量在不同的周边使用,并且它的值被更新。我的问题是,这是一种可以接受的方式。我发现使用结构帮助我可视化数据,并使更改更容易管理,而不是使用缓冲区中的memcpy。
|
|
相关推荐
3个回答
|
|
使用结构在两个设备之间进行通信可能会有问题,因为C不能保证结构布局的某些方面。如果这两个设备使用相同的编译器,则可以更容易地逃脱。在使用填充属性时,还必须关注字对齐。我不知道XC16是否会帮你解决这个问题,我猜不会。而且我不知道你把结构放在DMA RAM的什么地方。
|
|
|
|
谢谢你的回复。我确实知道没有保证,但是我想_u packed_确保结构保持在内存中,并且放在ram中的数据落在正确的位置。两个处理器都使用XC16,发送部分完全相同(即结构->SPI DMA)。发送部分的结构也是打包的。DMA地址设置如下,指向structty。这通常用memcpy而不是?
|
|
|
|
它告诉DMA外围对象在哪里,它不把对象放在DMA RAM中。你需要使用一个空间(DMA)属性来做这件事,你仍然需要担心对齐问题。
|
|
|
|
只有小组成员才能发言,加入小组>>
5208 浏览 9 评论
2017 浏览 8 评论
1943 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3189 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2244 浏览 5 评论
758浏览 1评论
646浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
563浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
657浏览 0评论
556浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-9 21:23 , Processed in 1.016005 second(s), Total 50, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号