zhangbo
12 小时以前 01b6f2525f47ee781d86a2495dfcd17f68ccbafd
通过debug已经测试功能正常,移植到正确的工卡试下
已添加4个文件
已修改12个文件
25473 ■■■■ 文件已修改
keil/JLinkLog.txt 12328 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/Listings/uwb_simple_example.map 7588 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/Objects/uwb_simple_example.build_log.htm 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/Objects/uwb_simple_example.htm 4134 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/Objects/uwb_simple_example.lnp 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/Objects/uwb_simple_example_MK8000 Release.dep 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/include/drivers/PCA9555.c 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/include/drivers/SC7A22H.h 253 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/include/drivers/SC7A22H_driver.c 314 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/include/drivers/SC7A22H_example.c 390 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/include/drivers/SC7A22H_port.c 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/include/drivers/lis3dh_driver.c 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/include/main/main.c 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/include/src/TCPClient.c 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/uwb_simple_example.uvoptx 308 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/uwb_simple_example.uvprojx 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
keil/JLinkLog.txt
ÎļþÌ«´ó
keil/Listings/uwb_simple_example.map
ÎļþÌ«´ó
keil/Objects/uwb_simple_example.build_log.htm
@@ -22,7 +22,7 @@
 
<h2>Project:</h2>
D:\zhangbo\2024\Code\ChinaUWB\广哈移植\ChinaUWBProject\keil\uwb_simple_example.uvprojx
Project File Date:  05/23/2025
Project File Date:  06/16/2025
<h2>Output:</h2>
*** Using Compiler 'V6.14', folder: 'D:\keil\ARM\ARMCLANG\Bin'
@@ -34,7 +34,7 @@
linking...
.\Objects\uwb_simple_example.axf: Warning: L6304W: Duplicate input file .\objects\lis3dh_driver_1.o ignored.
.\include\devices\MK800X\Source\ARM\MK800X_ac6_copy.sct(25): warning: L6314W: No section matches pattern *(.XIP_SECTION).
Program Size: Code=91248 RO-data=12364 RW-data=2108 ZI-data=60348
Program Size: Code=91872 RO-data=12364 RW-data=2108 ZI-data=60356
Finished: 0 information, 2 warning and 0 error messages.
FromELF: creating hex file...
After Build - User command #1: fromelf.exe --bincombined -o "Output\uwb_simple_example.bin" "D:\zhangbo\2024\Code\ChinaUWB\广哈移植\ChinaUWBProject\keil\Objects\uwb_simple_example.axf"
@@ -52,7 +52,7 @@
  D:\keil\pack\MKSEMI\MK800X_DFP\1.0.3\Device\Include
<h2>Collection of Component Files used:</h2>
Build Time Elapsed:  00:00:01
Build Time Elapsed:  00:00:02
</pre>
</body>
</html>
keil/Objects/uwb_simple_example.htm
ÎļþÌ«´ó
keil/Objects/uwb_simple_example.lnp
@@ -28,6 +28,9 @@
".\objects\pca9555.o"
".\objects\ws2812.o"
".\objects\lis3dh_driver_1.o"
".\objects\sc7a22h_driver.o"
".\objects\sc7a22h_example.o"
".\objects\sc7a22h_port.o"
".\objects\usart1.o"
".\objects\usart.o"
".\objects\mk_4g.o"
keil/Objects/uwb_simple_example_MK8000 Release.dep
@@ -481,7 +481,7 @@
I (include\drivers\mk_io.h)(0x67DCD5B6)
F (.\sn74hc595.h)(0x67DCD5B6)()
F (.\mk_4G.h)(0x67DCD5B6)()
F (.\include\drivers\PCA9555.c)(0x684B99B4)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c -fno-rtti -funsigned-char -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/drivers -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter -I./RTE/_MK8000_Release -ID:/keil/pack/MKSEMI/MK800X_DFP/1.0.3/Device/Include -ID:/keil/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/pca9555.o -MD)
F (.\include\drivers\PCA9555.c)(0x6850DF9E)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c -fno-rtti -funsigned-char -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/drivers -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter -I./RTE/_MK8000_Release -ID:/keil/pack/MKSEMI/MK800X_DFP/1.0.3/Device/Include -ID:/keil/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/pca9555.o -MD)
I (include\drivers\PCA9555.h)(0x67DCD5B6)
I (include\board\board.h)(0x67DCD5B6)
I (include\drivers\mk_common.h)(0x67DCD5B6)
@@ -531,7 +531,7 @@
I (include\drivers\mk_gpio.h)(0x67DCD5B6)
I (include\drivers\mk_io.h)(0x67DCD5B6)
F (.\include\drivers\WS2812.h)(0x67DCD5B6)()
F (.\include\drivers\lis3dh_driver.c)(0x682FE8C0)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c -fno-rtti -funsigned-char -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/drivers -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter -I./RTE/_MK8000_Release -ID:/keil/pack/MKSEMI/MK800X_DFP/1.0.3/Device/Include -ID:/keil/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/lis3dh_driver_1.o -MD)
F (.\include\drivers\lis3dh_driver.c)(0x6850DEC4)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c -fno-rtti -funsigned-char -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/drivers -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter -I./RTE/_MK8000_Release -ID:/keil/pack/MKSEMI/MK800X_DFP/1.0.3/Device/Include -ID:/keil/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/lis3dh_driver_1.o -MD)
I (include\drivers\lis3dh_driver.h)(0x67DCD5B6)
I (D:\keil\ARM\ARMCLANG\include\math.h)(0x5DDFFD6C)
I (D:\keil\ARM\ARMCLANG\include\stdint.h)(0x5DDFFD72)
@@ -552,6 +552,54 @@
I (include\devices\MK800X\Include\system_MK800X.h)(0x67DCD5B6)
I (include\drivers\mk_gpio.h)(0x67DCD5B6)
I (include\drivers\global_param.h)(0x684A6868)
F (.\include\drivers\SC7A22H.h)(0x6850CA39)()
F (.\include\drivers\SC7A22H_driver.c)(0x6850E08A)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c -fno-rtti -funsigned-char -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/drivers -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter -I./RTE/_MK8000_Release -ID:/keil/pack/MKSEMI/MK800X_DFP/1.0.3/Device/Include -ID:/keil/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/sc7a22h_driver.o -MD)
I (include\drivers\SC7A22H.h)(0x6850CA39)
I (D:\keil\ARM\ARMCLANG\include\stdio.h)(0x5DDFFD72)
I (D:\keil\ARM\ARMCLANG\include\stdint.h)(0x5DDFFD72)
I (D:\keil\ARM\ARMCLANG\include\string.h)(0x5DDFFD6C)
I (include\drivers\mk_trace.h)(0x67DCD5B6)
I (include\drivers\mk_common.h)(0x67DCD5B6)
I (D:\keil\ARM\ARMCLANG\include\stddef.h)(0x5DDFFD72)
I (D:\keil\ARM\ARMCLANG\include\stdbool.h)(0x5DDFFD72)
I (include\devices\MK800X\Include\MK800X.h)(0x67DCD5B6)
I (include\CMSIS\Include\core_cm0.h)(0x67DCD5B6)
I (include\CMSIS\Include\cmsis_version.h)(0x67DCD5B6)
I (include\CMSIS\Include\cmsis_compiler.h)(0x67DCD5B6)
I (include\CMSIS\Include\cmsis_armclang.h)(0x67DCD5B6)
I (D:\keil\ARM\ARMCLANG\include\arm_compat.h)(0x5E0CC2EC)
I (D:\keil\ARM\ARMCLANG\include\arm_acle.h)(0x5E0CC318)
I (include\devices\MK800X\Include\system_MK800X.h)(0x67DCD5B6)
I (..\user_config.h)(0x68303705)
I (include\drivers\mk_uart.h)(0x67DCD5B6)
I (include\drivers\mk_dma.h)(0x67DCD5B6)
I (D:\keil\ARM\ARMCLANG\include\stdarg.h)(0x5DDFFD72)
F (.\include\drivers\SC7A22H_example.c)(0x6850E4E9)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c -fno-rtti -funsigned-char -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/drivers -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter -I./RTE/_MK8000_Release -ID:/keil/pack/MKSEMI/MK800X_DFP/1.0.3/Device/Include -ID:/keil/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/sc7a22h_example.o -MD)
I (include\drivers\SC7A22H.h)(0x6850CA39)
I (D:\keil\ARM\ARMCLANG\include\stdio.h)(0x5DDFFD72)
I (D:\keil\ARM\ARMCLANG\include\stdint.h)(0x5DDFFD72)
I (D:\keil\ARM\ARMCLANG\include\string.h)(0x5DDFFD6C)
I (include\drivers\mk_trace.h)(0x67DCD5B6)
I (include\drivers\mk_common.h)(0x67DCD5B6)
I (D:\keil\ARM\ARMCLANG\include\stddef.h)(0x5DDFFD72)
I (D:\keil\ARM\ARMCLANG\include\stdbool.h)(0x5DDFFD72)
I (include\devices\MK800X\Include\MK800X.h)(0x67DCD5B6)
I (include\CMSIS\Include\core_cm0.h)(0x67DCD5B6)
I (include\CMSIS\Include\cmsis_version.h)(0x67DCD5B6)
I (include\CMSIS\Include\cmsis_compiler.h)(0x67DCD5B6)
I (include\CMSIS\Include\cmsis_armclang.h)(0x67DCD5B6)
I (D:\keil\ARM\ARMCLANG\include\arm_compat.h)(0x5E0CC2EC)
I (D:\keil\ARM\ARMCLANG\include\arm_acle.h)(0x5E0CC318)
I (include\devices\MK800X\Include\system_MK800X.h)(0x67DCD5B6)
I (..\user_config.h)(0x68303705)
I (include\drivers\mk_uart.h)(0x67DCD5B6)
I (include\drivers\mk_dma.h)(0x67DCD5B6)
I (D:\keil\ARM\ARMCLANG\include\stdarg.h)(0x5DDFFD72)
F (.\include\drivers\SC7A22H_port.c)(0x684FE01A)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c -fno-rtti -funsigned-char -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/drivers -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter -I./RTE/_MK8000_Release -ID:/keil/pack/MKSEMI/MK800X_DFP/1.0.3/Device/Include -ID:/keil/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/sc7a22h_port.o -MD)
I (include\drivers\SC7A22H.h)(0x6850CA39)
I (D:\keil\ARM\ARMCLANG\include\stdio.h)(0x5DDFFD72)
I (D:\keil\ARM\ARMCLANG\include\stdint.h)(0x5DDFFD72)
I (D:\keil\ARM\ARMCLANG\include\string.h)(0x5DDFFD6C)
F (.\include\drivers\Usart1.c)(0x67DCD5B6)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c -fno-rtti -funsigned-char -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter -I./RTE/_MK8000_Release -ID:/keil/pack/MKSEMI/MK800X_DFP/1.0.3/Device/Include -ID:/keil/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/usart1.o -MD)
I (include\drivers\Usart.h)(0x67DCD5B6)
I (D:\keil\ARM\ARMCLANG\include\stdint.h)(0x5DDFFD72)
@@ -618,7 +666,7 @@
I (include\drivers\mk_io.h)(0x67DCD5B6)
I (include\drivers\global_param.h)(0x684A6868)
I (..\keil\sn74hc595.h)(0x67DCD5B6)
F (.\include\drivers\lis3dh_driver.c)(0x682FE8C0)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c -fno-rtti -funsigned-char -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter -I./RTE/_MK8000_Release -ID:/keil/pack/MKSEMI/MK800X_DFP/1.0.3/Device/Include -ID:/keil/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/lis3dh_driver_1.o -MD)
F (.\include\drivers\lis3dh_driver.c)(0x6850DEC4)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c -fno-rtti -funsigned-char -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter -I./RTE/_MK8000_Release -ID:/keil/pack/MKSEMI/MK800X_DFP/1.0.3/Device/Include -ID:/keil/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/lis3dh_driver_1.o -MD)
I (include\drivers\lis3dh_driver.h)(0x67DCD5B6)
I (D:\keil\ARM\ARMCLANG\include\math.h)(0x5DDFFD6C)
I (D:\keil\ARM\ARMCLANG\include\stdint.h)(0x5DDFFD72)
@@ -771,7 +819,7 @@
I (include\drivers\mk_gpio.h)(0x67DCD5B6)
I (include\drivers\Usart.h)(0x67DCD5B6)
I (include\drivers\global_param.h)(0x684A6868)
F (.\include\main\main.c)(0x684BEAD1)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c -fno-rtti -funsigned-char -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter -I./RTE/_MK8000_Release -ID:/keil/pack/MKSEMI/MK800X_DFP/1.0.3/Device/Include -ID:/keil/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/main.o -MD)
F (.\include\main\main.c)(0x6850D467)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c -fno-rtti -funsigned-char -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter -I./RTE/_MK8000_Release -ID:/keil/pack/MKSEMI/MK800X_DFP/1.0.3/Device/Include -ID:/keil/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/main.o -MD)
I (include\drivers\mk_trace.h)(0x67DCD5B6)
I (include\drivers\mk_common.h)(0x67DCD5B6)
I (D:\keil\ARM\ARMCLANG\include\stddef.h)(0x5DDFFD72)
@@ -893,7 +941,7 @@
I (include\drivers\mk_gpio.h)(0x67DCD5B6)
I (include\drivers\mk_io.h)(0x67DCD5B6)
I (include\drivers\mk_calib.h)(0x67DCD5B6)
F (.\include\src\TCPClient.c)(0x684A6892)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c -fno-rtti -funsigned-char -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter -I./RTE/_MK8000_Release -ID:/keil/pack/MKSEMI/MK800X_DFP/1.0.3/Device/Include -ID:/keil/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/tcpclient.o -MD)
F (.\include\src\TCPClient.c)(0x6850E24E)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c -fno-rtti -funsigned-char -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -w -I ./include/board -I ../keil -I .. -I ./include/board -I ./include/CMSIS/Include -I ./include/components/algo/inc -I ./include/components/crc -I ./include/components/libc -I ./include/components/wsf/include -I ./include/components/wsf/include/platform -I ./include/devices/MK800X/Include -I ./include/drivers -I ./include/components/hido/Include -I ./include/components/internet/inc -I ./include/components/hal -I ../keil -I ./include/src -I ./include/components/internet/src -Wno-declaration-after-statement -Wno-double-promotion -Wno-extra-semi-stmt -Wno-gnu-zero-variadic-macro-arguments -Wno-padded -Wno-unused-parameter -I./RTE/_MK8000_Release -ID:/keil/pack/MKSEMI/MK800X_DFP/1.0.3/Device/Include -ID:/keil/ARM/CMSIS/Include -D__UVISION_VERSION="530" -D_RTE_ -DUWB_EN -DSTD_LIBC -o ./objects/tcpclient.o -MD)
I (include\src\TCPClient.h)(0x6825C506)
I (include\components\hido\Include\HIDO_TYpeDef.h)(0x67DCD5B6)
I (include\components\internet\inc\Socket.h)(0x67DCD5B6)
keil/include/drivers/PCA9555.c
@@ -626,15 +626,16 @@
              if(WAKE_UP_POSITION&gpio_state)
                {
                 //移动
                    nomove_count=0;
                    if(deep_sleep_falg==0)
                    {
                     deep_sleep_falg=1;
//           NVIC_SystemReset();
                     sys_reset(0);
                    }
//
                    Pedo_interrupt_callback();
//                 //移动
//                    nomove_count=0;
//                    if(deep_sleep_falg==0)
//                    {
//                     deep_sleep_falg=1;
////           NVIC_SystemReset();
//                     sys_reset(0);
//                    }
////
                 test51++;
                }
//    if(!(MAIN_RI_POSITION&gpio_state))
keil/include/drivers/SC7A22H.h
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,253 @@
#ifndef __SC7A22E_H__
#define __SC7A22E_H__
#include <stdio.h>
//#include "boards.h"
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#define  SL_SC7A22H_SPI_IIC_MODE       0
/**SC7A20E SPI IIC é€‰æ‹©    SPI:      0****/
/**SC7A20E SPI IIC é€‰æ‹©    IIC:      1****/
//传感器调试打印功能是否打开----0开启,1关闭
#define SL_Sensor_Algo_Release_Enable 0x01
/***使用驱动前请根据实际接线情况配置******/
/**SC7A22的SDO è„šæŽ¥åœ°ï¼š  0****************/
/**SC7A22的SDO è„šæŽ¥ç”µæºï¼š1****************/
#define SL_SC7A22_SDO_VDD_GND            1
/*****************************************/
/***使用驱动前请根据实际IIC情况进行配置***/
/**SC7A22的IIC æŽ¥å£åœ°å€ç±»åž‹ 7bits:  0****/
/**SC7A22的IIC æŽ¥å£åœ°å€ç±»åž‹ 8bits:  1****/
#define SL_SC7A22_IIC_7BITS_8BITS        0
/*****************************************/
#if SL_SC7A22_SDO_VDD_GND==0
#define SL_SC7A22_IIC_7BITS_ADDR        0x18
#define SL_SC7A22_IIC_8BITS_WRITE_ADDR  0x30
#define SL_SC7A22_IIC_8BITS_READ_ADDR   0x31
#else
#define SL_SC7A22_IIC_7BITS_ADDR        0x19
#define SL_SC7A22_IIC_8BITS_WRITE_ADDR  0x32
#define SL_SC7A22_IIC_8BITS_READ_ADDR   0x33
#endif
#if SL_SC7A22_IIC_7BITS_8BITS==0
#define SL_SC7A22_IIC_ADDRESS        SL_SC7A22_IIC_7BITS_ADDR
#else
#define SL_SC7A22_IIC_WRITE_ADDRESS  SL_SC7A22_IIC_8BITS_WRITE_ADDR
#define SL_SC7A22_IIC_READ_ADDRESS   SL_SC7A22_IIC_8BITS_READ_ADDR
#endif
//I2C SPI通讯控制宏定义
#define SL_SC7A22H_SPI_EN_I2C_DISABLE  0x00 //必须和SL_SPI_IIC_INTERFACE ç›¸åï¼›
#define SL_SPI_IIC_INTERFACE           0x01 //必须和SL_SC7A22H_SPI_EN_I2C_DISABLE ç›¸åï¼›
//原始数据高通输出使能控制宏定义
#define SL_SC7A22H_RAWDATA_HPF_ENABLE  0x00
//中断脚默认输出电平控制宏定义
#define SL_SC7A22H_INT_DEFAULT_LEVEL   0x01
//SDO ä¸Šæ‹‰ç”µé˜»æŽ§åˆ¶
#define SL_SC7A22H_SDO_PullUP_ENABLE   0x01
/***************寄存器列表**********/
#define  SC7A22H_COM_CFG           (unsigned char)0x05
#define  SC7A22H_CHIP_ID_ADDRESS   (unsigned char)0x01
#define  SL_SC7A22H_INT_CFG1      (unsigned char)0x06
#define  SL_SC7A22H_INT_CFG2      (unsigned char)0x07
#define  SL_SC7A22H_HPF_LPF_DFG    (unsigned char)0x08
#define  SL_SC7A22H_DATA_SAT      (unsigned char)0x0A
#define  SL_SC7A22H_DATA_STAT      (unsigned char)0x0B
#define  SL_SC7A22H_OUT_X_L        (unsigned char)0x0D
#define  SL_SC7A22H_OUT_X_H        (unsigned char)0x0C
#define  SL_SC7A22H_OUT_Y_L        (unsigned char)0x0F
#define  SL_SC7A22H_OUT_Y_H        (unsigned char)0x0E
#define  SL_SC7A22H_OUT_Z_L        (unsigned char)0x11
#define  SL_SC7A22H_OUT_Z_H        (unsigned char)0x10
#define  SL_SC7A22H_TIME_H        (unsigned char)0x18
#define  SL_SC7A22H_TIME_M       (unsigned char)0x19
#define  SL_SC7A22H_TIME_L        (unsigned char)0x1A
#define  SL_SC7A22H_RAM_BIST        (unsigned char)0x1B
#define  SL_SC7A22H_FIFO_CFG0    (unsigned char)0x1C
#define  SL_SC7A22H_FIFO_CFG1    (unsigned char)0x1D
#define  SL_SC7A22H_FIFO_CFG2    (unsigned char)0x1E
#define  SL_SC7A22H_FIFO_STAT0    (unsigned char)0x1F
#define  SL_SC7A22H_FIFO_STAT1   (unsigned char)0x20
#define  SL_SC7A22H_FIFO_DATA1    (unsigned char)0x21
#define  SL_SC7A22H_AOI1_CFG    (unsigned char)0x30
#define  SL_SC7A22H_AOI1_STAT   (unsigned char)0x31
#define  SL_SC7A22H_AOI1_THS    (unsigned char)0x32
#define  SL_SC7A22H_AOI1_DUR    (unsigned char)0x33
#define  SL_SC7A22H_AOI2_CFG    (unsigned char)0x34
#define  SL_SC7A22H_AOI2_STAT   (unsigned char)0x35
#define  SL_SC7A22H_AOI2_THS    (unsigned char)0x36
#define  SL_SC7A22H_AOI2_DUR    (unsigned char)0x37
#define  SL_SC7A22H_CLICK_CRTL_REG   (unsigned char)0x38
#define  SL_SC7A22H_CLICK_SRC        (unsigned char)0x39
#define  SL_SC7A22H_STEP_CFG         (unsigned char)0x3A
#define  SL_SC7A22H_STEP_SRC         (unsigned char)0x3B
#define  SL_SC7A22H_STEP_COUNTER_L   (unsigned char)0x3C
#define  SL_SC7A22H_STEP_COUNTER_H   (unsigned char)0x3D
#define  SL_SC7A22H_WRIST_SRC        (unsigned char)0x3E
#define  SL_SC7A22H_AOI1_AOI2_CFG    (unsigned char)0x3F
#define  SL_SC7A22H_ACC_CONF      (unsigned char)0x40
#define  SL_SC7A22H_ACC_RANGE     (unsigned char)0x41
#define  SL_SC7A22H_FIFO_DOWNS    (unsigned char)0x45
#define  SL_SC7A22H_SOFT_RST     (unsigned char)0x4A
#define  SL_SC7A22H_SELF_TEST     (unsigned char)0x6D
#define  SL_SC7A22H_VERSION      (unsigned char)0x70
#define  SL_SC7A22H_PWR_CTRL     (unsigned char)0x7D
#define  SL_SC7A22H_SEG_SEL      (unsigned char)0x7F
/*连续读取数据时的数据寄存器地址*/
#define  SL_SC7A22H_DATA_OUT       (unsigned char)(SL_SC7A22H_OUT_X_L|0x80)
#define  SL_SC7A22H_SUCCESS        0x00
#define  SL_SC7A22H_ERROR          0x01
#define  SC7A22H_CHIP_ID_VALUE     (unsigned char)0x18
#define  SL_SC7A22H_BOOT_ENABLE    (unsigned char)0X80
#define  SL_SC7A22H_RESET_VALUE    (unsigned char)0XA5
#define SL_SC7A22H_ADDR_AUTO       0x01
#define SL_SC7A22H_NO_ADDR_AUTO    0x00
/***************模式配置**********/
#define  SL_SC7A22H_LowPower         0x08
#define  SL_SC7A22H_NormalPower      0x00
#define  SL_SC7A22H_DLPF             0x04
/***************数据更新速率**加速度计使能**********/
#define  SL_SC7A22H_ODR_POWER_DOWN (unsigned char)0x00
#define  SL_SC7A22H_ODR_1P5HZ      (unsigned char)0x17
#define  SL_SC7A22H_ODR_12P5HZ     (unsigned char)0x27
#define  SL_SC7A22H_ODR_25HZ       (unsigned char)0x37
#define  SL_SC7A22H_ODR_50HZ       (unsigned char)0x47
#define  SL_SC7A22H_ODR_100HZ      (unsigned char)0x57
#define  SL_SC7A22H_ODR_200HZ      (unsigned char)0x67
#define  SL_SC7A22H_ODR_400HZ      (unsigned char)0x77
/***************传感器量程设置**********************/
#define  SL_SC7A22H_FS_2G          (unsigned char)0x00
#define  SL_SC7A22H_FS_4G          (unsigned char)0x10
#define  SL_SC7A22H_FS_8G          (unsigned char)0x20
#define  SL_SC7A22H_FS_16G         (unsigned char)0x30
/***取值在0-127之间,此处仅举例****/
#define  SL_SC7A22H_INT_THS_5PERCENT   (unsigned char)0x06
#define  SL_SC7A22H_INT_THS_8PERCENT   (unsigned char)0x09
#define  SL_SC7A22H_INT_THS_10PERCENT  (unsigned char)0x0C
#define  SL_SC7A22H_INT_THS_20PERCENT  (unsigned char)0x18
#define  SL_SC7A22H_INT_THS_40PERCENT  (unsigned char)0x30
#define  SL_SC7A22H_INT_THS_80PERCENT  (unsigned char)0x60
/***取值在0-127之间,此处仅举例 ä¹˜ä»¥ODR单位时间****/
#define  SL_SC7A22H_INT_DURATION_2CLK  (unsigned char)0x02
#define  SL_SC7A22H_INT_DURATION_5CLK  (unsigned char)0x05
#define  SL_SC7A22H_INT_DURATION_10CLK (unsigned char)0x0A
#define  SL_SC7A22H_INT_DURATION_20CLK (unsigned char)0x14
#define  SL_SC7A22H_INT_DURATION_40CLK (unsigned char)0x28
#define  SL_SC7A22H_INT_DURATION_80CLK (unsigned char)0x50
/***中断有效时的电平设置,高电平相当于上升沿,低电平相当于下降沿****/
#define  SL_SC7A22H_INT_ACTIVE_LOWER_LEVEL 0x02 //0x02:中断时INT1脚输出 ä½Žç”µå¹³
#define  SL_SC7A22H_INT_ACTIVE_HIGH_LEVEL  0x00 //0x00:中断时INT1脚输出 é«˜ç”µå¹³
/***中断有效时的电平设置,高电平相当于上升沿,低电平相当于下降沿****/
#define  SL_SC7A22H_INT_AOI1_INT1          0x40 //AOI1 TO INT1
#define  SL_SC7A22H_INT_AOI2_INT1          0x20 //AOI2 TO INT1
/********客户需要进行的IIC/SPI接口封包函数****************/
extern unsigned char SL_SC7A22H_I2c_Spi_Init(unsigned char sl_spi_iic);
extern unsigned char SL_SC7A22H_I2c_Spi_Write(unsigned char sl_spi_iic,unsigned char reg, unsigned char data);
extern unsigned char SL_SC7A22H_I2c_Spi_Read(unsigned char sl_spi_iic,unsigned char reg, unsigned char len, unsigned char *buf);
extern void SL_SC7A22H_Delay_Ms(unsigned long int delay);
/********驱动库API****************/
#define  SL_LOG      printf
unsigned char SL_SC7A22H_Online_Test(void);
void SL_SC7A22H_Soft_Reset(void);
void SL_SC7A22H_BOOT(void);
void SL_SC7A22H_FS_Config(unsigned char SC7A22H_FS_Reg);
void SL_SC7A22H_Odr_Config(unsigned char Odr_Config_Reg,unsigned char Work_mode);
void SL_SC7A22H_Read_XYZ_Data(signed short *SL_SC7A22H_Data_XYZ_Buf);
void SL_SC7A22H_Read_XYZ_Data_FIFO(signed short *SL_SC7A22H_Data_XYZ_Buf);
void SL_SC7A22H_Data_Convert(signed short *SL_SC7A22H_Raw_Data_XYZ_Buf,signed short *SL_SC7A22H_Output_Data_XYZ_Buf,unsigned char SC7A22H_FS_Reg);
void SL_SC7A22H_ADDR_AUTO_CON(unsigned char SC7A22H_Status);
unsigned char SL_SC7A22H_POWER_DOWN(void);
unsigned char SL_SC7A22H_Get_Motion(void);
void SL_SC7A22H_Pedo_Reset(void);
unsigned int  SL_SC7A22H_Get_Pedo_Count(void);
void SL_SC7A22H_Wrist_Config(void);
unsigned char SL_SC7A22H_Get_Wrist_Status(void);
unsigned char SL_SC7A22H_Check(void);
unsigned char SL_SC7A22H_Config(void);
void SL_SC7A22H_RawData_Read(signed short *x_data,signed short *y_data,signed short *z_data);
unsigned char SL_SC7A22H_FIFO_Read(signed short *x_data_buf,signed short *y_data_buf,signed short *z_data_buf);
//提供测试案例
void SC7A22H_get_rawdata_Polling(void);
void SC7A22H_get_rawdata_fifo_wtm_interrupt(void);
void SC7A22H_get_double_click(void);
void SC7A22H_get_Pedo(void);
void SC7A22H_get_Pedo_task();
void SC7A22H_get_Wrist(void);
void SC7A22H_self_test(void);
//自定义回调函数
void fifo_ready_interrupt_callback();
void double_click_interrupt_callback();
void Pedo_interrupt_callback();
void Wrist_interrupt_callback();
/* Gsensor data struct type. */
typedef struct
{
    signed short sXAxisVal; // X-Axis Value
    signed short sYAxisVal; // Y-Axis Value
    signed short sZAxisVal; // Z-Axis Value
} ST_GS_DATA_TYPE;
static ST_GS_DATA_TYPE gsensor_soft_fifo_buffer[255];
#endif
keil/include/drivers/SC7A22H_driver.c
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,314 @@
#include "SC7A22H.h"
#include "mk_trace.h"
/***************软复位**********************/
void SL_SC7A22H_Soft_Reset(void)
{
    SL_SC7A22H_I2c_Spi_Write(SL_SC7A22H_SPI_IIC_MODE,SL_SC7A22H_SOFT_RST, SL_SC7A22H_RESET_VALUE);
}
unsigned char SL_SC7A22H_Check(void)
{
     SL_SC7A22H_I2c_Spi_Init(SL_SC7A22H_SPI_IIC_MODE);
    unsigned char reg_value1=0;
    unsigned char reg_value2=0;
    SL_SC7A22H_I2c_Spi_Write(SL_SC7A22H_SPI_IIC_MODE, 0x7f, 0x00);
    delay_us(100);
    SL_SC7A22H_I2c_Spi_Read(SL_SC7A22H_SPI_IIC_MODE, SC7A22H_CHIP_ID_ADDRESS, 1, &reg_value1);
    if(reg_value1==0x18)
    {
        SC7A22H_get_Pedo();
    }
    #if SL_Sensor_Algo_Release_Enable==0x01
//    printf("SC7A22_WHO_AM_I:0x%x\r\n",reg_value1);
    LOG_INFO(TRACE_MODULE_APP,"SC7A22_WHO_AM_I:0x%x\r\n",reg_value1);
//    printf( "SC7A22_VERSION:0x%x\r\n",reg_value2);
    #endif
    if((reg_value1==0x18)&&(reg_value2==0x22))
        return 0x01;//SC7A22H
    else
        return 0x00;//其他芯片
}
//读取时间戳
//取20Hz的数据,相当于是从FIFO中抽取一组数据
unsigned int SL_SC7A22H_TimeStamp_Read(void)
{
    unsigned char  time_data[3];
    unsigned int time_stamp;
    SL_SC7A22H_I2c_Spi_Read(SL_SPI_IIC_INTERFACE, 0x18, 1, &time_data[0]);
    SL_SC7A22H_I2c_Spi_Read(SL_SPI_IIC_INTERFACE, 0x19, 1, &time_data[1]);
    SL_SC7A22H_I2c_Spi_Read(SL_SPI_IIC_INTERFACE, 0x20, 1, &time_data[2]);
    time_stamp=(unsigned int)(time_data[0]<<16|time_data[1]<<8|time_data[2]);
    return time_stamp;
}
unsigned char SL_SC7A22H_POWER_DOWN(void)
{
    unsigned char SL_Read_Reg  = 0xff;
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x7D, 0x00);//POWER DOWN
//    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x7D, SL_Read_Reg);
    if(SL_Read_Reg==0x00)   return  1;
    else                    return  0;
}
//获取加速度原始数据
void SL_SC7A22H_RawData_Read(signed short *x_data,signed short *y_data,signed short *z_data)
{
    unsigned char  raw_data[6];
    unsigned char  drdy_satus;
    unsigned short drdy_cnt=0;
    SL_SC7A22H_I2c_Spi_Read(SL_SPI_IIC_INTERFACE, 0x0B, 1, &drdy_satus);
    while((drdy_satus&0x03)!=0x03);
    SL_SC7A22H_I2c_Spi_Read(SL_SPI_IIC_INTERFACE, 0x0C, 6, &raw_data[0]);
    *x_data =(signed short)((((unsigned char)raw_data[0])* 256) + ((unsigned char)raw_data[1]));//16λ
    *y_data =(signed short)((((unsigned char)raw_data[2])* 256) + ((unsigned char)raw_data[3]));//16λ
    *z_data =(signed short)((((unsigned char)raw_data[4])* 256) + ((unsigned char)raw_data[5]));//16λ
#if SL_Sensor_Algo_Release_Enable==0x01
    printf("SC7A22H_rawdata_16bit:x:%d y:%d z:%d\r\n",*x_data,*y_data,*z_data);
#endif
}
unsigned char  SL_SC7A22H_FIFO_DATA[512];
//取20Hz的数据,相当于是从FIFO中抽取一组数据
unsigned char SL_SC7A22H_FIFO_Read(signed short *x_data_buf,signed short *y_data_buf,signed short *z_data_buf)
{
    unsigned char  fifo_num1=0;
    unsigned char  fifo_num2=0;
    unsigned short fifo_num=0;
    unsigned short fifo_len=0;
    unsigned short j;
    SL_SC7A22H_I2c_Spi_Read(SL_SPI_IIC_INTERFACE, 0x1F,1,&fifo_num1);
    SL_SC7A22H_I2c_Spi_Read(SL_SPI_IIC_INTERFACE, 0x20,1,&fifo_num2);
    if((fifo_num1&0x10)==0x10)
    {
        fifo_num=256;
    }
    else
    {
        fifo_num=(fifo_num1&0x01)*256+fifo_num2;
    }
    SL_SC7A22H_I2c_Spi_Read(SL_SPI_IIC_INTERFACE, 0x21, fifo_num*2,SL_SC7A22H_FIFO_DATA);//单地址连续读取
#if SL_Sensor_Algo_Release_Enable==1
    printf("0x1F:0x%x 0x20:0x%x\n",fifo_num1,fifo_num2);
    printf("SC7A22H_FIFO_NUM1:%d\n",fifo_num);
    printf("SC7A22H_FIFO_NUM2:%d\n",(fifo_num-2)/3);//I2C=4 SPI=2
#endif
    for(j=0;j<(fifo_num-2)/3;j++)
    {
        //0-3=sensor timestamp
        x_data_buf[j] =(signed short)(((unsigned char)SL_SC7A22H_FIFO_DATA[4+j*6] * 256 ) + (unsigned char)SL_SC7A22H_FIFO_DATA[5+j*6]);//16λ
        y_data_buf[j] =(signed short)(((unsigned char)SL_SC7A22H_FIFO_DATA[6+j*6] * 256 ) + (unsigned char)SL_SC7A22H_FIFO_DATA[7+j*6]);//16λ
        z_data_buf[j] =(signed short)(((unsigned char)SL_SC7A22H_FIFO_DATA[8+j*6] * 256 ) + (unsigned char)SL_SC7A22H_FIFO_DATA[9+j*6]);//16λ
//        x_data_buf[j] =x_data_buf[0][j]/16;//12λ
//        y_data_buf[j] =y_data_buf[0][j]/16;//12λ
//        z_data_buf[j] =z_data_buf[0][j]/16;//12λ
#if SL_Sensor_Algo_Release_Enable==0x01
//        printf("SC7A22H_rawdata_16bit:len:%d x:%d y:%d z:%d\r\n",j,x_data_buf[j],y_data_buf[j],z_data_buf[j]);
#endif
    }
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x1D, 0x00);//BY PASS MODE
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x1D, 0x10);//FIFO MODE
    return fifo_len;
}
/***************加速度计数据读取*1byte*********/
void SL_SC7A22H_Read_XYZ_Data(signed short *SL_SC7A22H_Data_XYZ_Buf)
{
    unsigned char SL_Read_Buf[7];
    SL_SC7A22H_I2c_Spi_Read(SL_SC7A22H_SPI_IIC_MODE,SL_SC7A22H_DATA_STAT,1, &SL_Read_Buf[0]);
//
    if((SL_Read_Buf[0]&0x0f)==0x0f)
    {
        SL_SC7A22H_I2c_Spi_Read(SL_SC7A22H_SPI_IIC_MODE,SL_SC7A22H_DATA_OUT,6, &SL_Read_Buf[1]);
        SL_SC7A22H_Data_XYZ_Buf[0]=(signed short)(SL_Read_Buf[6] << 8);//X BLE=0
        SL_SC7A22H_Data_XYZ_Buf[1]=(signed short)(SL_Read_Buf[2] << 8);//Y
        SL_SC7A22H_Data_XYZ_Buf[2]=(signed short)(SL_Read_Buf[4] << 8);//Z
    }
}
/***************加速度计数据读取一组FIFO数据*********/
void SL_SC7A22H_Read_XYZ_Data_FIFO(signed short *SL_SC7A22H_Data_XYZ_Buf)
{
    unsigned char SL_Read_Buf[3];
    SL_SC7A22H_I2c_Spi_Read(SL_SC7A22H_SPI_IIC_MODE,SL_SC7A22H_FIFO_DATA1,3, &SL_Read_Buf[0]);
    SL_SC7A22H_Data_XYZ_Buf[0]=(signed short)(SL_Read_Buf[2] << 8);//x
    SL_SC7A22H_Data_XYZ_Buf[1]=(signed short)(SL_Read_Buf[0] << 8);//y
    SL_SC7A22H_Data_XYZ_Buf[2]=(signed short)(SL_Read_Buf[1] << 8);//z
}
/***************加速度数据转换*********/
void SL_SC7A22H_Data_Convert(signed short *SL_SC7A22H_Raw_Data_XYZ_Buf,signed short *SL_SC7A22H_Output_Data_XYZ_Buf,unsigned char SC7A22H_FS_Reg)
{
    unsigned char ratio =0 ;
    switch (SC7A22H_FS_Reg)
    {
        case SL_SC7A22H_FS_2G:
            ratio=1;
            break;
        case SL_SC7A22H_FS_4G:
            ratio=2;
            break;
        case SL_SC7A22H_FS_8G:
            ratio=4;
            break;
        case SL_SC7A22H_FS_16G:
            ratio=8;
            break;
        default:
            ratio=1;
            break;
    }
    SL_SC7A22H_Output_Data_XYZ_Buf[0]= (SL_SC7A22H_Raw_Data_XYZ_Buf[0] >> 4) * ratio;
    SL_SC7A22H_Output_Data_XYZ_Buf[1]= (SL_SC7A22H_Raw_Data_XYZ_Buf[1] >> 4) * ratio;
    SL_SC7A22H_Output_Data_XYZ_Buf[2]= (SL_SC7A22H_Raw_Data_XYZ_Buf[2] >> 4) * ratio;
        printf("%d,%d,%d\r\n",SL_SC7A22H_Output_Data_XYZ_Buf[0], SL_SC7A22H_Output_Data_XYZ_Buf[1], SL_SC7A22H_Output_Data_XYZ_Buf[2]);
}
static unsigned int   SL_Step_Value_Temp=0;
//0:静止  1:慢走  2:å¿«èµ°  3:跑步
unsigned char SL_SC7A22H_Get_Motion(void)
{
    unsigned char sl_motion;
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x7F, 0x90);
    SL_SC7A22H_Delay_Ms(1);
    SL_SC7A22H_I2c_Spi_Read(SL_SPI_IIC_INTERFACE, 0x3B, 1, &sl_motion);
//    printf("SC7A22H_sl_motion:%d\r\n",sl_motion);
    sl_motion=(sl_motion&0x30)>>4;
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x7F, 0x00);
    SL_SC7A22H_Delay_Ms(1);
    return sl_motion;
}
void SL_SC7A22H_Pedo_Reset(void)
{
    unsigned char SL_Reg;
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x7F, 0x90);
    SL_SC7A22H_Delay_Ms(1);
    SL_SC7A22H_I2c_Spi_Read(SL_SPI_IIC_INTERFACE,0x3A,1, &SL_Reg);
    SL_Reg=(SL_Reg&0x08)|0x05;
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x3A, SL_Reg);
    SL_Step_Value_Temp=0;
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x7F, 0x00);
    SL_SC7A22H_Delay_Ms(1);
}
//recommend IN TIMER  <10s
unsigned int  SL_SC7A22H_Get_Pedo_Count(void)
{
    unsigned char SL_Step_Reg[2];
    unsigned short  SL_Step_Value;
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x7F, 0x90);
    SL_SC7A22H_Delay_Ms(1);
    SL_SC7A22H_I2c_Spi_Read(SL_SPI_IIC_INTERFACE,0x3C,2, &SL_Step_Reg[0]);
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x7F, 0x00);
    SL_SC7A22H_Delay_Ms(1);
    SL_Step_Value=(unsigned short)((SL_Step_Reg[1]<<8)|(SL_Step_Reg[0]));
        return SL_Step_Value;
}
// 0:  æ²¡æœ‰å‘生任何抬手状态
// 1:  å·²ç»å‘生了抬手动作
// 2:  å·²ç»å‘生了放下动作
unsigned char SL_SC7A22H_Get_Wrist_Status(void)
{
    unsigned char sl_wrist_status;
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x7F, 0x90);
    SL_SC7A22H_Delay_Ms(1);
    SL_SC7A22H_I2c_Spi_Read(SL_SPI_IIC_INTERFACE,0x3E,1, &sl_wrist_status);
#if SL_Sensor_Algo_Release_Enable==0x01
    printf("SC7A22H_WRIST_STATUS:0x%x\r\n",sl_wrist_status);
#endif
#if SL_SC7A22H_WRIST_INT_MODE==0x00 //上升沿表示放下,下降沿表示抬手
    if((sl_wrist_status&0x02)==0x02)
    {
        printf("已经发生了抬手动作\r\n");
        return 1;
    }
    else if((sl_wrist_status&0x04)==0x04)
    {
        printf("已经发生了放下动作\r\n");
        return 2;
    }
    else
    {
        return 0;//异常情况
    }
#else //下降沿表示抬手或放下,需要不断切换中断触发源,通过查询确定中断
    if((sl_wrist_status&0x02)==0x02)
    {
#if SC7A22H_INT2_WRIST_ON_DOWN==0x01
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x7F, 0x00);//来回切换使用
        sl_delay(1);//来回切换使用
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x07, 0x14);//来回切换使用
#endif
        return 1;
    }
    else if((sl_wrist_status&0x04)==0x04)
    {
#if SC7A22H_INT2_WRIST_ON_DOWN==0x01
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x7F, 0x00);//来回切换使用
        sl_delay(1);//来回切换使用
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x07, 0x13);//来回切换使用
#endif
        return 2;
    }
    else
    {
#if SC7A22H_INT2_WRIST_ON_DOWN==0x01
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x7F, 0x90);//来回切换使用
        sl_delay(1);//来回切换使用
        SL_SC7A22H_I2c_Spi_Read(SL_SPI_IIC_INTERFACE,0x3E,1, &sl_wrist_status);//读取一次
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x07, 0x14);//来回切换使用
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x7F, 0x00);
        sl_delay(1);
#endif
        return 0;//异常情况
    }
#endif
    return sl_wrist_status;
}
keil/include/drivers/SC7A22H_example.c
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,390 @@
#include "SC7A22H.h"
#include "mk_trace.h"
//轮询获取三轴数据示例
void SC7A22H_get_rawdata_Polling()
{
    signed short SL_Read_Buf[3]={0};
    signed short SL_XYZ_Data[3]={0};
    unsigned char reg_value=0;
        uint8_t data;
        uint8_t buff[6];
//1.初始化通信接口
    SL_SC7A22H_I2c_Spi_Init(SL_SC7A22H_SPI_IIC_MODE);
//2.复位芯片
    SL_SC7A22H_Soft_Reset();
        SL_SC7A22H_Delay_Ms(1000);
//3.检查是否能读取芯片WHO AM I寄存器
      SL_SC7A22H_Check();
//4.启动ACC
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x7F, 0x00);//goto 0x00
  SL_SC7A22H_Delay_Ms(10);
      SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x7D, 0x04);//PWR_CTRL ENABLE ACC
      SL_SC7A22H_Delay_Ms(10);
//5.设置量程
      SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x41, 0x01);//ACC_RANGE  Â±4G
//6.设置输出速率更新、工作模式
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x40, 0x07);//ACC_CONF 50Hz  é«˜æ€§èƒ½
      SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x05, 0x50);//I2C_CFG
    while(1)
    {
        SL_SC7A22H_Delay_Ms(1000);
//7.循环读取加速度数据
        SL_SC7A22H_RawData_Read(&gsensor_soft_fifo_buffer[0].sXAxisVal, &gsensor_soft_fifo_buffer[0].sYAxisVal, &gsensor_soft_fifo_buffer[0].sZAxisVal);
            }
}
uint8_t fifo_ready_flag=0;
/***************FIFO模式获取XYZ数据水位示例*********/
void SC7A22H_get_rawdata_fifo_wtm_interrupt()
{
    signed short SL_Read_Buf[3]={0};
    signed short SL_XYZ_Data[3]={0};
    unsigned char reg_value=0;
        uint8_t data;
        uint8_t FIFO_stat;
        uint8_t buff[6];
//1.初始化通信接口
   SL_SC7A22H_I2c_Spi_Init(SL_SC7A22H_SPI_IIC_MODE);
//2.复位芯片
    SL_SC7A22H_Soft_Reset();//无问题
//3.检查是否能读取芯片WHO AM I寄存器
      SL_SC7A22H_Check();//无问题
//4.启动ACC
    SL_SC7A22H_I2c_Spi_Write(SL_SC7A22H_SPI_IIC_MODE, 0x7D, 0x04);//PWR_CTRL ENABLE ACC
    SL_SC7A22H_Delay_Ms(15);
//5.设置量程
      SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x41, 0x01);//ACC_RANGE  Â±4G
//6.FIFOģʽ
    SL_SC7A22H_I2c_Spi_Read(SL_SPI_IIC_INTERFACE, 0x05, 1, &reg_value);
        reg_value=reg_value&0xEF;//addr_add_auto disable
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x05, reg_value);
//AOI1 ä¸­æ–­ä½œä¸º FIFO è§¦å‘模式中断事件输入,FIFO模式
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x1D, 0x10);//fifo mode set
//WTM é˜ˆå€¼è®¾ç½®:    75
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x1E, 0x4B);//fifo fth set
//FIFO使能
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x1C, 0x04);//fifo enable
//7.中断配置  int1中断触发时输出高电平(默认低电平), FIFO水位中断在 INT1 ä¸Š
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x06, 0x09);//INT_CFG1
//8.设置输出速率更新、工作模式
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x40, 0x06);//ACC_CONF 25Hz  ä½ŽåŠŸè€—æ¨¡å¼
    fifo_ready_flag=0;
    while(1)
    {
            if(fifo_ready_flag)
            {
                fifo_ready_flag=0;
              SL_SC7A22H_FIFO_Read(&gsensor_soft_fifo_buffer[0].sXAxisVal, &gsensor_soft_fifo_buffer[0].sYAxisVal, &gsensor_soft_fifo_buffer[0].sZAxisVal);
            }
    }
}
//用户需自定义中断服务函数,当FIFO数据满时INT1会从低电平变为高电平,用户可以IO捕捉上升沿产生中断
//在其中断服务中调用改函数
void fifo_ready_interrupt_callback()
{
    fifo_ready_flag=1;
}
uint8_t double_click_flag=0;
/*******双击检测示例*********/
void SC7A22H_get_double_click()
{
    unsigned char reg_value=0;
        unsigned char CLICK_status;
//1.初始化通信接口
   SL_SC7A22H_I2c_Spi_Init(SL_SC7A22H_SPI_IIC_MODE);
//2.复位芯片
    SL_SC7A22H_Soft_Reset();//无问题
//3.检查是否能读取芯片WHO AM I寄存器
      SL_SC7A22H_Check();//无问题
//4,加速度计使能
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x7D, 0x04);//PWR_CTRL ENABLE ACC
        SL_SC7A22H_Delay_Ms(200);
//5,量程设置:+-4G
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x41, 0x01);//ACC_RANGE  Â±4G
//6,敲击中断设置
//输出数据寄存器不更新直到 MSB å’Œ LSB è¢«è¯»å– 2,地址自增,连续读写时地址自增
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x05, 0x50);//I2C_CFG
//推挽输出使能,    ä¸­æ–­è§¦å‘时输出高电平(默认低电平),CLICK ä¸­æ–­åœ¨ INT1 ä¸Š
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x06, 0x07);//INT_CFG1 CLICK TO INT1
//禁止滤波
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x08, 0x00);//Disable DLPF
//AOI ä¸­æ–­ä½¿èƒ½ï¼ŒAOI1滤波使能,锁存 AOI1_CFG å¯„存器上指定的中断响应
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x3F, 0x11);//HPIS1=1 LIR_AOI1
//XYZ è½´é«˜äº‹ä»¶ä¸­æ–­æˆ–者 Z è½´æ–¹å‘检测中断使能,
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x30, 0x2A);//xyz for aoi1 or event
//AIO1阈值:4G----32mg*8=256mg
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x32, 0x08);//aoi1 vth
//识别AIO1事件的最小持续时间
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x33, 0x02);//aoi1 tth
//7,敲击配置
//需要将0x7F(SEG_SEL)配置0x90后再进行访问的寄存器及地址和初值器
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x7F, 0x90);//goto 0x90
        SL_SC7A22H_Delay_Ms(1);
//输出中断必须满足设置的敲击阈值个数才能输出中断,否则无中断输出
//锁存CLICK ä¸­æ–­çŠ¶æ€,:使能 XYZ è½´æ•°æ®å‚与敲击检测
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x38, 0x1F);//XYZ CLICK ENABLE  AND LATCH INT LEVEL
    //敲击前数据稳定时长设置------20ms(400hz)
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x40, 0x52);//CLICK_COEFF1
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x41, 0x9A);//CLICK_COEFF2
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x42, 0x04);//CLICK_COEFF3
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x43, 0x52);//CLICK_COEFF4  //0x52中的2表示敲击次数
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x7F, 0x00);//goto 0x00
        SL_SC7A22H_Delay_Ms(1);
//8,低功耗模式使能  400Hz输出
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x40, 0x0A);//ACC_CONF 0x0A=400Hz
//9, è¯»å–CLICK_SRC的状态机
   SL_SC7A22H_I2c_Spi_Read(SL_SC7A22H_SPI_IIC_MODE, 0x39, 1, &CLICK_status);
//等待中断触发
   double_click_flag=0;
    while(1)
    {
            if(double_click_flag)
            {
                 double_click_flag=0;
         SL_SC7A22H_I2c_Spi_Read(SL_SC7A22H_SPI_IIC_MODE, 0x39, 1, &CLICK_status);
               printf("SC7A22H_INT1_SRC:%x\r\n",CLICK_status);
            }
    }
}
//用户需自定义中断服务函数,当运动检测事件触发时INT1会从高电平变为低电平,用户可以IO捕捉下降沿产生中断
//在其中断服务中调用改函数
void double_click_interrupt_callback()
{
  double_click_flag=1;
}
/***************计步检测示例*********/
uint8_t Pedo_flag=0;
void SC7A22H_get_Pedo()
{
    unsigned char reg_value=0;
        unsigned char Pedo_status;
    unsigned int  Pedo_Count;
//1.初始化通信接口
   SL_SC7A22H_I2c_Spi_Init(SL_SC7A22H_SPI_IIC_MODE);
//2.复位芯片
    SL_SC7A22H_Soft_Reset();//无问题
//3.检查是否能读取芯片WHO AM I寄存器
//      SL_SC7A22H_Check();//无问题
//4,加速度计使能
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x7D, 0x04);//PWR_CTRL ENABLE ACC
        SL_SC7A22H_Delay_Ms(200);
//5,量程设置:+-4G
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x41, 0x01);//ACC_RANGE  Â±4G
//6,中断设置
//输出数据寄存器不更新直到 MSB å’Œ LSB è¢«è¯»å– 2,地址自增,连续读写时地址自增
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x05, 0x50);//I2C_CFG
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x06, 0x10);//DELTA_STEP ä¸­æ–­åœ¨ INT1 ä¸Š
//启动滤波
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x08, 0x05);//Enable DLPF
//7,计步设置
  SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x7F, 0x90);
    SL_SC7A22H_Delay_Ms(1);
    //抗马达和音乐干扰使能,计步功能使能
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x3A, 0x05);
    //计步模块滤波器设置
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x46, 0x4F);
    //计步灵敏度:100,最优计步轴时间阈值设置:11
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x47, 0x23);
    //最佳数据源切换阈值设置:00,起始步数设置:100,规律计步等级:011
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x48, 0x8F);
    //单步阈值下限控制:100  ,单步阈值上限控制:101
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x49, 0x1C);
    //XYZ å‚与计步,计步噪声:0100
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x4A, 0x04);
    //噪声计数阈值设置:100
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x4B, 0x8C);
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x7F, 0x00);
    SL_SC7A22H_Delay_Ms(1);
//8,低功耗模式使能  50Hz输出
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x40, 0x26);////ACC_CONF 0x07=50Hz
//等待中断触发
   Pedo_flag=0;
}
uint8_t pedo_upload_count=0;
uint8_t pedo_upload_status=0;
extern uint8_t Pedo_flag;
void SC7A22H_get_Pedo_task()
{
            if(Pedo_flag)
            {
             Pedo_flag=0;
       pedo_upload_status=SL_SC7A22H_Get_Motion();
       pedo_upload_count=SL_SC7A22H_Get_Pedo_Count();
             LOG_INFO(TRACE_MODULE_APP,"SC7A22H_Pedo_status:%d\r\n",pedo_upload_status);
             LOG_INFO(TRACE_MODULE_APP,"SC7A22H_Pedo_Count:%d\r\n",pedo_upload_count);
            }
}
//计步功能启动函数
//用户需自定义中断服务函数,当运动检测事件触发时INT1会从高电平变为低电平,用户可以IO捕捉下降沿产生中断
//在其中断服务中调用改函数
void Pedo_interrupt_callback()
{
  Pedo_flag=1;
}
/***************抬腕检测示例*********/
uint8_t Wrist_flag=0;
void SC7A22H_get_Wrist()
{
    unsigned char reg_value=0;
        unsigned char Wrist_status;
    unsigned int Wrist_Count;
//1.初始化通信接口
   SL_SC7A22H_I2c_Spi_Init(SL_SC7A22H_SPI_IIC_MODE);
//2.复位芯片
    SL_SC7A22H_Soft_Reset();//无问题
//3.检查是否能读取芯片WHO AM I寄存器
      SL_SC7A22H_Check();//无问题
//4,加速度计使能
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x7D, 0x04);//PWR_CTRL ENABLE ACC
        SL_SC7A22H_Delay_Ms(200);
//5,量程设置:+-4G
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x41, 0x01);//ACC_RANGE  Â±4G
//6,中断设置
//输出数据寄存器不更新直到 MSB å’Œ LSB è¢«è¯»å– 2,地址自增,连续读写时地址自增
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x05, 0x50);//I2C_CFG
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x06, 0x15);//WRIST_ON_FLAG|WRIST_DOWN_FLAG ä¸­æ–­åœ¨ INT1 ä¸Š
//启动滤波
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x08, 0x05);//Enable DLPF
//7,抬腕设置
  SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x7F, 0x90);
  SL_SC7A22H_Delay_Ms(1);
  SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x7F, 0x90);
    SL_SC7A22H_Delay_Ms(1);
    //手腕检测使能
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x3E, 0x10);
    //允许角度误差设置:16LSB, è´´ç‰‡ä½ç½®è®¾ç½®ï¼šæ­£é¢ç„ŠæŽ¥ä½ç½®3
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x51, 0x33);
    //抬手目标角度值设置位:对应加速度值4
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x52, 0x02);
    //抬手识别灵敏度设置:16LSB,抬手状态触发所需持续时间的设置:0.4s,离开抬手状态触发所需持续时间:0.4s
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x53, 0x93);
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x7F, 0x00);
    SL_SC7A22H_Delay_Ms(1);
//8,低功耗模式使能  50Hz输出
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x40, 0x26);////ACC_CONF 0x07=50Hz
//等待中断触发
  Wrist_flag=0;
    while(1)
    {
            if(Wrist_flag)
            {
             Wrist_flag=0;
             Wrist_status=SL_SC7A22H_Get_Wrist_Status();
            }
    }
}
//用户需自定义中断服务函数,当运动检测事件触发时INT1会从高电平变为低电平,用户可以IO捕捉下降沿产生中断
//在其中断服务中调用改函数
void Wrist_interrupt_callback()
{
  Wrist_flag=1;
}
void SC7A22H_self_test()
{
    signed short SL_Read_Buf[3]={0};
    signed short SL_XYZ_Data[3]={0};
    unsigned char reg_value=0;
        uint8_t data;
        uint8_t buff[6];
//1.初始化通信接口
   SL_SC7A22H_I2c_Spi_Init(SL_SC7A22H_SPI_IIC_MODE);
//2.复位芯片
    SL_SC7A22H_Soft_Reset();//无问题
//3.检查是否能读取芯片WHO AM I寄存器
      SL_SC7A22H_Check();//无问题
//加速度计使能
    SL_SC7A22H_I2c_Spi_Write(SL_SC7A22H_SPI_IIC_MODE, 0x7D, 0x04);//加速度计使能
    delay_ms(15);
//低功耗模式使能, ä½ŽåŠŸè€—æ¨¡å¼:1个数据平均一次,50Hz输出
//全量程选择:±8G
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x41, 0x02);//ACC_RANGE  Â±8G
    SL_SC7A22H_I2c_Spi_Read(SL_SC7A22H_SPI_IIC_MODE, 0x6D, 1, &reg_value);
        delay_ms(60);
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x40, 0xac);//ACC_CONF 0x07=50Hz
    delay_ms(60);
//地址自增,连续读写时地址自增,连续更新
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x05, 0x10);//I2C_CFG
    delay_ms(60);
//        SL_SC7A22H_I2c_Spi_Read(SL_SC7A22H_SPI_IIC_MODE, 0x6D, 1, &reg_value);
//自测试模式使能---正方向,    åè½¬ä½ŽæŒ¯å¹…
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x6D, 0x05);//
   delay_ms(60);
    while(1)
    {
            SL_SC7A22H_RawData_Read(&gsensor_soft_fifo_buffer[0].sXAxisVal, &gsensor_soft_fifo_buffer[0].sYAxisVal, &gsensor_soft_fifo_buffer[0].sZAxisVal);
            delay_ms(1000);
    }
}
keil/include/drivers/SC7A22H_port.c
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
#include "SC7A22H.h"
unsigned char SL_SC7A22H_I2c_Spi_Init(unsigned char sl_spi_iic)
{
        return 1;
}
unsigned char SL_SC7A22H_I2c_Spi_Write(unsigned char sl_spi_iic,unsigned char reg, unsigned char data)
{
    LIS3DH_WriteOneByte(reg,data);
    return 1;
}
unsigned char  SL_SC7A22H_I2c_Spi_Read(unsigned char sl_spi_iic,unsigned char reg, unsigned char len, unsigned char *buf)
{
//
//  LIS3DH_ReadLenByte(reg,len);
    SC7A22H_ReadLenByte(reg,len,buf);
    return 1;
}
void SL_SC7A22H_Delay_Ms(unsigned long int ms)
{
    delay_ms(ms);
}
keil/include/drivers/lis3dh_driver.c
@@ -226,7 +226,7 @@
//        g_com_map[IMU_ENABLE]=0;
//    }
                lisid = mir3da_ReadOneByte(REG_CHIP_ID); 
                SL_SC7A22H_Check();
                if(lisid == 0x13)
                {
                        mir3da_init();
@@ -701,7 +701,13 @@
    }
    return temp;
}
void SC7A22H_ReadLenByte(uint16_t ReadAddr, uint8_t Len, uint8_t *buf)
{
    for(uint8_t t = 0; t < Len; t++)
    {
        buf[t] = LIS3DH_ReadOneByte(ReadAddr + t);
    }
}
//在mir3da里面的指定地址开始读一字节数据
//ReadAddr   :读出的地址
//返回值     :读出的数据
keil/include/main/main.c
@@ -929,6 +929,7 @@
    gpio_open();
      IIC2_Init();
      Accelerometer_Init();
//     delay_ms(100);
    BarInit();
//     delay_ms(100);
@@ -1030,6 +1031,7 @@
            flag_secondtask = 0;
            SecondTask();
        }
                SC7A22H_get_Pedo_task();
            IMUTask();
        IdleTask();
                check_step_and_update_state();
keil/include/src/TCPClient.c
@@ -517,7 +517,9 @@
uint8_t uwbsendnum,gpssendnum;
extern uint8_t exercise_state;
extern uint32_t step_count;
extern uint32_t step_count;
extern uint8_t pedo_upload_count;
extern uint8_t pedo_upload_status;
extern uint16_t gaodu;void UDPClient_UploadGPS(HIDO_CHAR *_pcGGA)
{
    if(TCP_CLIENT_STATE_CONNECTED == l_eTCPClientState)
@@ -527,7 +529,7 @@
#ifdef JIBU_XIUMIAN                
        HIDO_UINT32 u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "%s,%X,%02x,%x,%d,%d,%d%\r\n",
//                _pcGGA, g_com_map[DEV_ID], bat_percent,ave_sp,0,0,0);
                _pcGGA, g_com_map[DEV_ID], bat_percent,ave_sp,gaodu,(uint8_t)(step_count),exercise_state);
                _pcGGA, g_com_map[DEV_ID], bat_percent,ave_sp,gaodu,pedo_upload_count,pedo_upload_status);
#else
        HIDO_UINT32 u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "%s,%X,%02x,%x,%d,%d,%d%\r\n",
                _pcGGA, g_com_map[DEV_ID], bat_percent,ave_sp,gaodu,0,0);
keil/uwb_simple_example.uvoptx
@@ -120,7 +120,7 @@
        <SetRegEntry>
          <Number>0</Number>
          <Key>DLGUARM</Key>
          <Name>d</Name>
          <Name></Name>
        </SetRegEntry>
        <SetRegEntry>
          <Number>0</Number>
@@ -152,41 +152,9 @@
        <Bp>
          <Number>0</Number>
          <Type>0</Type>
          <LineNumber>528</LineNumber>
          <LineNumber>133</LineNumber>
          <EnabledFlag>1</EnabledFlag>
          <Address>44616</Address>
          <ByteObject>0</ByteObject>
          <HtxType>0</HtxType>
          <ManyObjects>0</ManyObjects>
          <SizeOfObject>0</SizeOfObject>
          <BreakByAccess>0</BreakByAccess>
          <BreakIfRCount>1</BreakIfRCount>
          <Filename>D:\zhangbo\2024\Code\ChinaUWB\骞垮搱绉绘\ChinaUWBProject\keil\include\src\TCPClient.c</Filename>
          <ExecCommand></ExecCommand>
          <Expression>\\uwb_simple_example\include/src/TCPClient.c\528</Expression>
        </Bp>
        <Bp>
          <Number>1</Number>
          <Type>0</Type>
          <LineNumber>672</LineNumber>
          <EnabledFlag>1</EnabledFlag>
          <Address>12872</Address>
          <ByteObject>0</ByteObject>
          <HtxType>0</HtxType>
          <ManyObjects>0</ManyObjects>
          <SizeOfObject>0</SizeOfObject>
          <BreakByAccess>0</BreakByAccess>
          <BreakIfRCount>1</BreakIfRCount>
          <Filename>D:\zhangbo\2024\Code\ChinaUWB\骞垮搱绉绘\ChinaUWBProject\keil\include\src\GPS.c</Filename>
          <ExecCommand></ExecCommand>
          <Expression>\\uwb_simple_example\include/src/GPS.c\672</Expression>
        </Bp>
        <Bp>
          <Number>2</Number>
          <Type>0</Type>
          <LineNumber>1013</LineNumber>
          <EnabledFlag>1</EnabledFlag>
          <Address>65394</Address>
          <Address>83906</Address>
          <ByteObject>0</ByteObject>
          <HtxType>0</HtxType>
          <ManyObjects>0</ManyObjects>
@@ -195,23 +163,7 @@
          <BreakIfRCount>1</BreakIfRCount>
          <Filename>D:\zhangbo\2024\Code\ChinaUWB\骞垮搱绉绘\ChinaUWBProject\keil\include\main\main.c</Filename>
          <ExecCommand></ExecCommand>
          <Expression>\\uwb_simple_example\include/main/main.c\1013</Expression>
        </Bp>
        <Bp>
          <Number>3</Number>
          <Type>0</Type>
          <LineNumber>1014</LineNumber>
          <EnabledFlag>1</EnabledFlag>
          <Address>0</Address>
          <ByteObject>0</ByteObject>
          <HtxType>0</HtxType>
          <ManyObjects>0</ManyObjects>
          <SizeOfObject>0</SizeOfObject>
          <BreakByAccess>0</BreakByAccess>
          <BreakIfRCount>0</BreakIfRCount>
          <Filename>.\include\main\main.c</Filename>
          <ExecCommand></ExecCommand>
          <Expression></Expression>
          <Expression>\\uwb_simple_example\include/main/main.c\133</Expression>
        </Bp>
      </Breakpoint>
      <WatchWindow1>
@@ -410,127 +362,47 @@
        <Ww>
          <count>0</count>
          <WinNumber>2</WinNumber>
          <ItemText>tag_id_recv</ItemText>
          <ItemText>temp</ItemText>
        </Ww>
        <Ww>
          <count>1</count>
          <WinNumber>2</WinNumber>
          <ItemText>tagid_list</ItemText>
          <ItemText>temp</ItemText>
        </Ww>
        <Ww>
          <count>2</count>
          <WinNumber>2</WinNumber>
          <ItemText>tagdist_list</ItemText>
          <ItemText>reg_value1</ItemText>
        </Ww>
        <Ww>
          <count>3</count>
          <WinNumber>2</WinNumber>
          <ItemText>tagid_list</ItemText>
          <ItemText>Pedo_status</ItemText>
        </Ww>
        <Ww>
          <count>4</count>
          <WinNumber>2</WinNumber>
          <ItemText>group_id,0x0A</ItemText>
          <ItemText>Pedo_flag</ItemText>
        </Ww>
        <Ww>
          <count>5</count>
          <WinNumber>2</WinNumber>
          <ItemText>rx_buf</ItemText>
          <ItemText>test51</ItemText>
        </Ww>
        <Ww>
          <count>6</count>
          <WinNumber>2</WinNumber>
          <ItemText>tagofflinetime,0x0A</ItemText>
          <ItemText>SC7id</ItemText>
        </Ww>
        <Ww>
          <count>7</count>
          <WinNumber>2</WinNumber>
          <ItemText>taglist_num</ItemText>
          <ItemText>pedo_upload_status</ItemText>
        </Ww>
        <Ww>
          <count>8</count>
          <WinNumber>2</WinNumber>
          <ItemText>nomove_count</ItemText>
        </Ww>
        <Ww>
          <count>9</count>
          <WinNumber>2</WinNumber>
          <ItemText>tag_id_recv</ItemText>
        </Ww>
        <Ww>
          <count>10</count>
          <WinNumber>2</WinNumber>
          <ItemText>group_id</ItemText>
        </Ww>
        <Ww>
          <count>11</count>
          <WinNumber>2</WinNumber>
          <ItemText>group_id</ItemText>
        </Ww>
        <Ww>
          <count>12</count>
          <WinNumber>2</WinNumber>
          <ItemText>rec_nearbase_num</ItemText>
        </Ww>
        <Ww>
          <count>13</count>
          <WinNumber>2</WinNumber>
          <ItemText>uwb_offtime_count,0x0A</ItemText>
        </Ww>
        <Ww>
          <count>14</count>
          <WinNumber>2</WinNumber>
          <ItemText>current_state</ItemText>
        </Ww>
        <Ww>
          <count>15</count>
          <WinNumber>2</WinNumber>
          <ItemText>_u32Event</ItemText>
        </Ww>
        <Ww>
          <count>16</count>
          <WinNumber>2</WinNumber>
          <ItemText>elapsed_time_jibu</ItemText>
        </Ww>
        <Ww>
          <count>17</count>
          <WinNumber>2</WinNumber>
          <ItemText>state_start_time,0x0A</ItemText>
        </Ww>
        <Ww>
          <count>18</count>
          <WinNumber>2</WinNumber>
          <ItemText>uwb_time_count,0x0A</ItemText>
        </Ww>
        <Ww>
          <count>19</count>
          <WinNumber>2</WinNumber>
          <ItemText>uwb_offtime_count,0x0A</ItemText>
        </Ww>
        <Ww>
          <count>20</count>
          <WinNumber>2</WinNumber>
          <ItemText>state_start_time,0x0A</ItemText>
        </Ww>
        <Ww>
          <count>21</count>
          <WinNumber>2</WinNumber>
          <ItemText>step_count,0x0A</ItemText>
        </Ww>
        <Ww>
          <count>22</count>
          <WinNumber>2</WinNumber>
          <ItemText>uwb_time_count,0x0A</ItemText>
        </Ww>
        <Ww>
          <count>23</count>
          <WinNumber>2</WinNumber>
          <ItemText>state_start_time_jibu</ItemText>
        </Ww>
        <Ww>
          <count>24</count>
          <WinNumber>2</WinNumber>
          <ItemText>current_state</ItemText>
          <ItemText>pedo_upload_count,0x0A</ItemText>
        </Ww>
      </WatchWindow2>
      <MemoryWindow1>
@@ -1004,6 +876,54 @@
      <RteFlg>0</RteFlg>
      <bShared>0</bShared>
    </File>
    <File>
      <GroupNumber>3</GroupNumber>
      <FileNumber>34</FileNumber>
      <FileType>5</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
      <bDave2>0</bDave2>
      <PathWithFileName>.\include\drivers\SC7A22H.h</PathWithFileName>
      <FilenameWithoutPath>SC7A22H.h</FilenameWithoutPath>
      <RteFlg>0</RteFlg>
      <bShared>0</bShared>
    </File>
    <File>
      <GroupNumber>3</GroupNumber>
      <FileNumber>35</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
      <bDave2>0</bDave2>
      <PathWithFileName>.\include\drivers\SC7A22H_driver.c</PathWithFileName>
      <FilenameWithoutPath>SC7A22H_driver.c</FilenameWithoutPath>
      <RteFlg>0</RteFlg>
      <bShared>0</bShared>
    </File>
    <File>
      <GroupNumber>3</GroupNumber>
      <FileNumber>36</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
      <bDave2>0</bDave2>
      <PathWithFileName>.\include\drivers\SC7A22H_example.c</PathWithFileName>
      <FilenameWithoutPath>SC7A22H_example.c</FilenameWithoutPath>
      <RteFlg>0</RteFlg>
      <bShared>0</bShared>
    </File>
    <File>
      <GroupNumber>3</GroupNumber>
      <FileNumber>37</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
      <bDave2>0</bDave2>
      <PathWithFileName>.\include\drivers\SC7A22H_port.c</PathWithFileName>
      <FilenameWithoutPath>SC7A22H_port.c</FilenameWithoutPath>
      <RteFlg>0</RteFlg>
      <bShared>0</bShared>
    </File>
  </Group>
  <Group>
@@ -1014,7 +934,7 @@
    <RteFlg>0</RteFlg>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>34</FileNumber>
      <FileNumber>38</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1026,7 +946,7 @@
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>35</FileNumber>
      <FileNumber>39</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1038,7 +958,7 @@
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>36</FileNumber>
      <FileNumber>40</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1050,7 +970,7 @@
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>37</FileNumber>
      <FileNumber>41</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1062,7 +982,7 @@
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>38</FileNumber>
      <FileNumber>42</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1074,7 +994,7 @@
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>39</FileNumber>
      <FileNumber>43</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1086,7 +1006,7 @@
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>40</FileNumber>
      <FileNumber>44</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1098,7 +1018,7 @@
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>41</FileNumber>
      <FileNumber>45</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1110,7 +1030,7 @@
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>42</FileNumber>
      <FileNumber>46</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1122,7 +1042,7 @@
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>43</FileNumber>
      <FileNumber>47</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1134,7 +1054,7 @@
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>44</FileNumber>
      <FileNumber>48</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1146,7 +1066,7 @@
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>45</FileNumber>
      <FileNumber>49</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1158,7 +1078,7 @@
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>46</FileNumber>
      <FileNumber>50</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1170,7 +1090,7 @@
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>47</FileNumber>
      <FileNumber>51</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1182,7 +1102,7 @@
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>48</FileNumber>
      <FileNumber>52</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1194,7 +1114,7 @@
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>49</FileNumber>
      <FileNumber>53</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1206,7 +1126,7 @@
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>50</FileNumber>
      <FileNumber>54</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1218,7 +1138,7 @@
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>51</FileNumber>
      <FileNumber>55</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1230,7 +1150,7 @@
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>52</FileNumber>
      <FileNumber>56</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1242,7 +1162,7 @@
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>53</FileNumber>
      <FileNumber>57</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1254,7 +1174,7 @@
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>54</FileNumber>
      <FileNumber>58</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1266,7 +1186,7 @@
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>55</FileNumber>
      <FileNumber>59</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1278,7 +1198,7 @@
    </File>
    <File>
      <GroupNumber>4</GroupNumber>
      <FileNumber>56</FileNumber>
      <FileNumber>60</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1298,7 +1218,7 @@
    <RteFlg>0</RteFlg>
    <File>
      <GroupNumber>5</GroupNumber>
      <FileNumber>57</FileNumber>
      <FileNumber>61</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1310,7 +1230,7 @@
    </File>
    <File>
      <GroupNumber>5</GroupNumber>
      <FileNumber>58</FileNumber>
      <FileNumber>62</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1322,7 +1242,7 @@
    </File>
    <File>
      <GroupNumber>5</GroupNumber>
      <FileNumber>59</FileNumber>
      <FileNumber>63</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1334,7 +1254,7 @@
    </File>
    <File>
      <GroupNumber>5</GroupNumber>
      <FileNumber>60</FileNumber>
      <FileNumber>64</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1346,7 +1266,7 @@
    </File>
    <File>
      <GroupNumber>5</GroupNumber>
      <FileNumber>61</FileNumber>
      <FileNumber>65</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1358,7 +1278,7 @@
    </File>
    <File>
      <GroupNumber>5</GroupNumber>
      <FileNumber>62</FileNumber>
      <FileNumber>66</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1370,7 +1290,7 @@
    </File>
    <File>
      <GroupNumber>5</GroupNumber>
      <FileNumber>63</FileNumber>
      <FileNumber>67</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1382,7 +1302,7 @@
    </File>
    <File>
      <GroupNumber>5</GroupNumber>
      <FileNumber>64</FileNumber>
      <FileNumber>68</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1394,7 +1314,7 @@
    </File>
    <File>
      <GroupNumber>5</GroupNumber>
      <FileNumber>65</FileNumber>
      <FileNumber>69</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1406,7 +1326,7 @@
    </File>
    <File>
      <GroupNumber>5</GroupNumber>
      <FileNumber>66</FileNumber>
      <FileNumber>70</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1426,7 +1346,7 @@
    <RteFlg>0</RteFlg>
    <File>
      <GroupNumber>6</GroupNumber>
      <FileNumber>67</FileNumber>
      <FileNumber>71</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1438,7 +1358,7 @@
    </File>
    <File>
      <GroupNumber>6</GroupNumber>
      <FileNumber>68</FileNumber>
      <FileNumber>72</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1450,7 +1370,7 @@
    </File>
    <File>
      <GroupNumber>6</GroupNumber>
      <FileNumber>69</FileNumber>
      <FileNumber>73</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1478,7 +1398,7 @@
    <RteFlg>0</RteFlg>
    <File>
      <GroupNumber>8</GroupNumber>
      <FileNumber>70</FileNumber>
      <FileNumber>74</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1490,7 +1410,7 @@
    </File>
    <File>
      <GroupNumber>8</GroupNumber>
      <FileNumber>71</FileNumber>
      <FileNumber>75</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1510,7 +1430,7 @@
    <RteFlg>0</RteFlg>
    <File>
      <GroupNumber>9</GroupNumber>
      <FileNumber>72</FileNumber>
      <FileNumber>76</FileNumber>
      <FileType>4</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1522,7 +1442,7 @@
    </File>
    <File>
      <GroupNumber>9</GroupNumber>
      <FileNumber>73</FileNumber>
      <FileNumber>77</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1542,7 +1462,7 @@
    <RteFlg>0</RteFlg>
    <File>
      <GroupNumber>10</GroupNumber>
      <FileNumber>74</FileNumber>
      <FileNumber>78</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1554,7 +1474,7 @@
    </File>
    <File>
      <GroupNumber>10</GroupNumber>
      <FileNumber>75</FileNumber>
      <FileNumber>79</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1566,7 +1486,7 @@
    </File>
    <File>
      <GroupNumber>10</GroupNumber>
      <FileNumber>76</FileNumber>
      <FileNumber>80</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1578,7 +1498,7 @@
    </File>
    <File>
      <GroupNumber>10</GroupNumber>
      <FileNumber>77</FileNumber>
      <FileNumber>81</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1590,7 +1510,7 @@
    </File>
    <File>
      <GroupNumber>10</GroupNumber>
      <FileNumber>78</FileNumber>
      <FileNumber>82</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1602,7 +1522,7 @@
    </File>
    <File>
      <GroupNumber>10</GroupNumber>
      <FileNumber>79</FileNumber>
      <FileNumber>83</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1614,7 +1534,7 @@
    </File>
    <File>
      <GroupNumber>10</GroupNumber>
      <FileNumber>80</FileNumber>
      <FileNumber>84</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1626,7 +1546,7 @@
    </File>
    <File>
      <GroupNumber>10</GroupNumber>
      <FileNumber>81</FileNumber>
      <FileNumber>85</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1638,7 +1558,7 @@
    </File>
    <File>
      <GroupNumber>10</GroupNumber>
      <FileNumber>82</FileNumber>
      <FileNumber>86</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1650,7 +1570,7 @@
    </File>
    <File>
      <GroupNumber>10</GroupNumber>
      <FileNumber>83</FileNumber>
      <FileNumber>87</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1662,7 +1582,7 @@
    </File>
    <File>
      <GroupNumber>10</GroupNumber>
      <FileNumber>84</FileNumber>
      <FileNumber>88</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1674,7 +1594,7 @@
    </File>
    <File>
      <GroupNumber>10</GroupNumber>
      <FileNumber>85</FileNumber>
      <FileNumber>89</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
@@ -1694,7 +1614,7 @@
    <RteFlg>0</RteFlg>
    <File>
      <GroupNumber>11</GroupNumber>
      <FileNumber>86</FileNumber>
      <FileNumber>90</FileNumber>
      <FileType>1</FileType>
      <tvExp>0</tvExp>
      <tvExpOptDlg>0</tvExpOptDlg>
keil/uwb_simple_example.uvprojx
@@ -765,6 +765,26 @@
              <FileType>1</FileType>
              <FilePath>.\include\drivers\lis3dh_driver.c</FilePath>
            </File>
            <File>
              <FileName>SC7A22H.h</FileName>
              <FileType>5</FileType>
              <FilePath>.\include\drivers\SC7A22H.h</FilePath>
            </File>
            <File>
              <FileName>SC7A22H_driver.c</FileName>
              <FileType>1</FileType>
              <FilePath>.\include\drivers\SC7A22H_driver.c</FilePath>
            </File>
            <File>
              <FileName>SC7A22H_example.c</FileName>
              <FileType>1</FileType>
              <FilePath>.\include\drivers\SC7A22H_example.c</FilePath>
            </File>
            <File>
              <FileName>SC7A22H_port.c</FileName>
              <FileType>1</FileType>
              <FilePath>.\include\drivers\SC7A22H_port.c</FilePath>
            </File>
          </Files>
        </Group>
        <Group>