Compare commits

...

2 Commits
main ... light

Author SHA1 Message Date
c4f996d63f rtc find open 按rtt的格式 2025-08-26 12:55:19 +08:00
0a01667d4d 根据日出日落开关灯 2025-08-26 11:39:26 +08:00
13 changed files with 513 additions and 474 deletions

176
.config
View File

@ -213,7 +213,7 @@ CONFIG_RT_USING_PWM=y
# CONFIG_RT_USING_MTD_NAND is not set
# CONFIG_RT_USING_PM is not set
CONFIG_RT_USING_RTC=y
# CONFIG_RT_USING_ALARM is not set
CONFIG_RT_USING_ALARM=y
CONFIG_RT_USING_SOFT_RTC=y
CONFIG_RT_USING_SDIO=y
CONFIG_RT_SDIO_STACK_SIZE=512
@ -519,6 +519,7 @@ CONFIG_RT_VCOM_TX_TIMEOUT=1000
# CONFIG_PKG_USING_FREEMODBUS is not set
# CONFIG_PKG_USING_NANOPB is not set
# CONFIG_PKG_USING_WIFI_HOST_DRIVER is not set
# CONFIG_PKG_USING_ESP_HOSTED is not set
#
# Wi-Fi
@ -548,6 +549,9 @@ CONFIG_PKG_USING_RW007_V210=y
CONFIG_PKG_RW007_VER="v2.1.0"
# CONFIG_RW007_NOT_USE_EXAMPLE_DRIVERS is not set
CONFIG_RW007_USING_STM32_DRIVERS=y
# CONFIG_RW007_USING_BLE is not set
# CONFIG_RW007_USING_POWERSWITCH_EXAMPLE is not set
# CONFIG_RW007_USING_SPI_TEST is not set
CONFIG_RW007_SPI_MAX_HZ=30000000
CONFIG_RW007_SPI_BUS_NAME="spi2"
CONFIG_RW007_CS_PIN=90
@ -584,7 +588,7 @@ CONFIG_PKG_NETUTILS_PATH="/packages/iot/netutils"
# CONFIG_PKG_NETUTILS_NETIO is not set
CONFIG_PKG_NETUTILS_NTP=y
CONFIG_NTP_USING_AUTO_SYNC=y
CONFIG_NTP_AUTO_SYNC_FIRST_DELAY=30
CONFIG_NTP_AUTO_SYNC_FIRST_DELAY=5
CONFIG_NTP_AUTO_SYNC_PERIOD=3600
CONFIG_NETUTILS_NTP_HOSTNAME="cn.ntp.org.cn"
CONFIG_NETUTILS_NTP_HOSTNAME2="ntp.rt-thread.org"
@ -737,6 +741,9 @@ CONFIG_PKG_ALI_IOTKIT_VER_NUM=0x30002
# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set
# CONFIG_PKG_USING_LHC_MODBUS is not set
# CONFIG_PKG_USING_QMODBUS is not set
# CONFIG_PKG_USING_PNET is not set
# CONFIG_PKG_USING_OPENER is not set
# CONFIG_PKG_USING_FREEMQTT is not set
# end of IoT - internet of things
#
@ -773,6 +780,7 @@ CONFIG_PKG_CJSON_VER="v1.7.17"
# CONFIG_PKG_USING_JSMN is not set
# CONFIG_PKG_USING_AGILE_JSMN is not set
# CONFIG_PKG_USING_PARSON is not set
# CONFIG_PKG_USING_RYAN_JSON is not set
# end of JSON: JavaScript Object Notation, a lightweight data-interchange format
#
@ -835,6 +843,7 @@ CONFIG_PKG_CJSON_VER="v1.7.17"
# tools packages
#
# CONFIG_PKG_USING_CMBACKTRACE is not set
# CONFIG_PKG_USING_MCOREDUMP is not set
# CONFIG_PKG_USING_EASYFLASH is not set
# CONFIG_PKG_USING_EASYLOGGER is not set
# CONFIG_PKG_USING_SYSTEMVIEW is not set
@ -883,6 +892,9 @@ CONFIG_PKG_VCONSOLE_VER="latest"
# CONFIG_PKG_USING_VOFA_PLUS is not set
# CONFIG_PKG_USING_RT_TRACE is not set
# CONFIG_PKG_USING_ZDEBUG is not set
# CONFIG_PKG_USING_RVBACKTRACE is not set
# CONFIG_PKG_USING_HPATCHLITE is not set
# CONFIG_PKG_USING_THREAD_METRIC is not set
# end of tools packages
#
@ -894,26 +906,6 @@ CONFIG_PKG_VCONSOLE_VER="latest"
#
# CONFIG_PKG_USING_RT_MEMCPY_CM is not set
# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
CONFIG_PKG_USING_RT_VSNPRINTF_FULL=y
CONFIG_PKG_RT_VSNPRINTF_FULL_PATH="/packages/system/enhanced-kservice/rt_vsnprintf_full"
CONFIG_PKG_VSNPRINTF_SUPPORT_DECIMAL_SPECIFIERS=y
CONFIG_PKG_VSNPRINTF_SUPPORT_EXPONENTIAL_SPECIFIERS=y
CONFIG_PKG_VSNPRINTF_SUPPORT_WRITEBACK_SPECIFIER=y
CONFIG_PKG_VSNPRINTF_SUPPORT_LONG_LONG=y
CONFIG_PKG_VSNPRINTF_CHECK_FOR_NUL_IN_FORMAT_SPECIFIER=y
# CONFIG_PKG_VSNPRINTF_SUPPORT_MSVC_STYLE_INTEGER_SPECIFIERS is not set
CONFIG_PKG_VSNPRINTF_INTEGER_BUFFER_SIZE=32
CONFIG_PKG_VSNPRINTF_DECIMAL_BUFFER_SIZE=32
CONFIG_PKG_VSNPRINTF_DEFAULT_FLOAT_PRECISION=6
CONFIG_PKG_VSNPRINTF_MAX_INTEGRAL_DIGITS_FOR_DECIMAL=9
CONFIG_PKG_VSNPRINTF_LOG10_TAYLOR_TERMS=4
# CONFIG_RT_VSNPRINTF_FULL_REPLACING_SPRINTF is not set
# CONFIG_RT_VSNPRINTF_FULL_REPLACING_SNPRINTF is not set
# CONFIG_RT_VSNPRINTF_FULL_REPLACING_PRINTF is not set
# CONFIG_RT_VSNPRINTF_FULL_REPLACING_VSPRINTF is not set
# CONFIG_RT_VSNPRINTF_FULL_REPLACING_VSNPRINTF is not set
CONFIG_PKG_USING_RT_VSNPRINTF_FULL_LATEST_VERSION=y
CONFIG_PKG_RT_VSNPRINTF_FULL_VER="latest"
# end of enhanced kernel services
# CONFIG_PKG_USING_AUNITY is not set
@ -931,7 +923,6 @@ CONFIG_PKG_RT_VSNPRINTF_FULL_VER="latest"
#
# CONFIG_PKG_USING_CMSIS_5 is not set
# CONFIG_PKG_USING_CMSIS_CORE is not set
# CONFIG_PKG_USING_CMSIS_DSP is not set
# CONFIG_PKG_USING_CMSIS_NN is not set
# CONFIG_PKG_USING_CMSIS_RTOS1 is not set
# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
@ -988,7 +979,6 @@ CONFIG_PKG_PERF_COUNTER_VER="v2.2.4.1"
# CONFIG_PKG_USING_ARM_2D is not set
# CONFIG_PKG_USING_MCUBOOT is not set
# CONFIG_PKG_USING_TINYUSB is not set
# CONFIG_PKG_USING_CHERRYUSB is not set
# CONFIG_PKG_USING_KMULTI_RTIMER is not set
# CONFIG_PKG_USING_TFDB is not set
# CONFIG_PKG_USING_QPC is not set
@ -996,10 +986,14 @@ CONFIG_PKG_PERF_COUNTER_VER="v2.2.4.1"
# CONFIG_PKG_USING_FLASH_BLOB is not set
# CONFIG_PKG_USING_MLIBC is not set
# CONFIG_PKG_USING_TASK_MSG_BUS is not set
# CONFIG_PKG_USING_UART_FRAMEWORK is not set
# CONFIG_PKG_USING_SFDB is not set
# CONFIG_PKG_USING_RTP is not set
# CONFIG_PKG_USING_REB is not set
# CONFIG_PKG_USING_RMP is not set
# CONFIG_PKG_USING_R_RHEALSTONE is not set
# CONFIG_PKG_USING_HEARTBEAT is not set
# CONFIG_PKG_USING_MICRO_ROS_RTTHREAD_PACKAGE is not set
# end of system packages
#
@ -1013,11 +1007,45 @@ CONFIG_PKG_PERF_COUNTER_VER="v2.2.4.1"
#
# STM32 HAL & SDK Drivers
#
# CONFIG_PKG_USING_STM32F0_HAL_DRIVER is not set
# CONFIG_PKG_USING_STM32F0_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_STM32F1_HAL_DRIVER is not set
# CONFIG_PKG_USING_STM32F1_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_STM32F2_HAL_DRIVER is not set
# CONFIG_PKG_USING_STM32F2_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_STM32F3_HAL_DRIVER is not set
# CONFIG_PKG_USING_STM32F3_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_STM32F4_HAL_DRIVER is not set
# CONFIG_PKG_USING_STM32F4_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_STM32F7_HAL_DRIVER is not set
# CONFIG_PKG_USING_STM32F7_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_STM32G0_HAL_DRIVER is not set
# CONFIG_PKG_USING_STM32G0_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_STM32G4_HAL_DRIVER is not set
# CONFIG_PKG_USING_STM32G4_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_STM32H5_HAL_DRIVER is not set
# CONFIG_PKG_USING_STM32H5_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_STM32H7_HAL_DRIVER is not set
# CONFIG_PKG_USING_STM32H7_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_STM32H7RS_HAL_DRIVER is not set
# CONFIG_PKG_USING_STM32H7RS_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_STM32L0_HAL_DRIVER is not set
# CONFIG_PKG_USING_STM32L0_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_STM32L4_HAL_DRIVER is not set
# CONFIG_PKG_USING_STM32L4_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_STM32L5_HAL_DRIVER is not set
# CONFIG_PKG_USING_STM32L5_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_STM32U5_HAL_DRIVER is not set
# CONFIG_PKG_USING_STM32U5_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_STM32WB55_SDK is not set
# CONFIG_PKG_USING_STM32_SDIO is not set
CONFIG_SDIO_MAX_FREQ=1000000
# CONFIG_PKG_USING_STM32WL_HAL_DRIVER is not set
# CONFIG_PKG_USING_STM32WL_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_STM32WB_HAL_DRIVER is not set
# CONFIG_PKG_USING_STM32WB_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_STM32MP1_M4_HAL_DRIVER is not set
# CONFIG_PKG_USING_STM32MP1_M4_CMSIS_DRIVER is not set
# end of STM32 HAL & SDK Drivers
#
@ -1048,7 +1076,81 @@ CONFIG_SDIO_MAX_FREQ=1000000
# CONFIG_PKG_USING_NRF5X_SDK is not set
# CONFIG_PKG_USING_NRFX is not set
# CONFIG_PKG_USING_RASPBERRYPI_PICO_RP2350_SDK is not set
# CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set
# CONFIG_PKG_USING_MM32 is not set
#
# WCH HAL & SDK Drivers
#
# CONFIG_PKG_USING_CH32V20x_SDK is not set
# CONFIG_PKG_USING_CH32V307_SDK is not set
# end of WCH HAL & SDK Drivers
#
# AT32 HAL & SDK Drivers
#
# CONFIG_PKG_USING_AT32A403A_HAL_DRIVER is not set
# CONFIG_PKG_USING_AT32A403A_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_AT32A423_HAL_DRIVER is not set
# CONFIG_PKG_USING_AT32A423_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_AT32F45x_HAL_DRIVER is not set
# CONFIG_PKG_USING_AT32F45x_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_AT32F402_405_HAL_DRIVER is not set
# CONFIG_PKG_USING_AT32F402_405_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_AT32F403A_407_HAL_DRIVER is not set
# CONFIG_PKG_USING_AT32F403A_407_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_AT32F413_HAL_DRIVER is not set
# CONFIG_PKG_USING_AT32F413_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_AT32F415_HAL_DRIVER is not set
# CONFIG_PKG_USING_AT32F415_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_AT32F421_HAL_DRIVER is not set
# CONFIG_PKG_USING_AT32F421_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_AT32F423_HAL_DRIVER is not set
# CONFIG_PKG_USING_AT32F423_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_AT32F425_HAL_DRIVER is not set
# CONFIG_PKG_USING_AT32F425_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_AT32F435_437_HAL_DRIVER is not set
# CONFIG_PKG_USING_AT32F435_437_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_AT32M412_416_HAL_DRIVER is not set
# CONFIG_PKG_USING_AT32M412_416_CMSIS_DRIVER is not set
# end of AT32 HAL & SDK Drivers
#
# HC32 DDL Drivers
#
# CONFIG_PKG_USING_HC32F3_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_HC32F3_SERIES_DRIVER is not set
# CONFIG_PKG_USING_HC32F4_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_HC32F4_SERIES_DRIVER is not set
# end of HC32 DDL Drivers
#
# NXP HAL & SDK Drivers
#
# CONFIG_PKG_USING_NXP_MCX_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_NXP_MCX_SERIES_DRIVER is not set
# CONFIG_PKG_USING_NXP_LPC_DRIVER is not set
# CONFIG_PKG_USING_NXP_LPC55S_DRIVER is not set
# CONFIG_PKG_USING_NXP_IMX6SX_DRIVER is not set
# CONFIG_PKG_USING_NXP_IMX6UL_DRIVER is not set
# CONFIG_PKG_USING_NXP_IMXRT_DRIVER is not set
# end of NXP HAL & SDK Drivers
#
# NUVOTON Drivers
#
# CONFIG_PKG_USING_NUVOTON_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_NUVOTON_SERIES_DRIVER is not set
# CONFIG_PKG_USING_NUVOTON_ARM926_LIB is not set
# end of NUVOTON Drivers
#
# GD32 Drivers
#
# CONFIG_PKG_USING_GD32_ARM_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_GD32_ARM_SERIES_DRIVER is not set
# end of GD32 Drivers
# end of HAL & SDK Drivers
#
@ -1072,9 +1174,11 @@ CONFIG_SDIO_MAX_FREQ=1000000
# CONFIG_PKG_USING_MPU6XXX is not set
CONFIG_PKG_USING_AHT10=y
CONFIG_PKG_AHT10_PATH="/packages/peripherals/sensors/aht10"
# CONFIG_AHT10_USING_SOFT_FILTER is not set
# CONFIG_AHT10_USING_SENSOR_DEVICE is not set
# CONFIG_PKG_AHT10_USING_SOFT_FILTER is not set
# CONFIG_PKG_AHT10_USING_SENSOR_V2 is not set
# CONFIG_PKG_USING_AHT10_SAMPLE is not set
CONFIG_PKG_USING_AHT10_LATEST_VERSION=y
# CONFIG_PKG_USING_AHT10_V300 is not set
# CONFIG_PKG_USING_AHT10_V210 is not set
CONFIG_PKG_AHT10_VER="latest"
CONFIG_PKG_USING_AP3216C=y
@ -1099,14 +1203,17 @@ CONFIG_PKG_AP3216C_VER="latest"
# CONFIG_PKG_USING_BMI088 is not set
# CONFIG_PKG_USING_HMC5883 is not set
# CONFIG_PKG_USING_MAX6675 is not set
# CONFIG_PKG_USING_MAX31855 is not set
# CONFIG_PKG_USING_TMP1075 is not set
# CONFIG_PKG_USING_SR04 is not set
# CONFIG_PKG_USING_CCS811 is not set
# CONFIG_PKG_USING_PMSXX is not set
# CONFIG_PKG_USING_RT3020 is not set
# CONFIG_PKG_USING_MLX90632 is not set
# CONFIG_PKG_USING_MLX90382 is not set
# CONFIG_PKG_USING_MLX90393 is not set
# CONFIG_PKG_USING_MLX90392 is not set
# CONFIG_PKG_USING_MLX90394 is not set
# CONFIG_PKG_USING_MLX90397 is not set
# CONFIG_PKG_USING_MS5611 is not set
# CONFIG_PKG_USING_MAX31865 is not set
@ -1136,6 +1243,9 @@ CONFIG_PKG_USING_ICM20608_LATEST_VERSION=y
CONFIG_PKG_ICM20608_VER="latest"
# CONFIG_PKG_USING_PAJ7620 is not set
# CONFIG_PKG_USING_STHS34PF80 is not set
# CONFIG_PKG_USING_P3T1755 is not set
# CONFIG_PKG_USING_QMI8658 is not set
# CONFIG_PKG_USING_ICM20948 is not set
# end of sensors drivers
#
@ -1242,6 +1352,14 @@ CONFIG_PKG_INFRARED_VER="v0.1.1"
# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set
# CONFIG_PKG_USING_BT_MX01 is not set
# CONFIG_PKG_USING_RGPOWER is not set
# CONFIG_PKG_USING_BT_MX02 is not set
# CONFIG_PKG_USING_GC9A01 is not set
# CONFIG_PKG_USING_IK485 is not set
# CONFIG_PKG_USING_SERVO is not set
# CONFIG_PKG_USING_SEAN_WS2812B is not set
# CONFIG_PKG_USING_IC74HC165 is not set
# CONFIG_PKG_USING_IST8310 is not set
# CONFIG_PKG_USING_ST7789_SPI is not set
# CONFIG_PKG_USING_SPI_TOOLS is not set
# end of peripheral libraries and drivers
@ -1258,6 +1376,7 @@ CONFIG_PKG_INFRARED_VER="v0.1.1"
# CONFIG_PKG_USING_QUEST is not set
# CONFIG_PKG_USING_NAXOS is not set
# CONFIG_PKG_USING_R_TINYMAIX is not set
# CONFIG_PKG_USING_LLMCHAT is not set
# end of AI packages
#
@ -1269,6 +1388,7 @@ CONFIG_PKG_INFRARED_VER="v0.1.1"
# CONFIG_PKG_USING_UKAL is not set
# CONFIG_PKG_USING_DIGITALCTRL is not set
# CONFIG_PKG_USING_KISSFFT is not set
# CONFIG_PKG_USING_CMSIS_DSP is not set
# end of Signal Processing and Control Algorithm Packages
#
@ -1299,7 +1419,6 @@ CONFIG_KERNEL_SAMPLES_USING_EVENT=y
CONFIG_KERNEL_SAMPLES_USING_MESSAGEQUEUE=y
# CONFIG_KERNEL_SAMPLES_USING_TIMER is not set
# CONFIG_KERNEL_SAMPLES_USING_HEAP is not set
# CONFIG_KERNEL_SAMPLES_USING_MEMHEAP is not set
# CONFIG_KERNEL_SAMPLES_USING_MEMPOOL is not set
# CONFIG_KERNEL_SAMPLES_USING_IDLEHOOK is not set
# CONFIG_KERNEL_SAMPLES_USING_SIGNAL is not set
@ -1358,6 +1477,7 @@ CONFIG_PKG_FLEXIBLE_BUTTON_VER="v1.0.0"
# CONFIG_PKG_USING_KI is not set
# CONFIG_PKG_USING_ARMv7M_DWT is not set
# CONFIG_PKG_USING_CRCLIB is not set
# CONFIG_PKG_USING_LIBCRC is not set
# CONFIG_PKG_USING_LWGPS is not set
# CONFIG_PKG_USING_STATE_MACHINE is not set
# CONFIG_PKG_USING_DESIGN_PATTERN is not set
@ -1369,6 +1489,7 @@ CONFIG_PKG_FLEXIBLE_BUTTON_VER="v1.0.0"
# CONFIG_PKG_USING_QPARAM is not set
# CONFIG_PKG_USING_CorevMCU_CLI is not set
# CONFIG_PKG_USING_GET_IRQ_PRIORITY is not set
# CONFIG_PKG_USING_DRMP is not set
# end of miscellaneous packages
#
@ -1382,6 +1503,7 @@ CONFIG_PKG_FLEXIBLE_BUTTON_VER="v1.0.0"
# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set
# CONFIG_PKG_USING_ARDUINO_SKETCH_LOADER_DEMO is not set
# CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set
# CONFIG_PKG_USING_ARDUINO_RTDUINO_SENSORFUSION_SHIELD is not set
# CONFIG_PKG_USING_ARDUINO_NINEINONE_SENSOR_SHIELD is not set
# CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set
# CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set

View File

@ -61,322 +61,9 @@
"__builtin_arm_usat(x,y)=0U",
"__builtin_arm_ldaex(x)=0U",
"__builtin_arm_stlex(x,y)=0U",
"_ILP32=1",
"_USE_STATIC_INLINE=1",
"__APCS_32__=1",
"__ARMCC_VERSION=6070001",
"__ARMCOMPILER_VERSION=6070001",
"__ARMEL__=1",
"__ARM_32BIT_STATE=1",
"__ARM_ACLE=200",
"__ARM_ARCH=4",
"__ARM_ARCH_4T__=1",
"__ARM_ARCH_ISA_ARM=1",
"__ARM_ARCH_ISA_THUMB=1",
"__ARM_EABI__=1",
"__ARM_FP16_ARGS=1",
"__ARM_FP16_FORMAT_IEEE=1",
"__ARM_NO_IMAGINARY_TYPE=1",
"__ARM_PCS=1",
"__ARM_PROMISE=__builtin_assume",
"__ARM_SIZEOF_MINIMAL_ENUM=4",
"__ARM_SIZEOF_WCHAR_T=4",
"__ARM_TARGET_COPROC=1",
"__ARM_TARGET_COPROC_V4=1",
"__ATOMIC_ACQUIRE=2",
"__ATOMIC_ACQ_REL=4",
"__ATOMIC_CONSUME=1",
"__ATOMIC_RELAXED=0",
"__ATOMIC_RELEASE=3",
"__ATOMIC_SEQ_CST=5",
"__BIGGEST_ALIGNMENT__=8",
"__BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__",
"__CHAR16_TYPE__=unsigned short",
"__CHAR32_TYPE__=unsigned int",
"__CHAR_BIT__=8",
"__CHAR_UNSIGNED__=1",
"__CONSTANT_CFSTRINGS__=1",
"__DBL_DECIMAL_DIG__=17",
"__DBL_DENORM_MIN__=4.9406564584124654e-324",
"__DBL_DIG__=15",
"__DBL_EPSILON__=2.2204460492503131e-16",
"__DBL_HAS_DENORM__=1",
"__DBL_HAS_INFINITY__=1",
"__DBL_HAS_QUIET_NAN__=1",
"__DBL_MANT_DIG__=53",
"__DBL_MAX_10_EXP__=308",
"__DBL_MAX_EXP__=1024",
"__DBL_MAX__=1.7976931348623157e+308",
"__DBL_MIN_10_EXP__=(-307)",
"__DBL_MIN_EXP__=(-1021)",
"__DBL_MIN__=2.2250738585072014e-308",
"__DECIMAL_DIG__=__LDBL_DECIMAL_DIG__",
"__ELF__=1",
"__ESCAPE__=",
"__FINITE_MATH_ONLY__=1",
"__FLT_DECIMAL_DIG__=9",
"__FLT_DENORM_MIN__=1.40129846e-45F",
"__FLT_DIG__=6",
"__FLT_EPSILON__=1.19209290e-7F",
"__FLT_EVAL_METHOD__=0",
"__FLT_HAS_DENORM__=1",
"__FLT_HAS_INFINITY__=1",
"__FLT_HAS_QUIET_NAN__=1",
"__FLT_MANT_DIG__=24",
"__FLT_MAX_10_EXP__=38",
"__FLT_MAX_EXP__=128",
"__FLT_MAX__=3.40282347e+38F",
"__FLT_MIN_10_EXP__=(-37)",
"__FLT_MIN_EXP__=(-125)",
"__FLT_MIN__=1.17549435e-38F",
"__FLT_RADIX__=2",
"__GCC_ATOMIC_BOOL_LOCK_FREE=1",
"__GCC_ATOMIC_CHAR16_T_LOCK_FREE=1",
"__GCC_ATOMIC_CHAR32_T_LOCK_FREE=1",
"__GCC_ATOMIC_CHAR_LOCK_FREE=1",
"__GCC_ATOMIC_INT_LOCK_FREE=1",
"__GCC_ATOMIC_LLONG_LOCK_FREE=1",
"__GCC_ATOMIC_LONG_LOCK_FREE=1",
"__GCC_ATOMIC_POINTER_LOCK_FREE=1",
"__GCC_ATOMIC_SHORT_LOCK_FREE=1",
"__GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1",
"__GCC_ATOMIC_WCHAR_T_LOCK_FREE=1",
"__GNUC_MINOR__=2",
"__GNUC_PATCHLEVEL__=1",
"__GNUC_STDC_INLINE__=1",
"__GNUC__=4",
"__GXX_ABI_VERSION=1002",
"__ILP32__=1",
"__INT16_C_SUFFIX__=",
"__INT16_FMTd__=\"hd\"",
"__INT16_FMTi__=\"hi\"",
"__INT16_MAX__=32767",
"__INT16_TYPE__=short",
"__INT32_C_SUFFIX__=",
"__INT32_FMTd__=\"d\"",
"__INT32_FMTi__=\"i\"",
"__INT32_MAX__=2147483647",
"__INT32_TYPE__=int",
"__INT64_C_SUFFIX__=LL",
"__INT64_FMTd__=\"lld\"",
"__INT64_FMTi__=\"lli\"",
"__INT64_MAX__=9223372036854775807LL",
"__INT64_TYPE__=long long int",
"__INT8_C_SUFFIX__=",
"__INT8_FMTd__=\"hhd\"",
"__INT8_FMTi__=\"hhi\"",
"__INT8_MAX__=127",
"__INT8_TYPE__=signed char",
"__INTMAX_C_SUFFIX__=LL",
"__INTMAX_FMTd__=\"lld\"",
"__INTMAX_FMTi__=\"lli\"",
"__INTMAX_MAX__=9223372036854775807LL",
"__INTMAX_TYPE__=long long int",
"__INTMAX_WIDTH__=64",
"__INTPTR_FMTd__=\"ld\"",
"__INTPTR_FMTi__=\"li\"",
"__INTPTR_MAX__=2147483647L",
"__INTPTR_TYPE__=long int",
"__INTPTR_WIDTH__=32",
"__INT_FAST16_FMTd__=\"hd\"",
"__INT_FAST16_FMTi__=\"hi\"",
"__INT_FAST16_MAX__=32767",
"__INT_FAST16_TYPE__=short",
"__INT_FAST32_FMTd__=\"d\"",
"__INT_FAST32_FMTi__=\"i\"",
"__INT_FAST32_MAX__=2147483647",
"__INT_FAST32_TYPE__=int",
"__INT_FAST64_FMTd__=\"lld\"",
"__INT_FAST64_FMTi__=\"lli\"",
"__INT_FAST64_MAX__=9223372036854775807LL",
"__INT_FAST64_TYPE__=long long int",
"__INT_FAST8_FMTd__=\"hhd\"",
"__INT_FAST8_FMTi__=\"hhi\"",
"__INT_FAST8_MAX__=127",
"__INT_FAST8_TYPE__=signed char",
"__INT_LEAST16_FMTd__=\"hd\"",
"__INT_LEAST16_FMTi__=\"hi\"",
"__INT_LEAST16_MAX__=32767",
"__INT_LEAST16_TYPE__=short",
"__INT_LEAST32_FMTd__=\"d\"",
"__INT_LEAST32_FMTi__=\"i\"",
"__INT_LEAST32_MAX__=2147483647",
"__INT_LEAST32_TYPE__=int",
"__INT_LEAST64_FMTd__=\"lld\"",
"__INT_LEAST64_FMTi__=\"lli\"",
"__INT_LEAST64_MAX__=9223372036854775807LL",
"__INT_LEAST64_TYPE__=long long int",
"__INT_LEAST8_FMTd__=\"hhd\"",
"__INT_LEAST8_FMTi__=\"hhi\"",
"__INT_LEAST8_MAX__=127",
"__INT_LEAST8_TYPE__=signed char",
"__INT_MAX__=2147483647",
"__I__=1.0if",
"__LDBL_DECIMAL_DIG__=17",
"__LDBL_DENORM_MIN__=4.9406564584124654e-324L",
"__LDBL_DIG__=15",
"__LDBL_EPSILON__=2.2204460492503131e-16L",
"__LDBL_HAS_DENORM__=1",
"__LDBL_HAS_INFINITY__=1",
"__LDBL_HAS_QUIET_NAN__=1",
"__LDBL_MANT_DIG__=53",
"__LDBL_MAX_10_EXP__=308",
"__LDBL_MAX_EXP__=1024",
"__LDBL_MAX__=1.7976931348623157e+308L",
"__LDBL_MIN_10_EXP__=(-307)",
"__LDBL_MIN_EXP__=(-1021)",
"__LDBL_MIN__=2.2250738585072014e-308L",
"__LITTLE_ENDIAN__=1",
"__LONG_LONG_MAX__=9223372036854775807LL",
"__LONG_MAX__=2147483647L",
"__NO_INLINE__=1",
"__OBJC_BOOL_IS_BOOL=0",
"__ORDER_BIG_ENDIAN__=4321",
"__ORDER_LITTLE_ENDIAN__=1234",
"__ORDER_PDP_ENDIAN__=3412",
"__POINTER_WIDTH__=32",
"__PRAGMA_REDEFINE_EXTNAME=1",
"__PTRDIFF_FMTd__=\"d\"",
"__PTRDIFF_FMTi__=\"i\"",
"__PTRDIFF_MAX__=2147483647",
"__PTRDIFF_TYPE__=int",
"__PTRDIFF_WIDTH__=32",
"__REGISTER_PREFIX__=",
"__SCHAR_MAX__=127",
"__SHRT_MAX__=32767",
"__SIG_ATOMIC_MAX__=2147483647",
"__SIG_ATOMIC_WIDTH__=32",
"__SIZEOF_DOUBLE__=8",
"__SIZEOF_FLOAT__=4",
"__SIZEOF_INT__=4",
"__SIZEOF_LONG_DOUBLE__=8",
"__SIZEOF_LONG_LONG__=8",
"__SIZEOF_LONG__=4",
"__SIZEOF_POINTER__=4",
"__SIZEOF_PTRDIFF_T__=4",
"__SIZEOF_SHORT__=2",
"__SIZEOF_SIZE_T__=4",
"__SIZEOF_WCHAR_T__=4",
"__SIZEOF_WINT_T__=4",
"__SIZE_FMTX__=\"X\"",
"__SIZE_FMTo__=\"o\"",
"__SIZE_FMTu__=\"u\"",
"__SIZE_FMTx__=\"x\"",
"__SIZE_MAX__=4294967295U",
"__SIZE_TYPE__=unsigned int",
"__SIZE_WIDTH__=32",
"__STDC_HOSTED__=1",
"__STDC_UTF_16__=1",
"__STDC_UTF_32__=1",
"__STDC_VERSION__=201112L",
"__STDC__=1",
"__UINT16_C_SUFFIX__=",
"__UINT16_FMTX__=\"hX\"",
"__UINT16_FMTo__=\"ho\"",
"__UINT16_FMTu__=\"hu\"",
"__UINT16_FMTx__=\"hx\"",
"__UINT16_MAX__=65535",
"__UINT16_TYPE__=unsigned short",
"__UINT32_C_SUFFIX__=U",
"__UINT32_FMTX__=\"X\"",
"__UINT32_FMTo__=\"o\"",
"__UINT32_FMTu__=\"u\"",
"__UINT32_FMTx__=\"x\"",
"__UINT32_MAX__=4294967295U",
"__UINT32_TYPE__=unsigned int",
"__UINT64_C_SUFFIX__=ULL",
"__UINT64_FMTX__=\"llX\"",
"__UINT64_FMTo__=\"llo\"",
"__UINT64_FMTu__=\"llu\"",
"__UINT64_FMTx__=\"llx\"",
"__UINT64_MAX__=18446744073709551615ULL",
"__UINT64_TYPE__=long long unsigned int",
"__UINT8_C_SUFFIX__=",
"__UINT8_FMTX__=\"hhX\"",
"__UINT8_FMTo__=\"hho\"",
"__UINT8_FMTu__=\"hhu\"",
"__UINT8_FMTx__=\"hhx\"",
"__UINT8_MAX__=255",
"__UINT8_TYPE__=unsigned char",
"__UINTMAX_C_SUFFIX__=ULL",
"__UINTMAX_FMTX__=\"llX\"",
"__UINTMAX_FMTo__=\"llo\"",
"__UINTMAX_FMTu__=\"llu\"",
"__UINTMAX_FMTx__=\"llx\"",
"__UINTMAX_MAX__=18446744073709551615ULL",
"__UINTMAX_TYPE__=long long unsigned int",
"__UINTMAX_WIDTH__=64",
"__UINTPTR_FMTX__=\"lX\"",
"__UINTPTR_FMTo__=\"lo\"",
"__UINTPTR_FMTu__=\"lu\"",
"__UINTPTR_FMTx__=\"lx\"",
"__UINTPTR_MAX__=4294967295UL",
"__UINTPTR_TYPE__=long unsigned int",
"__UINTPTR_WIDTH__=32",
"__UINT_FAST16_FMTX__=\"hX\"",
"__UINT_FAST16_FMTo__=\"ho\"",
"__UINT_FAST16_FMTu__=\"hu\"",
"__UINT_FAST16_FMTx__=\"hx\"",
"__UINT_FAST16_MAX__=65535",
"__UINT_FAST16_TYPE__=unsigned short",
"__UINT_FAST32_FMTX__=\"X\"",
"__UINT_FAST32_FMTo__=\"o\"",
"__UINT_FAST32_FMTu__=\"u\"",
"__UINT_FAST32_FMTx__=\"x\"",
"__UINT_FAST32_MAX__=4294967295U",
"__UINT_FAST32_TYPE__=unsigned int",
"__UINT_FAST64_FMTX__=\"llX\"",
"__UINT_FAST64_FMTo__=\"llo\"",
"__UINT_FAST64_FMTu__=\"llu\"",
"__UINT_FAST64_FMTx__=\"llx\"",
"__UINT_FAST64_MAX__=18446744073709551615ULL",
"__UINT_FAST64_TYPE__=long long unsigned int",
"__UINT_FAST8_FMTX__=\"hhX\"",
"__UINT_FAST8_FMTo__=\"hho\"",
"__UINT_FAST8_FMTu__=\"hhu\"",
"__UINT_FAST8_FMTx__=\"hhx\"",
"__UINT_FAST8_MAX__=255",
"__UINT_FAST8_TYPE__=unsigned char",
"__UINT_LEAST16_FMTX__=\"hX\"",
"__UINT_LEAST16_FMTo__=\"ho\"",
"__UINT_LEAST16_FMTu__=\"hu\"",
"__UINT_LEAST16_FMTx__=\"hx\"",
"__UINT_LEAST16_MAX__=65535",
"__UINT_LEAST16_TYPE__=unsigned short",
"__UINT_LEAST32_FMTX__=\"X\"",
"__UINT_LEAST32_FMTo__=\"o\"",
"__UINT_LEAST32_FMTu__=\"u\"",
"__UINT_LEAST32_FMTx__=\"x\"",
"__UINT_LEAST32_MAX__=4294967295U",
"__UINT_LEAST32_TYPE__=unsigned int",
"__UINT_LEAST64_FMTX__=\"llX\"",
"__UINT_LEAST64_FMTo__=\"llo\"",
"__UINT_LEAST64_FMTu__=\"llu\"",
"__UINT_LEAST64_FMTx__=\"llx\"",
"__UINT_LEAST64_MAX__=18446744073709551615ULL",
"__UINT_LEAST64_TYPE__=long long unsigned int",
"__UINT_LEAST8_FMTX__=\"hhX\"",
"__UINT_LEAST8_FMTo__=\"hho\"",
"__UINT_LEAST8_FMTu__=\"hhu\"",
"__UINT_LEAST8_FMTx__=\"hhx\"",
"__UINT_LEAST8_MAX__=255",
"__UINT_LEAST8_TYPE__=unsigned char",
"__USER_LABEL_PREFIX__=",
"__VERSION__=\"4.2.1 Compatible Clang 5.0.0 \"",
"__WCHAR_MAX__=4294967295U",
"__WCHAR_TYPE__=unsigned int",
"__WCHAR_UNSIGNED__=1",
"__WCHAR_WIDTH__=32",
"__WINT_TYPE__=int",
"__WINT_WIDTH__=32",
"__arm=1",
"__arm__=1",
"__clang__=1",
"__clang_major__=5",
"__clang_minor__=0",
"__clang_patchlevel__=0",
"__clang_version__=\"5.0.0 \"",
"__llvm__=1"
"__GNUC_MINOR__=2",
"__GNUC_PATCHLEVEL__=1"
],
"intelliSenseMode": "gcc-arm",
"compilerPath": "d:/Develop/env2/tools/gnu_gcc/arm_gcc/mingw/bin/arm-none-eabi-gcc",
@ -407,8 +94,6 @@
"d:\\components\\libc\\compilers\\common\\extension\\fcntl\\octal",
"d:\\Develop\\SumProject\\applications",
"d:\\include",
"D:\\Keil5\\ARM\\ARMCLANG\\include",
"D:\\Keil5\\ARM\\ARMCLANG\\include\\libcxx",
"d:\\components\\libc\\compilers\\armlibc",
"d:\\components\\libc\\compilers\\common",
"d:\\components\\drivers\\core",

View File

@ -20,3 +20,5 @@
[info] Log at : 2025/1/18|00:50:06|GMT+0800
[info] Log at : 2025/8/25|20:53:31|GMT+0800

6
.vscode/launch.json vendored
View File

@ -19,9 +19,9 @@
"interface/stlink-v2.cfg",
"target/stm32f4x.cfg"
],
"armToolchainPath": "d:/Develop/env2/tools/gnu_gcc/arm_gcc/mingw/bin",
"gdbPath": "d:/Develop/env2/tools/gnu_gcc/arm_gcc/mingw/bin/arm-none-eabi-gdb.exe",
"serverpath": "d:\\Develop\\env2\\.venv\\Scripts\\pyocd",
"armToolchainPath": "c:/Develop/env2/tools/gnu_gcc/arm_gcc/mingw/bin",
"gdbPath": "c:/Develop/env2/tools/gnu_gcc/arm_gcc/mingw/bin/arm-none-eabi-gdb.exe",
"serverpath": "c:\\Develop\\env2\\.venv\\Scripts\\pyocd",
"svdFile": "${workspaceRoot}/chip/STM32F407.svd",
"cmsisPack": "${workspaceRoot}/chip/Keil.STM32F4xx_DFP.2.17.1.pack",

138
.vscode/tasks.json vendored
View File

@ -9,18 +9,39 @@
"args": [
"/d",
"/c",
"d:\\Develop\\env2\\tools\\bin\\env-init.bat && "
"c:\\DevTools\\env2\\tools\\bin\\env-init.bat && "
]
}
},
},
"tasks": [
{
"label": "更新软件包",
"type": "shell",
"command": "call ${workspaceFolder}\\tools\\pkgs_update.bat",
"problemMatcher": []
},
// {
// "label": "更新软件包",
// "type": "shell",
// "command": "call ${workspaceFolder}\\tools\\pkgs_update.bat",
// "problemMatcher": []
// },
// {
// "label": "MenuConfig",
// "type": "shell",
// "command": "start",
// "args": [
// "cmd.exe",
// "/d",
// "/c call ${workspaceFolder}\\tools\\mc.bat "
// ],
// "problemMatcher": []
// },
// {
// "label": "MenuConfig -s",
// "type": "shell",
// "command": "start",
// "args": [
// "cmd.exe",
// "/d /c call menuconfig -s"
// ],
// "problemMatcher": []
// },
{
"label": "PyConfig",
"type": "shell",
@ -34,7 +55,11 @@
"args": [
"-j8"
],
"options": {},
"options": {
"env": {
"MCU": "STM32F407ZG"
}
},
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
@ -50,15 +75,11 @@
"message": 5
}
},
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "编译(j1)",
"type": "shell",
"command": "scons",
"command": "${workspaceFolder}\\tools\\build-stm32.bat",
"args": [
"-j1"
],
@ -78,49 +99,6 @@
}
}
},
{
"label": "编译下载(j1)",
"type": "shell",
"command": "scons -j1 && copy /z ${workspaceFolder}\\rtthread.bin f:\\",
"args": [],
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"relative",
"${workspaceFolder}"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
},
{
"label": "编译下载(j8)",
"type": "shell",
// "command": "scons -j8 && pyocd flash -t stm32l431rctx ${workspaceFolder}/rt-thread.elf",
"command": "scons -j8 && copy /z ${workspaceFolder}\\rtthread.bin f:\\",
"args": [],
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"relative",
"${workspaceFolder}"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
},
{
"label": "清理",
"type": "shell",
@ -128,16 +106,6 @@
"args": [],
"problemMatcher": []
},
{
"label": "下载固件(pyocd)",
"type": "shell",
// "command": "pyocd flash -t stm32l431rctx ${workspaceFolder}/rt-thread.elf",
"command": "copy /z ${workspaceFolder}/rtthread.bin f:\\",
"args": [],
"args": [],
"problemMatcher": []
},
{
"label": "更新 C/C++ 路径",
"type": "shell",
@ -146,10 +114,9 @@
"problemMatcher": []
},
{
"label": "全部编译(j1)",
"label": "编译(j1)下载",
"type": "shell",
"command": "scons -c && cd ${workspaceFolder} && rm -fv *.elf *.hex *.bin *.map && scons -j1",
"args": [],
"command": "scons -j1 &&pyocd load -M under-reset -t stm32f407zg ${workspaceFolder}/rt-thread.elf",
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
@ -167,10 +134,9 @@
}
},
{
"label": "全部编译(j8)",
"label": "编译(j8)下载",
"type": "shell",
"command": "scons -c && cd ${workspaceFolder} && rm -fv *.elf *.hex *.bin *.map && scons -j8",
"args": [],
"command": "scons -j8 &&pyocd load -M under-reset -t stm32f407zg ${workspaceFolder}/rt-thread.elf",
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
@ -188,26 +154,18 @@
}
},
{
"label": "全部编译下载(j8)",
"label": "下载固件(pyocd)",
"type": "shell",
// "command": "scons -c && cd ${workspaceFolder} && rm -fv *.elf *.hex *.bin *.map && scons -j8 && pyocd flash -t stm32l431rctx ${workspaceFolder}/rt-thread.elf",
"command": "scons -c && cd ${workspaceFolder} && rm -fv *.elf *.hex *.bin *.map && scons -j8 && copy /z ${workspaceFolder}/rtthread.bin f:\\",
"command": "pyocd load -M under-reset -t stm32f407zg ${workspaceFolder}/rt-thread.elf",
"args": [],
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"relative",
"${workspaceFolder}"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
"problemMatcher": []
},
{
"label": "重启(pyocd)",
"type": "shell",
"command": "pyocd reset -t stm32f407zg",
"args": [],
"problemMatcher": []
},
]
}

50
applications/exam.c Normal file
View File

@ -0,0 +1,50 @@
#include <rtthread.h>
#include <rtdevice.h>
#include <time.h>
/* 程序清单:这是一个 RTC 设备使用例程 例程导出了 alarm_sample 命令到控制终端
* alarm_sample
* RTC时间 **/
void user_alarm_callback(rt_alarm_t alarm, time_t timestamp)
{
rt_kprintf("user alarm callback function.\n");
}
void alarm_sample(void)
{
rt_device_t dev = rt_device_find("rtc");
struct rt_alarm_setup setup;
struct rt_alarm *alarm = RT_NULL;
static time_t now;
struct tm p_tm;
if (alarm != RT_NULL)
return;
/* 获取当前时间戳,并把下一秒时间设置为闹钟时间 */
now = time(NULL) + 1;
gmtime_r(&now, &p_tm);
setup.flag = RT_ALARM_SECOND;
setup.wktime.tm_year = p_tm.tm_year;
setup.wktime.tm_mon = p_tm.tm_mon;
setup.wktime.tm_mday = p_tm.tm_mday;
setup.wktime.tm_wday = p_tm.tm_wday;
setup.wktime.tm_hour = p_tm.tm_hour;
setup.wktime.tm_min = p_tm.tm_min;
setup.wktime.tm_sec = p_tm.tm_sec;
alarm = rt_alarm_create(user_alarm_callback, &setup);
if (RT_NULL != alarm) {
rt_alarm_start(alarm);
}
} /* export msh cmd */
MSH_CMD_EXPORT(alarm_sample, alarm sample);
// 使用 rt-thread 的 RTC 设备的 Alarm 功能,实现以下功能
// 读取配置,地点的经纬度,开/关灯偏移
// 每天日出+偏移 关灯,日落+偏移关灯
// 日出日落时间可采用简化计算
// 注意设备重启要设置正确的灯状态
// 给出完整实现

View File

@ -4,7 +4,7 @@
#include <wlan_cfg.h>
#include <wlan_prot.h>
#include <ap3216c.h>
#include "my_func.h"
// #include "my_func.h"
static int board_init(void)
{
@ -47,12 +47,15 @@ static int app_init(void)
}
INIT_APP_EXPORT(app_init);
// extern int wifi_join(int argc, char *argv[]);
extern int wait_init(void);
int main_init(void)
{
char str[] = "wifi join Dong abcd07691234";
my_round(20);
char str[] = "wifi join am abcd07691234";
// my_round(20);
system(str);
wait_init();
// light_init();
// rt_thread_mdelay(18000);
// char *argv[] = {"wifi", "join", "Dong", "abcd07691234"};
// wifi_join(4, argv);

163
applications/light.c Normal file
View File

@ -0,0 +1,163 @@
#include <rtthread.h>
#include <rtdevice.h>
#include <time.h>
#include <math.h>
#include "ulog.h"
/* 配置参数(可改为从文件系统或网络获取) */
static float longitude = 116.40; // 经度(东经+
static float latitude = 39.90; // 纬度(北纬+
static int sunrise_offset = -30; // 日出关灯偏移(分钟)
static int sunset_offset = 30; // 日落开灯偏移(分钟)
static rt_alarm_t sunrise_alarm = RT_NULL;
static rt_alarm_t sunset_alarm = RT_NULL;
#define RTC_NAME "rtc"
#define M_PI 3.14159265358979323846
static void sunrise_alarm_cb(rt_alarm_t alarm, time_t timestamp) ;
static void sunset_alarm_cb(rt_alarm_t alarm, time_t timestamp) ;
static char time_buf[24];
void show_time(time_t now)
{
struct tm *tm;
tm=localtime(&now);
strftime(time_buf, sizeof(time_buf), "%Y-%m-%d %H:%M:%S", tm);
rt_kprintf("[Time] %s\n", time_buf);
}
/* 基于天文公式的简化计算误差±5分钟 */
static void calculate_sun_times(time_t *sunrise, time_t *sunset) {
time_t now = time(NULL);
struct tm *tm = gmtime(&now);
int n = tm->tm_yday; // 年积日
// 1. 计算太阳赤纬(弧度)
double delta = 0.4095 * sin(2 * M_PI * (284 + n) / 365);
// 2. 计算时差(小时)
double B = 2 * M_PI * (n - 81) / 365;
double eot = (9.87 * sin(2*B) - 7.53 * cos(B) - 1.5 * sin(B)) / 60;
// 3. 计算日出日落时角
double phi = latitude * M_PI / 180;
double cos_omega = (sin(-0.833 * M_PI/180) - sin(phi)*sin(delta)) / (cos(phi)*cos(delta));
if (fabs(cos_omega) > 1) { // 极昼/极夜处理
*sunrise = *sunset = 0;
return;
}
double omega = acos(cos_omega) * 180 / M_PI;
// 4. 计算UTC时间今日0点为基准
struct tm base_tm = { .tm_year = tm->tm_year, .tm_mon = tm->tm_mon, .tm_mday = tm->tm_mday };
time_t base = timegm(&base_tm);
*sunrise = base + (12 - omega/15 - eot - longitude/15) * 3600 ;
*sunset = base + (12 + omega/15 - eot - longitude/15) * 3600 ;
show_time(*sunrise);
show_time(*sunset);
*sunrise += + sunrise_offset * 60;
*sunset += + sunset_offset * 60;
}
MSH_CMD_EXPORT(calculate_sun_times, "initialize light control")
/* 路灯控制函数实际需替换为GPIO操作 */
static void set_light(int on) {
rt_kprintf("[Light] %s\n", on ? "ON" : "OFF");
// HAL_GPIO_WritePin(LIGHT_GPIO_Port, LIGHT_Pin, on ? GPIO_PIN_SET : GPIO_PIN_RESET);
}
/* 创建/更新闹钟 */
static void setup_alarm(int is_sunrise, time_t trigger) {
if (trigger == 0) return; // 跳过极昼/极夜
struct rt_alarm_setup setup = {
.flag = RT_ALARM_DAILY,
.wktime = *gmtime(&trigger) // 转换为UTC时间结构体
};
rt_alarm_t alarm = is_sunrise ? sunrise_alarm : sunset_alarm;
if (alarm) rt_alarm_delete(alarm); // 删除旧闹钟
alarm = rt_alarm_create(is_sunrise ? sunrise_alarm_cb : sunset_alarm_cb, &setup);
if (alarm) {
rt_alarm_start(alarm);
if (is_sunrise) sunrise_alarm = alarm;
else sunset_alarm = alarm;
}
}
/* 重置次日闹钟 */
static void reset_alarm(int is_sunrise) {
time_t next = time(NULL) + 86400; // 当前时间+1天
time_t sunrise, sunset;
calculate_sun_times(&sunrise, &sunset);
setup_alarm(is_sunrise, is_sunrise ? sunrise : sunset);
}
/* 日出闹钟回调(关灯) */
static void sunrise_alarm_cb(rt_alarm_t alarm, time_t timestamp) {
set_light(0);
reset_alarm(1); // 重置次日闹钟
}
/* 日落闹钟回调(开灯) */
static void sunset_alarm_cb(rt_alarm_t alarm, time_t timestamp) {
set_light(1);
reset_alarm(0);
}
/* 检查RTC有效性使用备份寄存器 */
// static int rtc_is_valid(void) {
// // STM32示例读取备份寄存器值
// return (HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_DR1) == 0xA5A5);
// }
/* 启动时同步路灯状态 */
int light_init(void)
{
rt_err_t ret = RT_EOK;
rt_device_t device = RT_NULL;
/*寻找设备*/
device = rt_device_find(RTC_NAME);
if (!device)
{
LOG_E("find %s failed!", RTC_NAME);
return RT_ERROR;
}
/*初始化RTC设备*/
if(rt_device_open(device, 0) != RT_EOK)
{
LOG_E("open %s failed!", RTC_NAME);
return RT_ERROR;
}
longitude = 113.40; // 经度(东经+
latitude = 22.90; // 纬度(北纬+
// 首次启动配置默认时间
// if (!rtc_is_valid()) {
// set_date(2025, 8, 25);
// set_time(0, 0, 0); // UTC时间
// HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_DR1, 0xA5A5);
// }
// 计算今日日出日落
time_t now = time(NULL);
time_t sunrise, sunset;
calculate_sun_times(&sunrise, &sunset);
// 判断当前灯状态
int light_on = (now > sunset) || (now < sunrise);
set_light(light_on);
// 设置今日闹钟
setup_alarm(1, sunrise);
setup_alarm(0, sunset);
return ret;
}

View File

@ -18,7 +18,7 @@
#include <rtdbg.h>
#include "init.h"
#include <drv_lcd.h>
#include "my_func.h"
// #include "my_func.h"
#include <drv_gpio.h>
@ -36,14 +36,14 @@ int main(void)
rt_pin_mode(PIN_LED_B, PIN_MODE_OUTPUT);
rt_pin_write(PIN_LED_B, PIN_LOW);
system("snake");
// system("snake");
// rt_wlan_config_autoreconnect(RT_TRUE);
// rt_wlan_connect("Dong", "abcd07691234");
rt_wlan_connect("as", "07691234");
rt_wlan_connect("as", "07691234");
system("myproject");
rt_wlan_connect("am", "07691234");
rt_wlan_connect("am", "07691234");
// system("myproject");
// system("mqtt");
mytime();
// mytime();
/* init Wi-Fi auto connect feature */
// wlan_autoconnect_init();

45
applications/net_check.c Normal file
View File

@ -0,0 +1,45 @@
#include <netdb.h>
#include <netdev.h>
#include <stdbool.h>
#include "rtthread.h"
#include "ulog.h"
int check_network(void)
{
struct netdev *netdev = netdev_get_by_family(AF_INET);
return (netdev && netdev_is_link_up(netdev) /* && netdev_is_internet_up(netdev) */);
}
extern void light_init(void);
void wait_entry(void *parameter)
{
LOG_I("等待网络连接...");
while (!check_network())
{
rt_thread_mdelay(2000);
}
LOG_I("网络连接成功");
rt_thread_mdelay(10000);
light_init();
// while (1)
// {
// }
}
int wait_init(void)
{
rt_thread_t tid;
tid = rt_thread_create("waitM", wait_entry, RT_NULL, 2048, 12, 10);
if (tid)
{
rt_thread_startup(tid);
}
else
{
LOG_E("create mqtt_pub thread failed!");
return -RT_ENOMEM;
}
return RT_EOK;
}

13
applications/net_check.h Normal file
View File

@ -0,0 +1,13 @@
#ifndef __NET_CHECK_H___
#define __NET_CHECK_H___
#ifdef __cplusplus
extern "C"
{
#endif
int check_network(void);
#ifdef __cplusplus
}
#endif
#endif // !__NET_CHECK_H___

View File

@ -1,15 +0,0 @@
from building import *
import os
cwd = GetCurrentDir()
CPPPATH = [cwd]
src = Glob('*.c')
group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH)
list = os.listdir(cwd)
for item in list:
if os.path.isfile(os.path.join(cwd, item, 'SConscript')):
group = group + SConscript(os.path.join(item, 'SConscript'))
Return('group')

View File

@ -136,6 +136,7 @@
#define RT_USING_ADC
#define RT_USING_PWM
#define RT_USING_RTC
#define RT_USING_ALARM
#define RT_USING_SOFT_RTC
#define RT_USING_SDIO
#define RT_SDIO_STACK_SIZE 512
@ -354,7 +355,7 @@
#define PKG_USING_NETUTILS
#define PKG_NETUTILS_NTP
#define NTP_USING_AUTO_SYNC
#define NTP_AUTO_SYNC_FIRST_DELAY 30
#define NTP_AUTO_SYNC_FIRST_DELAY 5
#define NTP_AUTO_SYNC_PERIOD 3600
#define NETUTILS_NTP_HOSTNAME "cn.ntp.org.cn"
#define NETUTILS_NTP_HOSTNAME2 "ntp.rt-thread.org"
@ -453,18 +454,6 @@
/* enhanced kernel services */
#define PKG_USING_RT_VSNPRINTF_FULL
#define PKG_VSNPRINTF_SUPPORT_DECIMAL_SPECIFIERS
#define PKG_VSNPRINTF_SUPPORT_EXPONENTIAL_SPECIFIERS
#define PKG_VSNPRINTF_SUPPORT_WRITEBACK_SPECIFIER
#define PKG_VSNPRINTF_SUPPORT_LONG_LONG
#define PKG_VSNPRINTF_CHECK_FOR_NUL_IN_FORMAT_SPECIFIER
#define PKG_VSNPRINTF_INTEGER_BUFFER_SIZE 32
#define PKG_VSNPRINTF_DECIMAL_BUFFER_SIZE 32
#define PKG_VSNPRINTF_DEFAULT_FLOAT_PRECISION 6
#define PKG_VSNPRINTF_MAX_INTEGRAL_DIGITS_FOR_DECIMAL 9
#define PKG_VSNPRINTF_LOG10_TAYLOR_TERMS 4
#define PKG_USING_RT_VSNPRINTF_FULL_LATEST_VERSION
/* end of enhanced kernel services */
/* acceleration: Assembly language or algorithmic acceleration packages */
@ -498,6 +487,30 @@
/* Kendryte SDK */
/* end of Kendryte SDK */
/* WCH HAL & SDK Drivers */
/* end of WCH HAL & SDK Drivers */
/* AT32 HAL & SDK Drivers */
/* end of AT32 HAL & SDK Drivers */
/* HC32 DDL Drivers */
/* end of HC32 DDL Drivers */
/* NXP HAL & SDK Drivers */
/* end of NXP HAL & SDK Drivers */
/* NUVOTON Drivers */
/* end of NUVOTON Drivers */
/* GD32 Drivers */
/* end of GD32 Drivers */
/* end of HAL & SDK Drivers */
/* sensors drivers */