STM32F103关于CAN的CAN_DeInit函数的疑问。
void CAN_DeInit(CAN_TypeDef* CANx){
/* Enable CAN1 reset state */
RCC_APB1PeriphResetCmd(RCC_APB1Periph_CAN1, ENABLE);
/* Release CAN1 from reset state */
RCC_APB1PeriphResetCmd(RCC_APB1Periph_CAN1, DISABLE);
我开始使用的是静默环回模式,想要切换成其他模式
发现加上 CAN_DeInit后就可以正常切换了
不太懂什么原理,这个开关时钟的意义是什么?为什么这样操作后就能正常切换CAN的模式了呀? 这是模块复位,不是开关时钟 不是开关时钟啊 可以参考手册,只有CAN 进入初始化模式才可以配置关键的寄存器。 你可能理解有误,这里不是开关CAN外设的时钟,而是对CAN外设做了强行做了复位
看名字介绍,好像是复位操作,估计复位之后才能重新配置吧
你这不是复位了么,给CAN给复位了
能把代码截图截全一点么,想看看你咋配置的
你可以找can的操作,看看其初始化代码,就知道为啥加入CAN_DeInit了
我看你提供的代码来说,这是复位了,就是把CAN的状态重置了
对can不是太熟悉,建议楼主可以看看原子或者野火的代码,对can如何配置之类的,可以学学
这个时钟好像是对can的一种复位,也就是状态重置
你用的是F103啊,你可以看看官方的数据手册,针对can部分可以看看
这就是标准的操作,就是需要对can重置才能配置的啊
我记得一般都是要使能时钟的,你这个是复位了时钟,估计是一个意思吧,就是标准流程而已
是模块复位 这个时钟好像是复位can的 应该复位之后才能重新配置吧 好像是复位操作,估计复位之后才能重新配置
页:
[1]