完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
同样是在RTThread里面调用
rt_device_write(can_dev, 0, &msg, sizeof(msg)) 发送CAN数据时, 基于STM32F407GET6的工程就容易卡死在这个函数里面,而基于STM32F105RCT6的工程运行的很好,这是为什么呀? |
|
相关推荐
1个回答
|
|
要解决这个问题,我们可以按照以下步骤进行排查和分析:
1. **检查硬件连接**:首先确保STM32F407GET6的CAN硬件连接正确,包括CAN收发器、终端电阻等。硬件问题可能导致通信不稳定或失败。 2. **检查CAN驱动**:确认STM32F407GET6和STM32F105RCT6使用的CAN驱动是否相同。如果不同,可能存在驱动不兼容或性能差异的问题。可以尝试更新或替换驱动。 3. **检查CAN配置**:检查两个工程的CAN配置是否一致,包括波特率、模式等。如果配置不一致,可能导致通信问题。 4. **分析rt_device_write函数**:检查rt_device_write函数的实现,看是否有可能在STM32F407GET6上出现死循环或资源竞争的情况。可以尝试添加调试信息,以便更好地了解函数的执行过程。 5. **检查中断处理**:STM32F407GET6和STM32F105RCT6的中断处理方式可能有所不同。检查中断服务程序(ISR)的实现,确保它们在两个平台上都能正确处理CAN中断。 6. **检查内存管理**:STM32F407GET6和STM32F105RCT6的内存大小和类型可能不同。检查工程的内存分配,确保在STM32F407GET6上没有内存泄漏或溢出的问题。 7. **检查RTOS调度**:RTThread的调度策略可能在两个平台上表现不同。检查调度器的配置,确保在STM32F407GET6上没有调度问题。 8. **测试其他功能**:尝试在STM32F407GET6上运行其他功能,看是否也会出现卡死的情况。这有助于确定问题是否仅限于CAN通信。 9. **查看错误日志**:检查RTThread的错误日志,看是否有关于CAN通信失败或错误的信息。这可能为解决问题提供线索。 |
|
|
|
只有小组成员才能发言,加入小组>>
152个成员聚集在这个小组
加入小组【Vision Board创客营连载体验】基于RA8D1-Vision Board的自动路径规划小车
864 浏览 0 评论
【Vision Board创客营连载体验】基于Vision Board的垃圾分类
1193 浏览 0 评论
【Vision Board创客营连载体验】使用 Vision Board 做一个 UVC Camera
847 浏览 0 评论
【Vision Board创客营连载体验】TinyMaix进行手写数字识别
1151 浏览 0 评论
【Vision Board创客营连载体验】RA8D1-Vision Board使用7寸屏设置为RGB666大端模式模式成功显示摄像头图案
1140 浏览 0 评论
在RT-Thread Studio中新建的stm32f407-atk-explorer工程运行qemu失败,是什么原因引起的?
202浏览 3评论
STM32F407ZGT6 spi flash片选引脚无法被拉低的原因?怎么解决?
1185浏览 2评论
移植RT-THREAD在stm32开发板上,使用rt_kprintf不能正常打印的原因是什么?怎么解决?
509浏览 2评论
stm32f103zet用rtthread studio生成带finsh的项目程序,串口输入help没有反应是为什么?
512浏览 2评论
rtthread studio已经成功编写了外部flash下载算法,程序也能下载进去但是不能进行调试怎么办?
431浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 07:56 , Processed in 0.664134 second(s), Total 84, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号