ST意法半导体
登录
直播中
陈勇
7年用户
1177经验值
私信
关注
[问答]
如何通过CANbus中断从睡眠模式唤醒MCU?
开启该帖子的消息推送
CANBUS
我正在研究
电源
管理,我将 MCU 置于睡眠模式(无低功耗),但它在接收到 CAN 帧时不会唤醒,它保持在睡眠模式。我想要任何 CAN 帧来唤醒 MCU。
要切换到睡眠模式,我使用:
HAL_Suspend
ti
ck();
HAL_TIM_Base_Stop(&htim1);
HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI);
HAL_TIM_Base_Start(&htim1);
HAL_ResumeTick();
tick_sleep = HAL_GetTick();
CAN总线配置:
void MX_CAN_Init(void)
{
/* USER CODE BEGIN CAN_Init 0 */
/* USER CODE END CAN_Init 0 */
/* USER CODE BEGIN CAN_Init 1 */
/* USER CODE END CAN_Init 1 */
hcan.Instance = CAN1;
hcan.Init.Prescaler = 6;
hcan.Init.Mode = CAN_MODE_NORMAL;
hcan.Init.SyncJumpWidth = CAN_SJW_1TQ;
hcan.Init.TimeSeg1 = CAN_BS1_2TQ;
hcan.Init.TimeSeg2 = CAN_BS2_1TQ;
hcan.Init.TimeTriggeredMode = DISABLE;
hcan.Init.AutoBusOff = ENABLE;
hcan.Init.AutoWakeUp = ENABLE;
hcan.Init.AutoRetransmission = ENABLE;
hcan.Init.ReceiveFifoLocked = DISABLE;
hcan.Init.TransmitFifoPriority = DISABLE;
if (HAL_CAN_Init(&hcan) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN CAN_Init 2 */
HAL_CAN_Start(&hcan);
CAN_FilterTypeDef sFilterConfig;
sFilterConfig.FilterIdHigh = 0xFFFF;
sFilterConfig.FilterIdLow = 0xFFFF;
sFilterConfig.FilterMaskIdHigh = 0;
sFilterConfig.FilterMaskIdLow = 0;
sFilterConfig.FilterFIFOAssignment = CAN_RX_FIFO0;
sFilterConfig.FilterBank = 0;
sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;
sFilterConfig.FilterScale = CAN_FILTERSCALE_16BIT;
sFilterConfig.FilterActivation = ENABLE;
sFilterConfig.SlaveStartFilterBank = 0;
HAL_CAN_ConfigFilter(&hcan,&sFilterConfig);
/* USER CODE END CAN_Init 2 */
}
在我的代码中,我将 CAN Rx 配置为中断。
回帖
(1)
巩潇然
2022-12-5 14:11:23
好的,我找到了解决方案。我忘了添加
HAL_CAN_ActivateNotification(&hcan, CAN_IT_RX_FIFO0_MSG_PENDING);
好的,我找到了解决方案。我忘了添加
HAL_CAN_ActivateNotification(&hcan, CAN_IT_RX_FIFO0_MSG_PENDING);
举报
更多回帖
rotate(-90deg);
回复
相关问答
CANBUS
UJA1166ATK如何
唤醒
睡眠
模式
?
2023-04-20
171
CY8C4247LQI-BL483使用GPIO
中断
作为
唤醒
源将芯片
从
深度
睡眠
模式
中
唤醒
,为什么不起作用?
2024-01-24
176
请问MPU6050怎么
通过
中断
将STM32F103
从
睡眠
或者停止
模式
唤醒
?
2019-03-25
4035
如何让LPTMR工作在VLPS
模式
并
唤醒
MCU
?
2023-03-30
124
新手求助,如何
通过
UART使
MCU
进入低功耗
模式
2016-08-29
4497
ADUCM360:请问如何用外部
中断
将CPU
从
睡眠
模式
唤醒
?
2018-08-30
2266
程序进入
睡眠
模式
设置了定时器
中断
为什么不能
唤醒
睡眠
?
2023-10-19
134
设置RTC警报事件以
从
睡眠
模式
唤醒
STM32F103C8T6,后续警报永远不会
唤醒
MCU
怎么解决?
2022-12-26
157
请问s32k3
mcu
进入
睡眠
模式
后flexcan可以工作吗?
2023-03-23
114
RT1176拒绝在SPI外设的DMA
中断
上
从
睡眠
中
唤醒
怎么解决?
2023-03-29
118
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分