Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
英飞凌Infineon
PSoC™ 62 实现低功耗采集温湿度
发布于 2023-05-29 21:25:14 浏览:403
订阅该版
[tocm] # 目的 驱动hs3003温湿度传感器,采集完数据后进入深度睡眠模式,以达到节能的目的。 # 实现步聚 1、打开rtthreadsettings, 添加hs300x模块: ![screenshot_图片.png](https://oss-club.rt-thread.org/uploads/20230530/e145c4abb1f15e92610fe997045ba635.png.webp) 2、添加初始化代码: ```c #define HS300X_I2C_BUS "i2c1" int rt_hw_hs300x_port(void) { struct rt_sensor_config cfg; cfg.intf.dev_name = HS300X_I2C_BUS; cfg.intf.user_data = (void *)HS300X_I2C_ADDR; rt_hw_hs300x_init("hs300x", &cfg); return RT_EOK; } INIT_ENV_EXPORT(rt_hw_hs300x_port); ``` 3、修改主程序代码如下: ```c #include
#include
#include "sensor_renesas_hs300x.h" #include "drv_gpio.h" #define LED_PIN GET_PIN(0, 0) #define USE_SECONDS_FOR_ALARM 30 #define LONG_GLITCH_DELAY_MS 100u /* in ms */ #define RTC_INTERRUPT_PRIORITY 3u void set_rtc_alarm_date_time(void); cyhal_rtc_t rtc_obj; extern struct hs300x_device temp_humi_dev; int main(void) { cy_rslt_t result; float temp_f, humi_f; __enable_irq(); rt_pin_mode(LED_PIN, PIN_MODE_OUTPUT); rt_thread_mdelay(500); /* Initialize RTC */ cyhal_rtc_enable_event(&rtc_obj, CYHAL_RTC_ALARM, RTC_INTERRUPT_PRIORITY, true); for (;;) { rt_kprintf("Go to DeepSleep mode\r\n"); set_rtc_alarm_date_time(); cyhal_system_delay_ms(LONG_GLITCH_DELAY_MS); // /* Go to deep sleep */ cyhal_syspm_deepsleep(); rt_kprintf("Wakeup from DeepSleep mode\r\n"); hs300x_read_data(&temp_humi_dev, &humi_f, &temp_f); // /* Set the RTC generate alarm after 10 seconds */ rt_kprintf("Temp:%2d.%df, Humi:%2d%%\r\n",(int)temp_f,(int)(temp_f*10)%10, (int)humi_f); } } ``` # 实验效果 ``` [I/I2C] I2C bus [i2c1] registered \ | / - RT - Thread Operating System / | \ 4.1.1 build May 28 2023 12:08:51 2006 - 2022 Copyright by RT-Thread team [D/drv.rtc] rtc init success [D/drv.rtc] RTC: get rtc_time 946684800 [D/drv.rtc] RTC: get rtc_time 946684800 [D/drv.rtc] RTC: get rtc_time 946684800 [I/sensor] rt_sensor[temp_hs300x] init success [I/sensor] rt_sensor[humi_hs300x] init success msh >Go to DeepSleep mode Wakeup from DeepSleep mode Temp:29.6f, Humi:77% Go to DeepSleep mode ``` 用电流表测试深度睡眠相比休眠模式少15MA左右,因为板载的DAP等其他元件在用电,所以还不能测试出来工作电路的电流情况。
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
Lu_盼盼
这家伙很懒,什么也没写!
文章
35
回答
19
被采纳
0
关注TA
发私信
相关文章
1
RT-Thread支持英飞凌芯片吗?
2
RT-Thread系统在英飞凌TC364芯片上仅能在 Cpu 0 运行
3
请问版主RTT有没有移植到infineon的XC2000系列MCU上
4
关于RTT对于infineon 的Aurix系列的支持。
5
RT-AK使用,插件如何构建
6
PSOC6 BSP工程导入不成功
7
PSoCTM 62 初始化串口后进入休眠,功耗增加。
8
英飞凌PSoC 6 RTT开发板普通工程编译完ROM使用量就达到了1101KB
9
2023开发者大会动手实验环境搭建
10
英飞凌CYW43012 Wi-Fi 功能提示MAC地址获取错误
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
a1012112796
20
个答案
3
次被采纳
张世争
11
个答案
3
次被采纳
踩姑娘的小蘑菇
7
个答案
3
次被采纳
rv666
9
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
RTT_逍遥
1
篇文章
6
次点赞
大龄码农
1
篇文章
5
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部