STM32/STM8技术论坛
直播中

petterpan

8年用户 6经验值
私信 关注
[问答]

请教关于STM32F0系列在停止模式下无法用CAN唤醒MCU的问题?

最近遇到的一个STM32在停止模式下无法用CAN来唤醒MCU的问题,我首先尝试用串口来唤醒停止模式下的MCU,结果是可以唤醒的,配置方法就是在进入停止模式之前将串口的接收引脚PA10配置成外部中断触发模式,唤醒后初始化系统时钟和串口配置。但是用同样的方式将CAN的接收引脚PB8设为外部中断触发模式,唤醒后初始化系统时钟和CAN配置却无法唤醒,虽然使用CANTest发送数据给板子显示发送失败,但是测量PB8是有波形的,使用的CAN收发器是支持低功耗模式下接收CAN帧的。按道理说只要PB8有波形就会唤醒MCU啊(难道停机模式下CAN控制器无法正常工作导致的?),希望做过类似功能的朋友或对这个问题有兴趣的朋友能提出一些建议,谢谢!
串口初始化






  • 1.png
  • 退出停止模式的描述
  • 进入停止模式的函数
  • 串口唤醒配置
  • can初始化
  • can初始化
  • can唤醒配置

回帖(5)

lee_st

2016-11-8 10:46:12
首先,你确定在stop模式下,惨能工作吗?然后用can中断唤醒,是没问题的,只要有任何中断,都能唤醒,但要确保这个外设在stop模式下是正常工作的
举报

petterpan

2016-11-8 14:10:57
引用: lee_st 发表于 2016-11-8 10:46
首先,你确定在stop模式下,惨能工作吗?然后用can中断唤醒,是没问题的,只要有任何中断,都能唤醒,但要确保这个外设在stop模式下是正常工作的

谢谢,我看了一下数据手册中stop模式所指定的通信外设唤醒没有提到can中断唤醒的方式,可能是不支持can唤醒吧,其实换种方式就是前面提到的将can的接收引脚PB8对应的外部中断线8在进入stop模式之前配置成中断模式(串口就是这样做的,只不过stop模式下本就支持串口中断唤醒,我当时可能没配置好也就没用),按道理说PB8有波形就会触发中断,实际测得是有波形的但是并没有唤醒mcu,我也仔细校对过PB8的外部中断配置,其实也就是按照一个普通I/O口的配置外部中断的方式来配置的,中断线8也没有被其他引脚占用,有波形,但就是唤醒不了0.0.。。。。。。。。。纳闷了
举报
  • 1.png

lee_st

2016-11-9 00:47:49
是吧,下次仔细看看Datasheet,还是很有用的
举报

petterpan

2016-11-10 17:52:18
找到原因了,中断函数的问题
举报

efans_58a

2019-9-21 12:49:06
我也有同样问题,能发下中断函数吗?或私信程序。谢谢!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分