完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我先说一下目前项目中采用的一些处理:
1、利用HAL库的返回值处理,比如下面: while(HAL_CAN_Transmit_IT( hcan_use)!=HAL_OK) { __nop(); } 2、加入独立看门狗,死机3秒就重启 3、CAN通讯协议设计成发送后必须有回复,超时没回复就发出重启指令,另接收指令的CAN节点重启,然后重发指令 但是目前通讯在节点多于6个以上的时候会容易出现通讯故障。 现在从硬件与软件两个方面同时解决, 硬件上我认为可能是线路阻抗匹配上有问题,正申请购置相应测量仪器 软件上除了上述处理以外,不知道各位还有什么经验没有? 比如说怎么通过一些寄存器标志位进行错误判断,然后能够通过软件上做出一些相应的处理,使CAN通讯功能恢复正常。之类的。 |
|
相关推荐
1个回答
|
|
楼主用的是中断发送,如果想查询实时发送结果,不要用中断。接收用中断处理。节点过多并不一定是电阻的问题,只要保证最多2个120欧姆的电阻即可。可能是波特率配置不一致导致的。
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1688 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1590 浏览 1 评论
1013 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
706 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1632 浏览 2 评论
1893浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
680浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
539浏览 3评论
560浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
527浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-5 10:57 , Processed in 0.733880 second(s), Total 46, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号