你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F103 单路CAN在复用脚与重映射脚运行中来回切换问题

[复制链接]
ZeroDK 提问时间:2023-10-11 15:06 / 未解决

项目使用了一颗STM32F103VCT6芯片,但该芯片只有一路CAN外设,实际需要是两路。

一路连接到PA11/PA12(CAN复用管脚),一路连接到PD0/PD1(CAN重映射管脚)。

调试时,两路均可以单独收发数据,但在运行过程中进行切换时,两路均无法收发数据,实测也没波形输出,切换时我的处理流程为:

1、上电不对CAN外设和GPIO进行初始化;

2、需要时先对不需要使用的GPIO和CAN外设进行DeInit,然后对需要的GPIO和CAN外设进行Init;

按照上述流程,软件无法正常收发数据,那么我的问题是:

1、单路CAN外设是否可以这么使用?

2、如果能这么使用,我的处理流程是哪里不对呢?应该怎么调整?

1 收藏 评论5 发布时间:2023-10-11 15:06

举报

5个回答
废鱼 回答时间:2023-10-11 17:07:00

从理论上分析,如果单独执行不同的CAN初始化可以使用。建议仿真模式下,看一下寄存器的状态,通过寄存器状态判断一下,当前是哪里出错了。

ZeroDK 回答时间:2023-10-12 12:01:22

废鱼 发表于 2023-10-11 17:07
从理论上分析,如果单独执行不同的CAN初始化可以使用。建议仿真模式下,看一下寄存器的状态,通过寄存 ...

[md]很奇怪,在做管脚选择的时候,下面图中箭头部分的代码没有执行。image.png

废鱼 回答时间:2023-10-12 13:15:37

ZeroDK 发表于 2023-10-12 12:01
很奇怪,在做管脚选择的时候,下面图中箭头部分的代码没有执行。!(data/attachment/forum/202310/12/ ...

[md]关闭优化等级试试。

ledjer 回答时间:2023-10-13 10:40:37

楼主这个有没有解决,我也遇到同样的问题,使用的两路CAN(一路PA11,PA12,另外一路PB8,PB9),两路单独收发都正常,切换的时候就有故障(切换设置为映射PB8,9为发送正常,接收使用的PA11,12异常)。

配置和楼主差不多,也是使用哪一路初始化那一路。每次配置之前先deinitCAN。

ZeroDK 回答时间:2023-10-25 16:22:55

ledjer 发表于 2023-10-13 10:40
楼主这个有没有解决,我也遇到同样的问题,使用的两路CAN(一路PA11,PA12,另外一路PB8,PB9),两路 ...

[md]我加了强制复位,再释放复位,之后再重新初始化,就可以了。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版