
项目使用了一颗STM32F103VCT6芯片,但该芯片只有一路CAN外设,实际需要是两路。 一路连接到PA11/PA12(CAN复用管脚),一路连接到PD0/PD1(CAN重映射管脚)。 调试时,两路均可以单独收发数据,但在运行过程中进行切换时,两路均无法收发数据,实测也没波形输出,切换时我的处理流程为: 1、上电不对CAN外设和GPIO进行初始化; 2、需要时先对不需要使用的GPIO和CAN外设进行DeInit,然后对需要的GPIO和CAN外设进行Init; 按照上述流程,软件无法正常收发数据,那么我的问题是: 1、单路CAN外设是否可以这么使用? 2、如果能这么使用,我的处理流程是哪里不对呢?应该怎么调整? |
stm32编码器模式计数问题
关于ASM330LHH TR调试中的问题
STM32会存在单个IO口坏掉的情况吗?
STM32的DCode bus是连接到bus matrix的吗?参考手册描述和图片是不符吗?
stm32ide怎么正确的导出项目
STM32F105RBT6 2025年 ROSH REACH 报告
STM32CubeMX 使用"FW_F1 V1.8.6"生成FreeRTOS代码缺少"freertos_mpool.h"?
你好,我的setting里面设置都没有问题。但是显示failed download cortexm3
STM32F103C8出現找不到'STM32100B_EVAL/stm32100b_eval.h' file not found
stm32f407无法配置定时器2为全部dma
从理论上分析,如果单独执行不同的CAN初始化可以使用。建议仿真模式下,看一下寄存器的状态,通过寄存器状态判断一下,当前是哪里出错了。
[md]很奇怪,在做管脚选择的时候,下面图中箭头部分的代码没有执行。
[md]关闭优化等级试试。
楼主这个有没有解决,我也遇到同样的问题,使用的两路CAN(一路PA11,PA12,另外一路PB8,PB9),两路单独收发都正常,切换的时候就有故障(切换设置为映射PB8,9为发送正常,接收使用的PA11,12异常)。
配置和楼主差不多,也是使用哪一路初始化那一路。每次配置之前先deinitCAN。
[md]我加了强制复位,再释放复位,之后再重新初始化,就可以了。