打印
[STM32F1]

STM32F103关于CAN的CAN_DeInit函数的疑问。

[复制链接]
1379|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
probedog|  楼主 | 2022-10-13 10:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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的模式了呀?

使用特权

评论回复
沙发
diweo| | 2022-10-13 10:50 | 只看该作者
这是模块复位,不是开关时钟

使用特权

评论回复
板凳
lizye| | 2022-10-13 22:34 | 只看该作者
不是开关时钟啊

使用特权

评论回复
地板
elephant00| | 2022-10-19 15:14 | 只看该作者
可以参考手册,只有CAN 进入初始化模式才可以配置关键的寄存器。

使用特权

评论回复
5
两只袜子| | 2022-10-19 15:15 | 只看该作者
你可能理解有误,这里不是开关CAN外设的时钟,而是对CAN外设做了强行做了复位

使用特权

评论回复
6
热爱童话世界| | 2022-10-29 11:38 | 只看该作者
看名字介绍,好像是复位操作,估计复位之后才能重新配置吧

使用特权

评论回复
7
偷吻月亮| | 2022-10-29 12:11 | 只看该作者
你这不是复位了么,给CAN给复位了

使用特权

评论回复
8
岁月反驳| | 2022-10-29 12:43 | 只看该作者
能把代码截图截全一点么,想看看你咋配置的

使用特权

评论回复
9
漫过岁月| | 2022-10-29 13:15 | 只看该作者
你可以找can的操作,看看其初始化代码,就知道为啥加入CAN_DeInit了

使用特权

评论回复
10
占得人间第一春| | 2022-10-29 13:47 | 只看该作者
我看你提供的代码来说,这是复位了,就是把CAN的状态重置了

使用特权

评论回复
11
討厭和人归類| | 2022-10-29 14:19 | 只看该作者
can不是太熟悉,建议楼主可以看看原子或者野火的代码,对can如何配置之类的,可以学学

使用特权

评论回复
12
极客晨星| | 2022-10-29 14:51 | 只看该作者
这个时钟好像是对can的一种复位,也就是状态重置

使用特权

评论回复
13
晚晚皆安| | 2022-10-29 15:23 | 只看该作者
你用的是F103啊,你可以看看官方的数据手册,针对can部分可以看看

使用特权

评论回复
14
笨蛋无需搭理| | 2022-10-29 15:55 | 只看该作者
这就是标准的操作,就是需要对can重置才能配置的啊

使用特权

评论回复
15
可爱的白兔先生| | 2022-10-29 16:27 | 只看该作者
我记得一般都是要使能时钟的,你这个是复位了时钟,估计是一个意思吧,就是标准流程而已

使用特权

评论回复
16
SantaBunny| | 2022-11-3 20:15 | 只看该作者
是模块复位

使用特权

评论回复
17
MessageRing| | 2022-11-4 19:11 | 只看该作者
这个时钟好像是复位can的

使用特权

评论回复
18
Jacquetry| | 2022-11-5 16:39 | 只看该作者
应该复位之后才能重新配置吧

使用特权

评论回复
19
Stahan| | 2022-11-6 18:57 | 只看该作者
好像是复位操作,估计复位之后才能重新配置

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

376

主题

2009

帖子

3

粉丝