完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,我正在尝试从SPI设备读写。我遇到的问题是同步CS和SPI I/O。因为看起来HARMony的SPI驱动程序与运行的应用程序不同步。我假设使用事件处理程序回调来解决这个问题。因此,当触发DVVSPIXBuffelyEvthEngess完成时,启用了DRVISPIXBuffelyEngEvpItJund的CS,并禁用CS。问题是,DRV_SPI_BufferAddWrite2()不会调用事件处理程序回调,即使我将它指定为arg。当我浏览一些使用SPI的其他驱动程序时,我没有看到使用事件回调的任何函数。我想一定有什么要同步的。CS选择与SPI I/O可以给我一个线索吗?谢谢您
|
|
相关推荐
4个回答
|
|
嗨B祝福,谢谢你的回复。我正在使用Hydio1.07.01i查找DrviSpIxclieCuffices(),但这看起来是SPI实例的所有操作。我认为我将遇到的问题是,SPI端口在4个SPI设备之间共享,除非它传递指向这些回调的上下文指针。我需要通过回调来访问哪个设备来启用和禁用CS线路。似乎有一个愚蠢的事件回调作为一个选项与BuffelAdDead /BuffAdDeWrdRead()函数不工作!也许升级到新的Harmony版本可以解决这个问题。我想没有办法为BufferAddRead/BufferAddWrite()函数启用阻塞操作(在数据发送/接收之后调用返回)?这样可以避免这个问题。我试着用调用DRV_SPI_BufferStatus的等待循环等待DRV_SIP_BUFFER_EVENT_COMPLETE状态,但是它挂起进程。我假设SysStasks()正在调用SPI消息处理程序来处理作业队列中的SPI调用。是否有一个系统调用来处理SPI消息处理程序,因此它将在阻塞/等待循环中处理我的SPI I/O?我认为,如果我调用SYS_Tasks(),它最终将调用APP_Tasks(),从而导致问题。使用状态机来处理我的请求将是一个PITA,使调试变得更加困难。我宁愿创建函数来从SPI设备发送/recv数据,而不必设置复杂的状态机(KIS:保持简单)谢谢
|
|
|
|
对不起的。我的意思是“DrvIsPixBuffrStand(DrVBuffer-R句柄)”=“DrviSpixBuffelyEvthiFig”
|
|
|
|
诺斯盖尔写道:“死锁通常是设计缺陷的结果。”是的,这就是我希望避免的原因。当存在多个依赖关系时,它可以是安静复杂的。我不需要同时执行任务,但是使用作业队列和事件驱动的状态机就可以了。唠唠叨叨叨叨,谢谢,我还没有试过,但是我理解它如何工作。问题是,我仍然需要制作一个非常复杂的状态机来处理所有设备,而不用阻塞模式操作。SPI I/O仍将通过作业队列进行处理,这将需要事件消息循环来处理调用的结果。对于一个简单的示例,当您向SPI设备写入数据并在对其他设备进行另一SPI调用之前需要验证数据时,然后当某些操作正常时包括错误处理。每个依赖性至少增加了两倍的复杂度。对于某些任务,阻塞模式非常容易实现和调试。我试图看看是否能够利用DRV_SPI_Tasks()实现阻塞模式的方法。谢谢,
|
|
|
|
你尝试过SPI总线的中断模式吗?您应该能够将消息添加到队列中,然后轮询到位,直到完成后台处理消息。这可能是一个值得关注的问题,但这并不是因为它只需要几字节就没有时间了。这当然不会比运行复杂的浮点数学慢。从各方面考虑,你有一个合理的观点,我可以理解你的挫折感。不过,我很想知道我提到的中断/阻塞业务是否会起作用:我认为可能是这样。在这种情况下,您将拥有最好的所有世界:阻塞短,简单的任务和非阻塞的海量数据流。
|
|
|
|
只有小组成员才能发言,加入小组>>
5079 浏览 9 评论
1954 浏览 8 评论
1888 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3115 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2186 浏览 5 评论
633浏览 1评论
506浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
370浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
535浏览 0评论
440浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-29 01:02 , Processed in 1.152488 second(s), Total 54, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号