当前位置: 首页 > news >正文

SiFli 52 UART的RX唤醒MCU怎么做

以下是MCU处于睡眠模式时的唤醒源:

如果您要从Deep/Standby睡眠模式中唤醒,可以看到并没有uart唤醒的功能,因此需要把UART的RX配置为GPIO模式,然后启用此IO的唤醒功能,请参阅例程`\example\rt_device\pm\project\hcpu`,如下所示:<br>

HAL_PIN_Set(PAD_PA26, USART2_TXD, PIN_PULLUP, 1); //uart2 default setting
HAL_PIN_Set(PAD_PA27, USART2_RXD, PIN_PULLUP, 1); //uart2 default setting static void gpio_wakeup_handler(void *args)
{rt_kprintf("gpio_wakeup_handler!\n");HAL_PIN_Set(PAD_PA27, USART2_RXD, PIN_PULLUP, 1); //switch to uart functionrt_pm_request(PM_SLEEP_MODE_IDLE); //set MCU not to sleep
}
#if defined(SF32LB52X)
{HAL_PIN_Set(PAD_PA27, GPIO_A27, PIN_PULLUP, 1); //set PA27 to GPIO funtionHAL_HPAON_EnableWakeupSrc(HPAON_WAKEUP_SRC_PIN3, AON_PIN_MODE_POS_EDGE); //Enable #WKUP_PIN3 (PA27)rt_pin_mode(27, PIN_MODE_INPUT);rt_pin_attach_irq(27, PIN_IRQ_MODE_RISING, (void *) gpio_wakeup_handler,\(void *)(rt_uint32_t) 27); //PA34 GPIO interruptrt_pin_irq_enable(27, 1);
}
#endif

建议使用独立的GPIO来唤醒MCU(大多数客户都是这样),如果你想让wakepin和uart rx2共享相同的GPIO,你需要像上面这样做更多的软件工作。等待唤醒完成(看到打印[pm]W:)后,才能接收UART数据,并保持mcu唤醒,直到rx工作完成。

http://www.lryc.cn/news/578465.html

相关文章:

  • 智能体瘦身实战:ONNX转换器+TensorRT加速器+显存监控仪
  • python多线程高级锁知识:Semaphore信号量、Barrier栅栏在线程中的使用、高级event事件
  • linux魔术字定位踩内存总结
  • 企业用哪个BI工具好?9款开源闭源PK
  • Milvus docker-compose 部署
  • 微软开源GitHub Copilot Chat,AI编程领域迎新突破
  • 商品中心—17.缓存与DB一致性的技术文档
  • 讯飞大模型实时语音识别
  • Set和Map的解析与应用场景
  • 集中式ZDM-E0400P3热电阻RTD测温模块(1) — 基础应用
  • WPF学习笔记(18)触发器Trigger
  • Postman - API 调试与开发工具 - 标准使用流程
  • Vue3 中 Excel 导出的性能优化与实战指南
  • 遥感影像岩性分类:基于CNN与CNN-EL集成学习的深度学习方法
  • 城市灯光夜景人像街拍摄影后期Lr调色教程,手机滤镜PS+Lightroom预设下载!
  • 【仿muduo库实现并发服务器】Poller模块
  • 华为交换机堆叠与集群技术深度解析附带脚本
  • 数字图像处理学习笔记
  • Python 可迭代的对象、迭代器 和生成器(Python 3.3中新出现的句法:yield from)
  • 静态工厂注入 vs 实例工厂注入
  • LINUX2.6设备注册与GPIO相关的API
  • FFmpeg 中./configure的解析
  • Linux基本命令篇 —— bc命令
  • 微软服务器安全问题
  • 【蓝牙】Linux Qt4查看已经配对的蓝牙信息
  • MCP 协议使用核心讲解
  • HDMI2.1 FRL流控 概览
  • 基于OPUS-MT模型的中译英程序实现
  • swing音频输入
  • Vue 安装使用教程