This commit is contained in:
lmx
2025-12-10 11:11:36 +08:00
parent c398dd9eeb
commit 3b36715264
7 changed files with 70 additions and 67 deletions

View File

@ -185,8 +185,8 @@ void sensor_collect_task(void){
send_data.checkout_2 = 0xBB; send_data.checkout_2 = 0xBB;
send_data.foot = foot_init; send_data.foot = foot_init;
send_data.package_index = package_index; send_data.package_index = package_index;
// circle_buffer_write(&g_ble_send_cb, &send_data); circle_buffer_write(&g_ble_send_cb, &send_data);
// os_sem_post(&receiver_ready_sem); //通知另一个发送任务 os_sem_post(&receiver_ready_sem); //通知另一个发送任务
memset(&send_data, 0, sizeof(ble_send_data_t)); memset(&send_data, 0, sizeof(ble_send_data_t));
memset(&accx_buf, 0, sizeof(accx_buf)); memset(&accx_buf, 0, sizeof(accx_buf));
@ -469,8 +469,8 @@ void test_func(void){
acc_data_buf[i] = i; acc_data_buf[i] = i;
} }
// SL_SC7U22_Config(); SL_SC7U22_Config();
// mmc5603nj_init(); mmc5603nj_init();
#if BMP280 #if BMP280
BMP280_init(); BMP280_init();
#else #else

View File

@ -28,73 +28,73 @@ static int32_t c00, c10;
* @brief 写入单个字节到WF282A寄存器 * @brief 写入单个字节到WF282A寄存器
*/ */
static void wf282a_write_reg(uint8_t reg, uint8_t data) { static void wf282a_write_reg(uint8_t reg, uint8_t data) {
hw_iic_start(I2C_HANDLE); // hw_iic_start(I2C_HANDLE);
// 发送从设备地址 (写模式) // // 发送从设备地址 (写模式)
if (!hw_iic_tx_byte(I2C_HANDLE, WF_IIC_WRITE_ADDRESS)) { // if (!hw_iic_tx_byte(I2C_HANDLE, WF_IIC_WRITE_ADDRESS)) {
// 如果没有收到ACK可能是设备不存在或忙直接停止 // // 如果没有收到ACK可能是设备不存在或忙直接停止
hw_iic_stop(I2C_HANDLE); // hw_iic_stop(I2C_HANDLE);
// 可以添加错误日志或返回错误码 // // 可以添加错误日志或返回错误码
xlog("WF282A Write: No ACK after slave address\n"); // xlog("WF282A Write: No ACK after slave address\n");
return; // return;
} // }
// 发送寄存器地址 // // 发送寄存器地址
if (!hw_iic_tx_byte(I2C_HANDLE, reg)) { // if (!hw_iic_tx_byte(I2C_HANDLE, reg)) {
hw_iic_stop(I2C_HANDLE); // hw_iic_stop(I2C_HANDLE);
xlog("WF282A Write: No ACK after register address\n"); // xlog("WF282A Write: No ACK after register address\n");
return; // return;
} // }
// 发送数据字节 // // 发送数据字节
if (!hw_iic_tx_byte(I2C_HANDLE, data)) { // if (!hw_iic_tx_byte(I2C_HANDLE, data)) {
hw_iic_stop(I2C_HANDLE); // hw_iic_stop(I2C_HANDLE);
xlog("WF282A Write: No ACK after data byte\n"); // xlog("WF282A Write: No ACK after data byte\n");
return; // return;
} // }
hw_iic_stop(I2C_HANDLE); // hw_iic_stop(I2C_HANDLE);
// gravity_sensor_command(WF_IIC_WRITE_ADDRESS, reg, data); gravity_sensor_command(WF_IIC_WRITE_ADDRESS, reg, data);
} }
/** /**
* @brief 从WF282A读取多个字节 * @brief 从WF282A读取多个字节
*/ */
static uint32_t wf282a_read_regs(uint8_t reg, uint8_t *buf, uint8_t len) { static uint32_t wf282a_read_regs(uint8_t reg, uint8_t *buf, uint8_t len) {
uint32_t bytes_read = 0; // uint32_t bytes_read = 0;
if (len == 0) return 0; // if (len == 0) return 0;
hw_iic_start(I2C_HANDLE); // hw_iic_start(I2C_HANDLE);
// 1. 发送从设备地址 (写模式) 和寄存器地址 // // 1. 发送从设备地址 (写模式) 和寄存器地址
if (!hw_iic_tx_byte(I2C_HANDLE, WF_IIC_WRITE_ADDRESS)) { // if (!hw_iic_tx_byte(I2C_HANDLE, WF_IIC_WRITE_ADDRESS)) {
hw_iic_stop(I2C_HANDLE); // hw_iic_stop(I2C_HANDLE);
xlog("WF282A Read: No ACK after slave address (write phase)\n"); // xlog("WF282A Read: No ACK after slave address (write phase)\n");
return 0; // return 0;
} // }
if (!hw_iic_tx_byte(I2C_HANDLE, reg)) { // if (!hw_iic_tx_byte(I2C_HANDLE, reg)) {
hw_iic_stop(I2C_HANDLE); // hw_iic_stop(I2C_HANDLE);
xlog("WF282A Read: No ACK after register address\n"); // xlog("WF282A Read: No ACK after register address\n");
return 0; // return 0;
} // }
// 2. 发送重复开始条件 // // 2. 发送重复开始条件
hw_iic_start(I2C_HANDLE); // Repeated START // hw_iic_start(I2C_HANDLE); // Repeated START
// 3. 发送从设备地址 (读模式) // // 3. 发送从设备地址 (读模式)
if (!hw_iic_tx_byte(I2C_HANDLE, WF_IIC_READ_ADDRESS)) { // if (!hw_iic_tx_byte(I2C_HANDLE, WF_IIC_READ_ADDRESS)) {
hw_iic_stop(I2C_HANDLE); // hw_iic_stop(I2C_HANDLE);
xlog("WF282A Read: No ACK after slave address (read phase)\n"); // xlog("WF282A Read: No ACK after slave address (read phase)\n");
return 0; // return 0;
} // }
// 4. 循环读取数据 // // 4. 循环读取数据
for (uint32_t i = 0; i < len; i++) { // for (uint32_t i = 0; i < len; i++) {
// 如果是最后一个字节发送NACK // // 如果是最后一个字节发送NACK
// hw_iic_rx_byte 的第二个参数是 ack_enable (1 for ACK, 0 for NACK) // // hw_iic_rx_byte 的第二个参数是 ack_enable (1 for ACK, 0 for NACK)
uint8_t ack_val = (i == (len - 1)) ? 0 : 1; // 最后一个字节NACK其余ACK // uint8_t ack_val = (i == (len - 1)) ? 0 : 1; // 最后一个字节NACK其余ACK
buf[i] = hw_iic_rx_byte(I2C_HANDLE, ack_val); // buf[i] = hw_iic_rx_byte(I2C_HANDLE, ack_val);
bytes_read++; // bytes_read++;
} // }
hw_iic_stop(I2C_HANDLE); // hw_iic_stop(I2C_HANDLE);
return bytes_read; // return bytes_read;
// return _gravity_sensor_get_ndata(WF_IIC_READ_ADDRESS, reg, buf, len); return _gravity_sensor_get_ndata(WF_IIC_READ_ADDRESS, reg, buf, len);
} }
/*==================================================================================*/ /*==================================================================================*/
/* Delay functions (Copied from manufacturer's code for consistency) */ /* Delay functions (Copied from manufacturer's code for consistency) */
@ -206,7 +206,7 @@ uint8_t WF_Init() {
xlog("Parsed Coefficients: c0=%d, c1=%d, c00=%ld, c10=%ld, c01=%d, c11=%d, c20=%d, c21=%d, c30=%d\n", xlog("Parsed Coefficients: c0=%d, c1=%d, c00=%ld, c10=%ld, c01=%d, c11=%d, c20=%d, c21=%d, c30=%d\n",
c0, c1, c00, c10, c01, c11, c20, c21, c30); c0, c1, c00, c10, c01, c11, c20, c21, c30);
#if 1 //连续测量 #if 0 //连续测量
// 3. 配置压力、温度和通用寄存器为连续测量模式 // 3. 配置压力、温度和通用寄存器为连续测量模式
// 压力配置: 32Hz测量速率 (PM_RATE_32), 16x过采样 (PM_PRC_16) -> 0x54 // 压力配置: 32Hz测量速率 (PM_RATE_32), 16x过采样 (PM_PRC_16) -> 0x54
wf282a_write_reg(WF_PRS_CFG, (PM_RATE_32 << 4) | PM_PRC_16); wf282a_write_reg(WF_PRS_CFG, (PM_RATE_32 << 4) | PM_PRC_16);
@ -281,7 +281,7 @@ void WF_start_measure(void){
} }
void WF_GET_Temperature_Pressure(float* temperature, float* precessure){ void WF_GET_Temperature_Pressure(float* temperature, float* precessure){
// WF_start_measure(); WF_start_measure();
int32_t Traw = Get_Traw(); int32_t Traw = Get_Traw();
int32_t Praw = Get_Praw(); int32_t Praw = Get_Praw();
float Traw_sc = (float)Traw / KT; // 缩放原始温度值 (KT is now 16x scale factor) float Traw_sc = (float)Traw / KT; // 缩放原始温度值 (KT is now 16x scale factor)

Binary file not shown.

Binary file not shown.

View File

@ -10,7 +10,7 @@ copy ..\..\ota.bin .
copy ..\..\anc_coeff.bin . copy ..\..\anc_coeff.bin .
copy ..\..\anc_gains.bin . copy ..\..\anc_gains.bin .
..\..\isd_download.exe ..\..\isd_config.ini -tonorflash -dev br28 -boot 0x120000 -div8 -wait 300 -uboot ..\..\uboot.boot -app ..\..\app.bin -res ..\..\cfg_tool.bin tone.cfg p11_code.bin ..\..\eq_cfg_hw.bin -uboot_compress -format all ..\..\isd_download.exe ..\..\isd_config.ini -tonorflash -dev br28 -boot 0x120000 -div8 -wait 300 -uboot ..\..\uboot.boot -app ..\..\app.bin -res ..\..\cfg_tool.bin tone.cfg p11_code.bin ..\..\eq_cfg_hw.bin -uboot_compress -format all -key 646-AC690X-7603.key
@REM..\..\isd_download.exe ..\..\isd_config.ini -tonorflash -dev br34 -boot 0x20000 -div8 -wait 300 -uboot ..\..\uboot.boot -app ..\..\app.bin ..\..\cfg_tool.bin -res tone.cfg kws_command.bin p11_code.bin -uboot_compress @REM..\..\isd_download.exe ..\..\isd_config.ini -tonorflash -dev br34 -boot 0x20000 -div8 -wait 300 -uboot ..\..\uboot.boot -app ..\..\app.bin ..\..\cfg_tool.bin -res tone.cfg kws_command.bin p11_code.bin -uboot_compress

View File

@ -5375,6 +5375,8 @@ objs/apps/earphone/xtell_Sensor/send_data.c.o
-r=objs/apps/earphone/xtell_Sensor/send_data.c.o,mmc5603nj_read_mag_data,l -r=objs/apps/earphone/xtell_Sensor/send_data.c.o,mmc5603nj_read_mag_data,l
-r=objs/apps/earphone/xtell_Sensor/send_data.c.o,SL_SC7U22_FIFO_Read,l -r=objs/apps/earphone/xtell_Sensor/send_data.c.o,SL_SC7U22_FIFO_Read,l
-r=objs/apps/earphone/xtell_Sensor/send_data.c.o,WF_GET_Temperature_Pressure,l -r=objs/apps/earphone/xtell_Sensor/send_data.c.o,WF_GET_Temperature_Pressure,l
-r=objs/apps/earphone/xtell_Sensor/send_data.c.o,circle_buffer_write,l
-r=objs/apps/earphone/xtell_Sensor/send_data.c.o,os_sem_post,l
-r=objs/apps/earphone/xtell_Sensor/send_data.c.o,os_time_dly,l -r=objs/apps/earphone/xtell_Sensor/send_data.c.o,os_time_dly,l
-r=objs/apps/earphone/xtell_Sensor/send_data.c.o,data_log,pl -r=objs/apps/earphone/xtell_Sensor/send_data.c.o,data_log,pl
-r=objs/apps/earphone/xtell_Sensor/send_data.c.o,uartSendData,pl -r=objs/apps/earphone/xtell_Sensor/send_data.c.o,uartSendData,pl
@ -5393,8 +5395,11 @@ objs/apps/earphone/xtell_Sensor/send_data.c.o
-r=objs/apps/earphone/xtell_Sensor/send_data.c.o,test_uart_init,pl -r=objs/apps/earphone/xtell_Sensor/send_data.c.o,test_uart_init,pl
-r=objs/apps/earphone/xtell_Sensor/send_data.c.o,sensor_test_task,pl -r=objs/apps/earphone/xtell_Sensor/send_data.c.o,sensor_test_task,pl
-r=objs/apps/earphone/xtell_Sensor/send_data.c.o,test_func,pl -r=objs/apps/earphone/xtell_Sensor/send_data.c.o,test_func,pl
-r=objs/apps/earphone/xtell_Sensor/send_data.c.o,SL_SC7U22_Config,l
-r=objs/apps/earphone/xtell_Sensor/send_data.c.o,mmc5603nj_init,l
-r=objs/apps/earphone/xtell_Sensor/send_data.c.o,WF_Init,l -r=objs/apps/earphone/xtell_Sensor/send_data.c.o,WF_Init,l
-r=objs/apps/earphone/xtell_Sensor/send_data.c.o,puts,l -r=objs/apps/earphone/xtell_Sensor/send_data.c.o,puts,l
-r=objs/apps/earphone/xtell_Sensor/send_data.c.o,foot_init,l
-r=objs/apps/earphone/xtell_Sensor/send_data.c.o,j,pl -r=objs/apps/earphone/xtell_Sensor/send_data.c.o,j,pl
objs/apps/earphone/xtell_Sensor/buffer/circle_buffer.c.o objs/apps/earphone/xtell_Sensor/buffer/circle_buffer.c.o
-r=objs/apps/earphone/xtell_Sensor/buffer/circle_buffer.c.o,circle_buffer_init,pl -r=objs/apps/earphone/xtell_Sensor/buffer/circle_buffer.c.o,circle_buffer_init,pl
@ -5522,10 +5527,8 @@ objs/apps/earphone/xtell_Sensor/sensor/WF282A.c.o
-r=objs/apps/earphone/xtell_Sensor/sensor/WF282A.c.o,WF_GET_Temperature_Pressure,pl -r=objs/apps/earphone/xtell_Sensor/sensor/WF282A.c.o,WF_GET_Temperature_Pressure,pl
-r=objs/apps/earphone/xtell_Sensor/sensor/WF282A.c.o,WF_Altitude_Calculate,pl -r=objs/apps/earphone/xtell_Sensor/sensor/WF282A.c.o,WF_Altitude_Calculate,pl
-r=objs/apps/earphone/xtell_Sensor/sensor/WF282A.c.o,powf,l -r=objs/apps/earphone/xtell_Sensor/sensor/WF282A.c.o,powf,l
-r=objs/apps/earphone/xtell_Sensor/sensor/WF282A.c.o,hw_iic_start,l -r=objs/apps/earphone/xtell_Sensor/sensor/WF282A.c.o,gravity_sensor_command,l
-r=objs/apps/earphone/xtell_Sensor/sensor/WF282A.c.o,hw_iic_tx_byte,l -r=objs/apps/earphone/xtell_Sensor/sensor/WF282A.c.o,_gravity_sensor_get_ndata,l
-r=objs/apps/earphone/xtell_Sensor/sensor/WF282A.c.o,hw_iic_stop,l
-r=objs/apps/earphone/xtell_Sensor/sensor/WF282A.c.o,hw_iic_rx_byte,l
cpu/br28/liba/cpu.a.llvm.19376.crc16.c cpu/br28/liba/cpu.a.llvm.19376.crc16.c
-r=cpu/br28/liba/cpu.a.llvm.19376.crc16.c,__crc16_mutex_init,pl -r=cpu/br28/liba/cpu.a.llvm.19376.crc16.c,__crc16_mutex_init,pl
-r=cpu/br28/liba/cpu.a.llvm.19376.crc16.c,os_mutex_create,l -r=cpu/br28/liba/cpu.a.llvm.19376.crc16.c,os_mutex_create,l