概述
LSM6DS3TR-C是STMicroelectronics公司推出的iNEMO慣性模塊,集成了三軸加速度計和三軸陀螺儀,具備低功耗、強大的運動檢測功能。該傳感器支持多種操作模式,并內置FIFO緩沖區,用于批量處理和存儲傳感器數據。
FIFO(First In First Out)緩沖區在數據采集和處理過程中起著至關重要的作用。本文將介紹如何在LSM6DS3TR-C傳感器中配置和讀取FIFO數據,包括配置FIFO模式、設置數據速率和讀取存儲的數據。
最近在弄ST和瑞薩RA的課程,需要樣片的可以加群申請:615061293 。
視頻教學
[https://www.bilibili.com/video/BV1mS421d7eM/]
樣品申請
[https://www.wjx.top/vm/OhcKxJk.aspx#]
源碼下載
[https://download.csdn.net/download/qq_24312945/89504804]
主要內容
- 初始化LSM6DSV16X傳感器并檢查其設備ID
- 恢復傳感器默認配置并設置必要的參數
- 配置FIFO模式和水印閾值
- 設置加速度計和陀螺儀的數據速率
- 連續讀取FIFO中的傳感器數據并解析輸出
LSM6DS3TR-C支持多種FIFO模式,包括:
● Bypass模式:直接從寄存器讀取數據,不使用FIFO。
● FIFO模式:數據寫入FIFO,直到緩沖區滿為止。
● Continuous模式:數據連續寫入FIFO,新的數據會覆蓋舊數據。
● Continuous-to-FIFO模式:初始階段為連續模式,當特定條件滿足時切換為FIFO模式。
● Bypass-to-Continuous模式:初始階段為Bypass模式,當特定條件滿足時切換為連續模式。
生成STM32CUBEMX
用STM32CUBEMX生成例程,這里使用MCU為STM32H503CB。
配置時鐘樹,配置時鐘為250M。
串口配置
查看原理圖,PA9和PA10設置為開發板的串口。
配置串口,速率為2000000。
IIC配置
LSM6DS3TR-C最大IIC通訊速率為400k。
配置IIC速度為400k
CS和SA0設置
由于還有一個磁力計,需要把該CS也使能。
ICASHE
修改堆棧
串口重定向
打開魔術棒,勾選MicroLIB
在main.c中,添加頭文件,若不添加會出現 identifier "FILE" is undefined報錯。
/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */
函數聲明和串口重定向:
/* USER CODE BEGIN PFP */
int fputc(int ch, FILE *f){
HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
/* USER CODE END PFP */
參考驅動程序
[https://github.com/STMicroelectronics/lsm6ds3tr-c-pid]
FIFO參考程序
[https://github.com/STMicroelectronics/STMems_Standard_C_drivers/blob/master/lsm6ds3_STdC/examples/lsm6ds3_multi_read_fifo_simple.c]
初始化管腳
由于需要向LSM6DS3TR_C_I2C_ADD_L寫入以及為IIC模式。
所以使能CS為高電平,配置為IIC模式。 配置SA0為低電平。
printf("HELLO!n");
HAL_GPIO_WritePin(CS1_GPIO_Port, CS1_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(SA0_GPIO_Port, SA0_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(CS2_GPIO_Port, CS2_Pin, GPIO_PIN_SET);
HAL_Delay(100);
/* Initialize mems driver interface */
stmdev_ctx_t dev_ctx;
dev_ctx.write_reg = platform_write;
dev_ctx.read_reg = platform_read;
dev_ctx.mdelay = platform_delay;
dev_ctx.handle = &SENSOR_BUS;
/* Init test platform */
// platform_init();
/* Wait sensor boot time */
platform_delay(BOOT_TIME);
獲取ID
可以向WHO_AM_I (0Fh)獲取固定值,判斷是否為0x6A
lsm6ds3tr_c_device_id_get為獲取函數。
對應的獲取ID驅動程序,如下所示。
/* Check device ID */
whoamI = 0;
lsm6ds3tr_c_device_id_get(&dev_ctx, &whoamI);
printf("LSM6DS3TR-C_ID=0x%x,whoamI=0x%x",LSM6DS3TR_C_ID,whoamI);
if ( whoamI != LSM6DS3TR_C_ID )
while (1); /*manage here device not found */
復位操作
可以向CTRL3 (12h)的SW_RESET寄存器寫入1進行復位。
lsm6ds3tr_c_reset_set為重置函數。
對應的驅動程序,如下所示。
/* Restore default configuration */
lsm6ds3tr_c_reset_set(&dev_ctx, PROPERTY_ENABLE);
do {
lsm6ds3tr_c_reset_get(&dev_ctx, &rst);
} while (rst);
設置量程
設置加速度量程可以配置CTRL1_XL (10h)寄存器的FS_XL,FS_XL [1:0]可以設置量程。
設置角速度量程可以配置CTRL2_G (11h)寄存器的FS_G,FS_G [1:0]可以設置量程。
/* Set full scale */
lsm6ds3tr_c_xl_full_scale_set(&dev_ctx, LSM6DS3TR_C_2g);
lsm6ds3tr_c_gy_full_scale_set(&dev_ctx, LSM6DS3TR_C_2000dps);
BDU設置
在很多傳感器中,數據通常被存儲在輸出寄存器中,這些寄存器分為兩部分:MSB和LSB。這兩部分共同表示一個完整的數據值。例如,在一個加速度計中,MSB和LSB可能共同表示一個加速度的測量值。
連續更新模式(BDU = ‘0’):在默認模式下,輸出寄存器的值會持續不斷地被更新。這意味著在你讀取MSB和LSB的時候,寄存器中的數據可能會因為新的測量數據而更新。這可能導致一個問題:當你讀取MSB時,如果寄存器更新了,接下來讀取的LSB可能就是新的測量值的一部分,而不是與MSB相對應的值。這樣,你得到的就是一個“拼湊”的數據,它可能無法準確代表任何實際的測量時刻。
塊數據更新(BDU)模式(BDU = ‘1’):當激活BDU功能時,輸出寄存器中的內容不會在讀取MSB和LSB之間更新。這就意味著一旦開始讀取數據(無論是先讀MSB還是LSB),寄存器中的那一組數據就被“鎖定”,直到兩部分都被讀取完畢。這樣可以確保你讀取的MSB和LSB是同一測量時刻的數據,避免了讀取到代表不同采樣時刻的數據。
簡而言之,BDU位的作用是確保在讀取數據時,輸出寄存器的內容保持穩定,從而避免讀取到拼湊或錯誤的數據。這對于需要高精度和穩定性的應用尤為重要。
可以向CTRL3 (12h)的BDU寄存器寫入1進行開啟。
對應的驅動程序,如下所示。
/* Enable Block Data Update */
lsm6ds3tr_c_block_data_update_set(&dev_ctx, PROPERTY_ENABLE);
設置速率
設置加速度速率可以配置CTRL1_XL (10h)寄存器,ODR_XL [3:0]可以設置速率。
設置角速度速率可以配置CTRL2_G (11h))寄存器,ODR_G [3:0]可以設置速率。
/* Set XL and Gyro Output Data Rate:
* in this example we set 12.5 Hz for Accelerometer and
* 12.5 Hz for Gyroscope
*/
lsm6ds3tr_c_xl_data_rate_set(&dev_ctx, LSM6DS3TR_C_XL_ODR_26Hz);
lsm6ds3tr_c_gy_data_rate_set(&dev_ctx, LSM6DS3TR_C_GY_ODR_26Hz);
FIFO讀取程序
FIFO中的數據組織如下:
文檔中提到,每個數據集由6個字節組成:
● 陀螺儀數據:6字節
● 加速度計數據:6字節
● 外部傳感器數據:6字節
● 步數計和時間戳信息:6字節(包含時間戳)
設置FIFO水印
FIFO水印閾值的配置在寄存器FIFO_CTRL1和FIFO_CTRL2中,具體的設置如下:
● FIFO_CTRL1寄存器(0x06h):
○ 包含低8位的水印閾值FTH_[7:0],每一位代表2個字節(1個字)的FIFO數據。
● FIFO_CTRL2寄存器(0x07h):
○ 包含高3位的水印閾值FTH_[10:8],與FIFO_CTRL1一起使用時,可以設置更高的水印閾值。
在LSM6DS3TR-C傳感器中,FIFO的最小分辨率是1個最低有效位(LSB),對應于2個字節(1個字)。這意味著每次寫入FIFO的數據塊的最小單位是2個字節。
當配置FIFO時,用戶需要確保所設置的水印閾值和讀取操作符合這個最小分辨率。例如,如果設置了水印閾值為2410,這意味著當FIFO中存儲了2410*2個字節的數據時,就會觸發相應的水印事件(如中斷)。根據這個最小分辨率,每個數據塊的大小是2個字節,因此,240個數據塊相當于480個數據。
/* Set FIFO watermark to a multiple of a pattern
* in this example we set watermark to 10 pattern
* which means ten sequence of:
* (GYRO + XL) = 12 bytes
* (external sensor+timestamp) = 12 bytes
*/
lsm6ds3tr_c_int1_route_t int_1_reg;
uint16_t pattern_len = 24; // 每個數據集由6個字節組成,4*6=24,每個數據塊的大小是2個字節
lsm6ds3tr_c_fifo_watermark_set(&dev_ctx, 10 * pattern_len);
使用流模式
FIFO模式的設置在寄存器FIFO_CTRL5中,具體的設置如下:
● FIFO_MODE_[2:0]: 控制FIFO的工作模式。
○ 000: Bypass模式,FIFO禁用。
○ 001: FIFO模式,當FIFO滿時停止收集數據。
○ 011: 連續模式,直到觸發器解除,然后切換為FIFO模式。
○ 100: Bypass模式,直到觸發器解除,然后切換為連續模式。
○ 110: 連續模式,如果FIFO滿,新樣本會覆蓋舊樣本。
使用流模式有以下優點
持續數據采集:適用于需要連續監控的場景,如運動跟蹤和實時監控應用。
數據最新性:始終獲取到最新的數據,避免數據滯后。
無需等待FIFO清空:當FIFO填滿時,新數據自動覆蓋舊數據,無需手動清空FIFO。
/* Set FIFO mode to Stream mode */
lsm6ds3tr_c_fifo_mode_set(&dev_ctx, LSM6DS3TR_C_STREAM_MODE);
// /* Enable FIFO watermark interrupt generation on INT1 pin */
// lsm6ds3tr_c_pin_int1_route_get(&dev_ctx, &int_1_reg);
// int_1_reg.int1_fth = PROPERTY_ENABLE;
// lsm6ds3tr_c_pin_int1_route_set(&dev_ctx, int_1_reg);
啟用時間戳計數功能
通過設置 CTRL10_C 寄存器中的 timer_en 和 func_en 位來啟用 LSM6DS3TR-C 傳感器的時間戳計數功能。時間戳計數功能允許傳感器記錄事件發生的時間,便于時間同步和數據記錄分析。
/* Enable timestamp and add it to FIFO */
lsm6ds3tr_c_timestamp_set(&dev_ctx, PROPERTY_ENABLE);
設置時間戳寫入FIFO
LSM6DS3TR-C傳感器的時間戳批處理速率、溫度數據批處理速率、增強的EIS陀螺儀輸出批處理,以及FIFO的工作模式。這些配置確保傳感器數據能夠以適當的速率和模式進行批處理和存儲,以滿足不同的應用需求。
FIFO_CTRL2寄存器中,timer_pedo_fifo_en位用于控制是否將步數計數器和時間戳數據作為第四個FIFO數據集。具體含義如下:
● 0: 禁用步數計數器和時間戳數據作為第四個FIFO數據集。
○ 當timer_pedo_fifo_en位設置為0時,步數計數器和時間戳數據不會被存儲在FIFO中。
● 1: 啟用步數計數器和時間戳數據作為第四個FIFO數據集。
○ 當timer_pedo_fifo_en位設置為1時,步數計數器和時間戳數據將被存儲在FIFO中,作為第四個數據集。
lsm6ds3tr_c_fifo_pedo_and_timestamp_batch_set(&dev_ctx,PROPERTY_ENABLE);
設置時間戳分辨率
將 WAKE_UP_DUR 寄存器中的 TIMER_HR 位設置為特定的值,以改變時間戳寄存器的分辨率。
時間戳數據為24位的大小。
/* Set the timestamp resolution to 25 μs (TIMER_HR bit in WAKE_UP_DUR register) */
lsm6ds3tr_c_timestamp_res_set(&dev_ctx, LSM6DS3TR_C_LSB_25us);
FIFO存儲時間戳設置
通過配置FIFO_CTRL4寄存器中的DEC_DS4_FIFO[2:0]字段來選擇第4組FIFO數據集的降采樣因子。
lsm6ds3tr_c_fifo_dataset_3_batch_set(&dev_ctx, LSM6DS3TR_C_FIFO_DS3_NO_DEC);
//FIFO_CTRL4 (09h)- >DEC_DS4_FIFO[2:0]
lsm6ds3tr_c_fifo_dataset_4_batch_set(&dev_ctx, LSM6DS3TR_C_FIFO_DS4_NO_DEC);
通過設置FIFO_CTRL2寄存器中的TIMER_PEDO_FIFO_EN和TIMER_PEDO_FIFO_DRDY位來啟用和配置步數計數和時間戳數據存儲。
// 啟用時間戳寫入FIFO第四數據集
//FIFO_CTRL2 (07h)- >TIMER_PEDO_FIFO_EN
lsm6ds3tr_c_fifo_pedo_and_timestamp_batch_set(&dev_ctx, PROPERTY_ENABLE);
設置FIFO速率
LSM6DS3TR-C傳感器的FIFO控制寄存器3(FIFO_CTRL3)的內容,該寄存器用于選擇陀螺儀和加速度計數據寫入FIFO的批處理數據速率(BDR,Batch Data Rate)。以下是詳細描述:
FIFO_CTRL3寄存器(地址09h),該寄存器包含兩個主要字段:
● DEC_FIFO_GYRO [2:0]:選擇陀螺儀數據的批處理速率。
● DEC_FIFO_XL [2:0]:選擇加速度計數據的批處理速率。
FIFO_CTRL3寄存器的DEC_FIFO_XL字段用于設置加速度計數據的FIFO去采樣率,具體配置如下:
● DEC_FIFO_XL [2:0]: 加速度計FIFO去采樣率設置。
○ 000: 加速度計傳感器不在FIFO中。
○ 001: 不進行去采樣。
○ 010: 去采樣因子為2。
○ 011: 去采樣因子為3。
○ 100: 去采樣因子為4。
○ 101: 去采樣因子為8。
○ 110: 去采樣因子為16。
○ 111: 去采樣因子為32。
001表示“不進行去采樣”,即加速度計數據寫入FIFO的速率與加速度計的輸出數據速率(ODR)相同。因此,如果DEC_FIFO_XL的值設置為001,則加速度計數據的FIFO寫入速率直接等于加速度計的ODR。
/* Set FIFO batch XL/Gyro ODR to 12.5Hz */
lsm6ds3tr_c_fifo_xl_batch_set(&dev_ctx,LSM6DS3TR_C_FIFO_XL_NO_DEC);
lsm6ds3tr_c_fifo_gy_batch_set(&dev_ctx,LSM6DS3TR_C_FIFO_GY_NO_DEC);
設置FIFO數據可以通過FIFO_CTRL5 寄存器,可以配置傳感器的 FIFO 模式和數據輸出速率,以滿足不同應用的需求。
/* Set ODR FIFO */
lsm6ds3tr_c_fifo_data_rate_set(&dev_ctx, LSM6DS3TR_C_FIFO_26Hz);
初始化
/* USER CODE BEGIN 2 */
printf("HELLO!n");
HAL_GPIO_WritePin(CS1_GPIO_Port, CS1_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(SA0_GPIO_Port, SA0_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(CS2_GPIO_Port, CS2_Pin, GPIO_PIN_SET);
HAL_Delay(100);
/* Initialize mems driver interface */
stmdev_ctx_t dev_ctx;
dev_ctx.write_reg = platform_write;
dev_ctx.read_reg = platform_read;
dev_ctx.mdelay = platform_delay;
dev_ctx.handle = &SENSOR_BUS;
/* Init test platform */
// platform_init();
/* Wait sensor boot time */
platform_delay(BOOT_TIME);
/* Check device ID */
whoamI = 0;
lsm6ds3tr_c_device_id_get(&dev_ctx, &whoamI);
printf("LSM6DS3TR-C_ID=0x%x,whoamI=0x%x",LSM6DS3TR_C_ID,whoamI);
if ( whoamI != LSM6DS3TR_C_ID )
while (1); /*manage here device not found */
/* Restore default configuration */
lsm6ds3tr_c_reset_set(&dev_ctx, PROPERTY_ENABLE);
do {
lsm6ds3tr_c_reset_get(&dev_ctx, &rst);
} while (rst);
/* 設置加速度計和陀螺儀的滿量程范圍 */
lsm6ds3tr_c_xl_full_scale_set(&dev_ctx, LSM6DS3TR_C_2g);
lsm6ds3tr_c_gy_full_scale_set(&dev_ctx, LSM6DS3TR_C_2000dps);
/* 啟用塊數據更新(BDU),當FIFO支持時 */
lsm6ds3tr_c_block_data_update_set(&dev_ctx, PROPERTY_ENABLE);
/* 設置加速度計和陀螺儀的輸出數據速率:
* 在本例中,我們將加速度計和陀螺儀的速率設置為26 Hz
*/
lsm6ds3tr_c_xl_data_rate_set(&dev_ctx, LSM6DS3TR_C_XL_ODR_26Hz);
lsm6ds3tr_c_gy_data_rate_set(&dev_ctx, LSM6DS3TR_C_GY_ODR_26Hz);
/* 設置FIFO水印為模式的倍數
* 在本例中,我們將水印設置為10個模式
* 這意味著10個序列:
* (陀螺儀 + 加速度計) = 12字節
* (外部傳感器 + 時間戳) = 12字節
*/
lsm6ds3tr_c_int1_route_t int_1_reg;
uint16_t pattern_len = 24; // 每個數據集由6個字節組成,4*6=24
lsm6ds3tr_c_fifo_watermark_set(&dev_ctx, 10 * pattern_len);
/* 將FIFO模式設置為流模式 */
//FIFO_CTRL5(0x0A)- >STREAM_MODE
lsm6ds3tr_c_fifo_mode_set(&dev_ctx, LSM6DS3TR_C_STREAM_MODE);
/* 啟用時間戳并將其添加到FIFO */
//CTRL10_C (19h)- >TIMER_EN
lsm6ds3tr_c_timestamp_set(&dev_ctx, PROPERTY_ENABLE);
//CTRL10_C (19h)- >PEDO_EN
lsm6ds3tr_c_pedo_sens_set(&dev_ctx, PROPERTY_ENABLE); // 根據需求配置步數計數
/* 將時間戳分辨率設置為25 μs (WAKE_UP_DUR寄存器中的TIMER_HR位) */
//WAKE_UP_DUR (5Ch)- >TIMER_HR
lsm6ds3tr_c_timestamp_res_set(&dev_ctx, LSM6DS3TR_C_LSB_25us);
//設置第3數據集(Dataset 3)的降采樣因子
lsm6ds3tr_c_fifo_dataset_3_batch_set(&dev_ctx, LSM6DS3TR_C_FIFO_DS3_NO_DEC);
//設置第4數據集(Dataset 4)的降采樣因子
//FIFO_CTRL4 (09h)- >DEC_DS4_FIFO[2:0]
lsm6ds3tr_c_fifo_dataset_4_batch_set(&dev_ctx, LSM6DS3TR_C_FIFO_DS4_NO_DEC);
// 啟用時間戳寫入FIFO第四數據集
//FIFO_CTRL2 (07h)- >TIMER_PEDO_FIFO_EN
lsm6ds3tr_c_fifo_pedo_and_timestamp_batch_set(&dev_ctx, PROPERTY_ENABLE);
/* 設置FIFO傳感器的降采樣因子 */
lsm6ds3tr_c_fifo_xl_batch_set(&dev_ctx, LSM6DS3TR_C_FIFO_XL_NO_DEC);
lsm6ds3tr_c_fifo_gy_batch_set(&dev_ctx, LSM6DS3TR_C_FIFO_GY_NO_DEC);
/* 設置FIFO的輸出數據速率 */
//FIFO_CTRL5 (0Ah)
lsm6ds3tr_c_fifo_data_rate_set(&dev_ctx, LSM6DS3TR_C_FIFO_26Hz);
/* USER CODE END 2 */
獲取FIFO數據
當對FIFO輸出寄存器FIFO_DATA_OUT_L (3Eh)和FIFO_DATA_OUT_H (3Fh)進行多次讀取操作時,舍入功能會自動啟用。
對LSM6DS3TR-C傳感器的配置,并從FIFO中讀取加速度、角速度、時間戳和外部傳感器數據。
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
uint16_t num = 0,num1=0;
uint16_t num_pattern = 0;
uint8_t waterm = 0;
/* 讀取LSM6DS3TR-C的水印標志 */
lsm6ds3tr_c_fifo_wtm_flag_get(&dev_ctx, &waterm);
if (waterm) {
/* 讀取FIFO中的字數 */
lsm6ds3tr_c_fifo_data_level_get(&dev_ctx, &num);
num_pattern = num / 24*2;
printf("num=%dn",num);
while (num_pattern-- > 0) {
printf ("num1=%dn",num1);
num1++;
/* 根據傳感器的ODR配置,FIFO模式由以下樣本序列組成:GYRO, XL 外部傳感器 時間戳*/
lsm6ds3tr_c_fifo_raw_data_get(&dev_ctx,
data_raw_angular_rate.u8bit,
3 * sizeof(int16_t));
angular_rate_mdps[0] =
lsm6ds3tr_c_from_fs2000dps_to_mdps(data_raw_angular_rate.i16bit[0]);
angular_rate_mdps[1] =
lsm6ds3tr_c_from_fs2000dps_to_mdps(data_raw_angular_rate.i16bit[1]);
angular_rate_mdps[2] =
lsm6ds3tr_c_from_fs2000dps_to_mdps(data_raw_angular_rate.i16bit[2]);
printf(
"Angular rate [mdps]:%4.2ft%4.2ft%4.2frn",
angular_rate_mdps[0], angular_rate_mdps[1], angular_rate_mdps[2]);
lsm6ds3tr_c_fifo_raw_data_get(&dev_ctx,
data_raw_acceleration.u8bit,
3 * sizeof(int16_t));
acceleration_mg[0] =
lsm6ds3tr_c_from_fs2g_to_mg(data_raw_acceleration.i16bit[0]);
acceleration_mg[1] =
lsm6ds3tr_c_from_fs2g_to_mg(data_raw_acceleration.i16bit[1]);
acceleration_mg[2] =
lsm6ds3tr_c_from_fs2g_to_mg(data_raw_acceleration.i16bit[2]);
printf("Acc [mg]:%4.2ft%4.2ft%4.2frn",
acceleration_mg[0], acceleration_mg[1], acceleration_mg[2]);
//外部傳感器數據
lsm6ds3tr_c_fifo_raw_data_get(&dev_ctx,
data_raw_none.u8bit,
3 * sizeof(int16_t));
// 打印外部傳感器數據
printf("External sensor data: %02x %02x %02x %02x %02x %02xrn",
data_raw_none.u8bit[0], data_raw_none.u8bit[1], data_raw_none.u8bit[2],
data_raw_none.u8bit[3], data_raw_none.u8bit[4], data_raw_none.u8bit[5]);
/* 讀取時間戳數據 */
uint32_t timestamp=0;
lsm6ds3tr_c_fifo_raw_data_get(&dev_ctx,
data_raw_Timestamp.u8bit,
3*sizeof(int16_t));//
for(int i=0;i< 6;i++)
{
printf("t[%d]=%d ",i,data_raw_Timestamp.u8bit[i]);
}
timestamp=(data_raw_Timestamp.u8bit[1]< 16)|(data_raw_Timestamp.u8bit[0]< 8)
|(data_raw_Timestamp.u8bit[3]);
printf("Timestamp: %urn", timestamp);
}
}
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
演示
實際測試如下所示,數據為20個數據。
加速度速率為26Hz,角速度速率為26Hz。
時間戳速率26Hz為38.46ms。
下圖中的2個時間戳數據為5825473和5823931,5825473-5823931=1542*25us=38.550ms
審核編輯 黃宇
-
陀螺儀
+關注
關注
44文章
784瀏覽量
98712 -
數據采集
+關注
關注
39文章
6108瀏覽量
113653 -
fifo
+關注
關注
3文章
388瀏覽量
43679
發布評論請先 登錄
相關推薦
評論