
项目使用了一颗STM32F103VCT6芯片,但该芯片只有一路CAN外设,实际需要是两路。 一路连接到PA11/PA12(CAN复用管脚),一路连接到PD0/PD1(CAN重映射管脚)。 调试时,两路均可以单独收发数据,但在运行过程中进行切换时,两路均无法收发数据,实测也没波形输出,切换时我的处理流程为: 1、上电不对CAN外设和GPIO进行初始化; 2、需要时先对不需要使用的GPIO和CAN外设进行DeInit,然后对需要的GPIO和CAN外设进行Init; 按照上述流程,软件无法正常收发数据,那么我的问题是: 1、单路CAN外设是否可以这么使用? 2、如果能这么使用,我的处理流程是哪里不对呢?应该怎么调整? |
STM32F103长时间运行,串口发送失败
STM32G474 BOOST电路双环PID的用法
foc2.0函数SVPWM_3ShuntCalcDutyCycles看不明白
stm32f103c8t6:没有对flash进行任何操作,flash的内容发生变化了。具体是哪些原因?如何调试排查原因。
STM32F103C8T6 TIM1 CH2输入捕获触发DMA的问题
STM32会存在单个IO口坏掉的情况吗?
STM32F103RET6 FLASH擦除失败问题
6.28周六签到打卡
请问有stm32f103驱动无刷电机的学习资料吗,找了很久都没有找到
stm32编码器模式计数问题
从理论上分析,如果单独执行不同的CAN初始化可以使用。建议仿真模式下,看一下寄存器的状态,通过寄存器状态判断一下,当前是哪里出错了。
[md]很奇怪,在做管脚选择的时候,下面图中箭头部分的代码没有执行。
[md]关闭优化等级试试。
楼主这个有没有解决,我也遇到同样的问题,使用的两路CAN(一路PA11,PA12,另外一路PB8,PB9),两路单独收发都正常,切换的时候就有故障(切换设置为映射PB8,9为发送正常,接收使用的PA11,12异常)。
配置和楼主差不多,也是使用哪一路初始化那一路。每次配置之前先deinitCAN。
[md]我加了强制复位,再释放复位,之后再重新初始化,就可以了。