完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,我在MAPLAB X 3.25与编译器XC32 V1.40一起工作,目标是一个PIC32MX795F512HI,它有大量的浮点值要通过CAN发送。问题是,如果CAN没有物理连接,则TX缓冲器很快满了。所以我尝试检查第一帧是否被发送,如果没有中止主循环,并试图清空缓冲区。这里是代码的一部分:我无法使它工作。主循环中止,但如果稍后连接CAN线,我总是收到驻留在TX缓冲区的帧。第一个问题:我的编码哪里错了?第二个问题:是否有另一种方法来检查CAN是否物理连接?感谢AdvAccEGETH(也发表在[ 32位微控制器]:一般PIC32主题)
|
|
相关推荐
3个回答
|
|
为什么要放弃堕胎?只需实现从CAN层到上层的流控制生成数据。如果下层是满的(硬件或软件),那么不用费心生成数据,或者简单地扔掉它。当CAN总线被连接时,旧的(当然现在相当陈旧)数据将被传输,并且您的流控制可以再次启动数据流。
|
|
|
|
在它的本地环境(汽车)中,CAN总线永远不会断开连接,因此设计不支持(轻松)计算是否正常。如果CAN总线确实断开了,那可能是您最不担心的,并且软件(在断开连接的总线上)无法从其中恢复过来。另一个选项是首先发送一个将被忽略的消息,或者一个已知意味着“I'm testin”的消息ID。G看这个是否被发送。硬件将在发送时产生传输中断。您要么需要挂钩那个中断,要么在您正在使用的库中找到某种回调或计数器。您应该阅读您提到的函数的源代码,并通过仔细阅读手册中的CAN章节来弄清楚它到底做了什么。“CAN通道”可能是与硬件没有直接关系的高级软件抽象。可能有更低的软件级别(低于定义更高级别API的“can.h”)将这些功能映射到芯片中的特定CAN硬件,以便编写良好的软件可以在该API之上运行,而不必处理不同芯片之间的差异。
|
|
|
|
嗨,这个系统是在车辆上测试的,不是连接到汽车的CAN而是连接到数据记录器,系统开始时车子通电,但有时数据记录器还没有连接,这是交易。我还考虑通过发送一个没有数据的简单帧来测试连接,以便检查是否如果得到一个ACK。然而,这并没有让我满意,因为我想知道为什么我的代码不能工作……我试着去理解,我首先在我使用的微芯片库中搜索,但是找不到源代码。事实上,库不再直接与最新的编译器v1.40一起提供,它们必须单独安装,而且似乎……中不再包含任何源!因此,我必须查看以前提供的V1.34编译器的库,以便找到源代码。下面是我们感兴趣的代码:这个代码与Microchip文档“第34节”一致。控制器局域网(CAN),第34.7.4段(w1.micro..com/downloads/en/DeviceDoc/61154C.pdf)但是,由于使用所有通道或特定通道的处理是不同的,我首先尝试使用这个方法,但是也不起作用。n(对于每一个使我感兴趣的人),使用更直接的寄存器这样称呼:…效果不错!!!!我不明白为什么微芯片CAN功能不能正常工作,我还没有用v1.34编译器测试过,以便查看这是否工作得更好,无论如何,我不确定CAN库在两个版本之间有什么变化。桀斯
|
|
|
|
只有小组成员才能发言,加入小组>>
5234 浏览 9 评论
2026 浏览 8 评论
1950 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3200 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2253 浏览 5 评论
771浏览 1评论
659浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
588浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
670浏览 0评论
571浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 23:19 , Processed in 1.251949 second(s), Total 79, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号