AT32F403A使用CAN ,扩展格式下接收ID域一直不对,数据域一直是对的,标准格式下ID域与数据域都是正确的,不清楚哪里出了问题,有没有小伙伴遇到的
查看更多
https://www.arterytek.com/download/Errata/ES0002_AT32F403A_407_Errata_Sheet_ZH_V2.0.5.pdf雅特力官网的勘误手册 你看看
通过分析drv_can.c文件,发现在 _can_recvmsg 接口中 标准格式ID域 与 扩展格式ID域 收到都是对的,怀疑是RTT的CAN驱动内部处理有些问题,不熟悉CAN驱动框架,所以临时采用在_can_recvmsg内部通过 回调函数 把CAN通信数据传出去的方式处理,只是临时先这么使用,不推荐,修改如下:
我也遇到过 波特好像也有点不对 后来改了一下好了。
🤙 🤙厉害
多谢楼主,遇到同样问题了
欢迎发表与嵌入式相关的技术分享、开发技巧、工具介绍、技术设想、职业心得、行业评论等对他人有启发,排版优雅的文章
回到 顶部
发布 问题
分享 好友
手机 浏览
投诉 建议
回到 底部
呃,里面处理办法适合于裸机,在RTT的驱动框架下,应用层不太好处理…
@Assert 并且我使用的是老版本 0.0.7 的CSP
已经解决,适配的驱动 drv_can.c 中_can_recvmsg函数这里出现问题的,修改后即可,如下:

厉害👍
另外at32f403A适配的0.0.7 CSP版本驱动drv_can.c中有以下几处bug修改,如下:




at32f437的drv_can.c 没看懂, 一会id 为类型, 一会又变成id ,pmsg->ide 在stm32的驱动代码里面为数据帧类型, 要么为标准帧, 要么为拓展帧. 等我调的时候, 再看看吧, 驱动有待完善