你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32CubeIDE自平衡小车教程7.MPU6050传感器数据读取

[复制链接]
STMCU小助手 发布时间:2022-3-14 23:01
MPU6050简介:
5 p2 v$ O- ]  P; EMPU6050是InvenSense公司推出的全球首款整合性6轴运动处理组件,内带3轴陀螺仪和3轴加速度传感器,并且含有一个第二IIC接口,可用于连接外部磁力传感器。
& b" h/ e  c- _% R. ?3 x3 F5 s" c那如何通过MPU6050传感器来获取数据呢?: d% G- I% |0 W1 |: A/ I
具体步骤如下:+ y/ U0 I9 z; s% V+ Q, C3 S

. i1 |8 O4 d: b, W9 N$ q+ M/ q1.新建项目:$ [% V" S, h: k% E

. x( i/ ^3 z- ^4 N  I $EQ()9UA5%{N744]333DTAF.png 6 ~0 u9 {8 T7 i+ F, A+ U

- V) q9 [$ u' [; O4 s2.选择STM32F103C8T6芯片# U, u' M! v3 n3 s: @# W
7 K+ a8 f% Y' N% q" g, g. m( |
RW@)UGIJ@2@MU55M_$G2OQ8.png
9 z6 d3 G& {% R6 }7 a# b# t, r5 _# H
3.对工程文件命名
6 o5 ^$ F) b3 v5 t1 n
7 F& U( s3 T9 o) E3 D; H& W# C Q}NUES4AQ66Q3P$GKJ`HW$R.png 9 H2 ?; R; W) X  T1 I8 m' q1 {
# r& i$ t/ C) `/ U# _. q( X
4.在Connectivity中选择I2C1,在mode中选择I2C
( N9 q' g* V6 x4 G
! \7 S7 }0 K9 @: P6 X, W2 G4 H (_UMXTI8NK3T62}T[]]PAEE.png
  h* ^7 h/ A& k: R: _
6 o5 V* j9 f, H3 w/ v# @. h" \( @ 5.根据原理图选择引脚) x4 p1 w; m7 o# @$ @+ j
其中MPU6050中的SCL和SDA应对应于C8T6主控模块上的PB8和PB9,故应在右侧引脚设置中单击PB9,PB8引脚,选择I2C1_SDA项。
  m2 ^/ p/ ^1 V9 K$ l7 g* B* A  T# c& a# H7 C( h
AU0TOCJ[]PJNBN]((RLMHTN.png ( [* o0 Z  o! p4 d0 u4 V1 y! q. ^

5 ~3 ?$ A5 B% i3 @: l9 [
/ ^: }7 W# b5 V' Q6.点击生成代码,在MPU6050下新建一个User文件夹,在User文件夹下新建一个BSP文件夹,在BSP文件夹下添加Inc和Src文件夹,并在Inc和Src文件夹下添加bsp_mpu6050.c和bsp_mpu6050.h文件。(注意新建的文件夹需要设置路径)$ o4 M6 V! s* L- k
新建的User文件夹,设置路径:
: t1 G; e  l! }- w  n5 y9 d+ t/ F9 r
; l5 d/ ~1 h' o3 e7 n(只有设置完路径后才能添加的上.c和.h文件)
3 T% n- U4 L0 n. [+ ^0 {
" e- E  C8 M/ L2 G (6)VQ)A)MP1QT5LR65RCSS9.png ! x& R2 x/ m: E& F& s
! G" T; y0 f2 p4 I  P% ?
再添加.c和,h文件
& h' b& x/ [; a' T' v, h& K
0 Z1 ~. t1 p- a. C( `' K 8)V4@7{PPKIPMCJL5~(WE.png
$ ~6 o* x+ ~8 x5 c: X7 s9 F1 t. E6 y5 {; q" }
7.把以下代码加入bsp_mpu6050.c
5 d, }( }' W! O  @0 \# t- F/ _' H8 ^$ F% B
  1. #include "main.h"! }  p" q% K7 F0 E% V# h
  2. ; r5 c9 _' F2 n
  3. extern I2C_HandleTypeDef hi2c1;- R8 ~# E& I) g8 g$ R6 i0 w

  4. + U8 L0 F+ w# d5 \6 q% e7 Y
  5. IMU_SensorData_Raw_Structer IMU_SensorData_Raw;6 ^; D& @$ s6 w# l4 v3 ^" V/ m
  6. # |& K! H- F4 A: b5 o, l3 o
  7. uint8_t BSP_MPU6050_ReadReg(uint8_t address); c" K0 O1 w/ I0 C. D, i0 A
  8. {
    8 }2 A! v" }9 {+ U. |  s# {5 b
  9.         uint8_t Value = 0;
    # Z* K! j9 G9 {0 d: e
  10.         HAL_I2C_Mem_Read(&hi2c1,IMU_ADDRESS_READ,address,I2C_MEMADD_SIZE_8BIT,&Value,1,0x10);
    ) f: m& U  I  c( G' x# r1 m& a' H
  11.         return Value;* M+ A4 R+ G0 p$ i$ G
  12. }( A8 i7 a; j( b, i5 M% l( W( ?
  13. / m4 _& C, I5 r' g% m
  14. void BSP_MPU6050_ReadMultiReg(uint8_t address,uint8_t length,uint8_t *data)
    2 W' g5 C, j4 Z% Z  H
  15. {
    9 G, m. `6 R2 [7 \
  16.         HAL_I2C_Mem_Read(&hi2c1,IMU_ADDRESS_READ,address,I2C_MEMADD_SIZE_8BIT,data,length,0x10);2 k# O  d  }2 W& m. u
  17. }
    & H9 ?3 f5 o/ w; a; Y
  18. 5 r# X4 |* V1 b5 E
  19. void BSP_MPU6050_WriteReg(uint8_t address,uint8_t data)
    " u( _2 ^: w' s( H3 s  K8 ]5 i
  20. {4 z7 N2 u4 e. d) x% ?
  21.         HAL_I2C_Mem_Write(&hi2c1,IMU_ADDRESS_WRITE,address,I2C_MEMADD_SIZE_8BIT,&data,1,0x10);, G5 u8 [0 L+ R( n8 ?( n6 z3 l5 L
  22.         HAL_Delay(100);
    ( y& H3 t% l0 m
  23. }& G& u& G. P) }0 |' m8 C
  24. ' m  x' U9 ^( d' d
  25. void BSP_MPU6050_WriteMultiReg(uint8_t address,uint8_t length,uint8_t *data)
    8 I$ m1 ^7 S( `1 n" G' k$ p/ f2 Z
  26. {
    : y4 ]2 ^9 Z& B. G; b
  27.         HAL_I2C_Mem_Write(&hi2c1,IMU_ADDRESS_WRITE,address,I2C_MEMADD_SIZE_8BIT,data,length,0x10);
    ! ^. _3 a, N! V6 p' F- m" V8 `9 [% A# o
  28.         HAL_Delay(100);. @  A9 {* B2 k
  29. }0 @0 a3 p& T% h! [9 @5 Y5 r

  30. 7 m1 F# D! i  W0 j3 O
  31. uint8_t BSP_MPU6050_Read_WHOAMI(void)- J3 a+ N5 X% H1 ?6 w, k  _
  32. {
    4 w+ P7 c- [9 e4 n6 B; z
  33.         return BSP_MPU6050_ReadReg(MPUREG_WHOAMI);2 o) c$ }3 m7 C$ ?# [& _
  34. }
    ) y2 ]" C  ?! T0 m

  35. 3 h, q/ c1 D: d1 D- x( [; }
  36. uint8_t BSP_MPU6050_Init(void)6 V6 t+ S6 T0 j( |" c, Q& Q5 a) r
  37. {
    - c4 i5 u& H5 [0 ^
  38.         uint8_t tries;; _* `& D: T1 g9 r/ w

  39.   ?" J3 W) m- p# o" P& }( t/ ~
  40.         for(tries = 0; tries<5; tries++)$ g" T* d* d. f1 _8 ]( S! X! L8 ]
  41.         {
    " I1 \0 y% r: R% l: K
  42.                 BSP_MPU6050_WriteReg(MPUREG_PWR_MGMT_1,BIT_PWR_MGMT_1_DEVICE_RESET);//复位MPU6050
    8 [, L3 Q% l& U5 k
  43.                 BSP_MPU6050_WriteReg(MPUREG_PWR_MGMT_1,BIT_PWR_MGMT_1_CLK_ZGYRO);//设置时钟
    # N/ x* v, ~4 [" @, S
  44.                 if(BSP_MPU6050_ReadReg(MPUREG_PWR_MGMT_1) == BIT_PWR_MGMT_1_CLK_ZGYRO)//判断是否写入,写入则跳出循环
    ' {: }. [$ y8 s6 Q
  45.                         break;$ F0 Z2 n$ S0 H  W
  46.         }0 @4 V8 f# K$ [
  47.         if(tries == 5)
    : I- R6 i+ b0 D4 V# {
  48.                 return 0;. O2 q5 L7 x7 z6 h3 O
  49. 6 X5 \3 o  A* U- J# O, O) U/ n' i2 N
  50.         BSP_MPU6050_WriteReg(MPUREG_PWR_MGMT_2,0x00);//禁止休眠; O( h' T/ N8 y* z$ b
  51.         BSP_MPU6050_WriteReg(MPUREG_USER_CTRL,0x00);//I2C主模式关闭
    " J$ K/ L1 ]' x5 b; q+ a
  52.         BSP_MPU6050_WriteReg(MPUREG_CONFIG,BITS_DLPF_CFG_20HZ);//设置低通滤波器6 f3 B+ [3 K; i
  53.         BSP_MPU6050_WriteReg(MPUREG_SMPLRT_DIV,MPUREG_SMPLRT_200HZ);//设置采样频率2 j# a. t. X" Z. d& E
  54.         BSP_MPU6050_WriteReg(MPUREG_GYRO_CONFIG,BITS_GYRO_FS_2000DPS);//设置陀螺仪量程0 V/ {% r  f  X+ c9 {  `
  55.         BSP_MPU6050_WriteReg(MPUREG_ACCEL_CONFIG,BITS_ACCEL_FS_8G);//设置加速度计量程& C4 n  x3 S" e1 o6 l8 k. D
  56.         BSP_MPU6050_WriteReg(MPUREG_INT_ENABLE,0x00);//禁止中断0 s6 q! C; l- `& k" p2 U2 Y

  57. * Z& |5 U( M0 I$ n& }( g9 g, H
  58.         if(BSP_MPU6050_Read_WHOAMI() == IMU_WHOAMI)' L$ J9 r5 q: I
  59.                 return 1;8 v# f5 @  ^1 C
  60.         else
    4 K. C5 V! d. o1 k3 X8 G' I
  61.                 return 0;
      |' ]/ A/ C/ i
  62. }
    & X, |! Y/ _5 R, Z$ r* i

  63. * U$ ~& [+ S, o6 E
  64. void BSP_MPU6050_UpdateSensors(void)% |; q& s6 i$ s3 G" \( w* W
  65. {1 _. X4 l( Y: q" i. I
  66.         uint8_t buffer[14];
    * k% ~- L+ x$ Q* U
  67.         BSP_MPU6050_ReadMultiReg(MPUREG_ACCEL_XOUT_H,14,buffer);& s, f" y. n! r8 f9 c8 R( h* j
  68.         IMU_SensorData_Raw.ACC_X = (buffer[0]<<8)|buffer[1];
    / B4 F5 B) W) P4 k: I& d- f
  69.         IMU_SensorData_Raw.ACC_Y = (buffer[2]<<8)|buffer[3];, k' v2 Z4 a7 v+ `8 }0 L! M
  70.         IMU_SensorData_Raw.ACC_Z = (buffer[4]<<8)|buffer[5];% O  T6 N$ ]  @: Y
  71.         IMU_SensorData_Raw.Temp = (buffer[6]<<8)|buffer[7];' U0 \7 T! e  J, f
  72.         IMU_SensorData_Raw.GYR_X = (buffer[8]<<8)|buffer[9];. G; N7 R" v  b4 c! T
  73.         IMU_SensorData_Raw.GYR_Y = (buffer[10]<<8)|buffer[11];
    - W6 z6 X: c. |& F2 y2 w* v  K* P
  74.         IMU_SensorData_Raw.GYR_Z = (buffer[12]<<8)|buffer[13];* d# J+ h& H; A6 U8 ]) D
  75. }
复制代码

& q+ }  n  i! I: d6 G$ s# x8.将以下代码加入bsp_mpu6050.h中
" `6 m( X+ F4 V8 m
  1. #ifndef BSP_INC_BSP_MPU6050_H_
    - R; g. e4 q, u
  2. #define BSP_INC_BSP_MPU6050_H_
    * a; ^# p% O2 s! t4 N, w. m
  3. / K$ k- h: }/ O# g( R
  4. #define IMU_WHOAMI  0x68
    6 P- n6 D9 R4 F0 j4 w
  5. #define IMU_ADDRESS_READ  0xD1
    ) e5 m- _8 V, u$ ?9 }
  6. #define IMU_ADDRESS_WRITE 0xD0# m" w0 E( \' E/ w/ m

  7. / D; v9 @8 A1 M) Z; E$ A: J+ O
  8. #define MPUREG_SMPLRT_DIV                               0x19    // sample rate.  Fsample= 1Khz/(<this value>+1) = 200Hz8 i0 y1 v, n1 L2 ^
  9.                                 #define MPUREG_SMPLRT_1000HZ                             0x00$ v' y; X/ w: i. f- `' h% W5 |$ i' L
  10.                                 #define MPUREG_SMPLRT_500HZ                              0x01
    ! \/ k: \( e' W0 }
  11.                                 #define MPUREG_SMPLRT_250HZ                              0x03
    ) }; p- G7 s0 s, r
  12.                                 #define MPUREG_SMPLRT_200HZ                              0x04
    2 S8 x* }! W2 p3 Q+ S4 x- M
  13.                                 #define MPUREG_SMPLRT_100HZ                              0x090 a1 _6 e/ c$ S: f: C
  14.                                 #define MPUREG_SMPLRT_50HZ                               0x139 Y2 v, M8 q1 d$ l& \6 b
  15. #define MPUREG_CONFIG                                   0x1A    //低通滤波频率
    4 G0 {4 }% |0 S' O& n6 G; F
  16. #define MPUREG_GYRO_CONFIG                              0x1B
    8 J1 c! ^+ R1 L9 H6 S
  17. // bit definitions for MPUREG_GYRO_CONFIG
    5 f/ ^6 z" K* l5 q! M
  18.                                 #define BITS_GYRO_FS_250DPS                              0x003 k7 q% {" h5 Q; V
  19.                                 #define BITS_GYRO_FS_500DPS                              0x08
    # J4 z0 ]9 [! J: n
  20.                                 #define BITS_GYRO_FS_1000DPS                             0x10$ ?0 ?. d1 ~% Z1 ?0 N0 u
  21.                                 #define BITS_GYRO_FS_2000DPS                             0x18: k2 v3 e; ]& n  W
  22.                                 #define BITS_GYRO_FS_MASK                                0x18    // only bits 3 and 4 are used for gyro full scale so use this to mask off other bits
    , g" k6 B4 B. u5 q; Q5 d
  23.                                 #define BITS_GYRO_ZGYRO_SELFTEST                                  0x20
    - \+ {4 X1 ^: U4 w
  24.                                 #define BITS_GYRO_YGYRO_SELFTEST                         0x40
    * U1 d. |2 b) X: o& S% f
  25.                                 #define BITS_GYRO_XGYRO_SELFTEST                         0x80. j* j4 \; v3 p$ l+ O
  26. #define MPUREG_ACCEL_CONFIG                             0x1C8 ^5 n: u1 ~+ K( T
  27.                                 #define BITS_ACCEL_FS_2G                                 0x00
    8 }4 r$ W5 q, d
  28.                                 #define BITS_ACCEL_FS_4G                                 0x08' G5 _5 z, o' f5 Y
  29.                                 #define BITS_ACCEL_FS_8G                                 0x10) a) r, a& [' v% b- T4 M/ i
  30.                                 #define BITS_ACCEL_FS_16G                                0x18
    ) p" E/ y9 [" ^5 }5 t  y! e
  31. #define MPUREG_INT_ENABLE                               0x38) p5 b/ I: |8 Q; Y' B( x, `
  32. #define MPUREG_ACCEL_XOUT_H                             0x3B5 ]3 e( I7 L& y8 C$ E; }. g
  33. #define MPUREG_ACCEL_XOUT_L                             0x3C6 b* C' @" n$ p' {/ a0 P2 B
  34. #define MPUREG_ACCEL_YOUT_H                             0x3D
    & N9 I9 t  _% R2 q+ D
  35. #define MPUREG_ACCEL_YOUT_L                             0x3E* ^" l/ `' @# I: c% o' L$ `5 U
  36. #define MPUREG_ACCEL_ZOUT_H                             0x3F
      h7 M% ~" g( [- l' \- h. v
  37. #define MPUREG_ACCEL_ZOUT_L                             0x40
    - R$ U/ I3 ]  M! Z+ K3 w  |% {
  38. #define MPUREG_TEMP_OUT_H                               0x41( ^9 j: Z+ F# V+ F3 T% l
  39. #define MPUREG_TEMP_OUT_L                               0x421 c' U3 k# G5 G, }( t  H
  40. #define MPUREG_GYRO_XOUT_H                              0x434 p4 I- |6 t2 A$ H4 F* X4 o, f6 u5 B
  41. #define MPUREG_GYRO_XOUT_L                              0x44
    % t4 L5 F1 R) }' {) |( ^
  42. #define MPUREG_GYRO_YOUT_H                              0x45
    + Z% x' q- Z) l, X4 S
  43. #define MPUREG_GYRO_YOUT_L                              0x46
    ! R: y% O- T' X
  44. #define MPUREG_GYRO_ZOUT_H                              0x47
    % h6 u* g1 N% }  S0 I$ a$ B
  45. #define MPUREG_GYRO_ZOUT_L                              0x48+ P/ l! j4 S# m0 N8 X+ {+ M
  46. #define MPUREG_USER_CTRL                                0x6A
    ! p5 ?% i" L9 d! k! ]6 y9 [, r
  47. #define MPUREG_PWR_MGMT_1                               0x6B- G" m" {: F) A
  48.                                 #define BIT_PWR_MGMT_1_CLK_INTERNAL                                               0x00            // clock set to internal 8Mhz oscillator
    - r& y; y4 G9 h4 U& ?
  49.                                 #define BIT_PWR_MGMT_1_CLK_XGYRO                                                  0x01            // PLL with X axis gyroscope reference
    5 A# ^& n( E6 Y( X( a+ K
  50.                                 #define BIT_PWR_MGMT_1_CLK_YGYRO                                                  0x02            // PLL with Y axis gyroscope reference0 e1 Z, N5 \) f! ]5 m
  51.                                 #define BIT_PWR_MGMT_1_CLK_ZGYRO                                                  0x03            // PLL with Z axis gyroscope reference
    " s! R# _8 i( X
  52.                                 #define BIT_PWR_MGMT_1_CLK_EXT32KHZ                                               0x04            // PLL with external 32.768kHz reference) ]4 _7 j% s9 K/ ]0 Y
  53.                                 #define BIT_PWR_MGMT_1_CLK_EXT19MHZ                                               0x05            // PLL with external 19.2MHz reference! P0 J1 X& k! K; e& O
  54.                                 #define BIT_PWR_MGMT_1_CLK_STOP                                                   0x07            // Stops the clock and keeps the timing generator in reset
    " h5 V# `& b8 l: ?! |/ i: d
  55.                                 #define BIT_PWR_MGMT_1_TEMP_DIS                                                   0x08            // disable temperature sensor
    ) Z' }9 G' ^+ x
  56.                                 #define BIT_PWR_MGMT_1_CYCLE                             0x20            // put sensor into cycle mode.  cycles between sleep mode and waking up to take a single sample of data from active sensors at a rate determined by LP_WAKE_CTRL0 M6 c: D2 E  t! V7 d, r
  57.                                 #define BIT_PWR_MGMT_1_SLEEP                             0x40            // put sensor into low power sleep mode
    1 f# W# y. `. `  H6 q
  58.                                 #define BIT_PWR_MGMT_1_DEVICE_RESET                                               0x80            // reset entire device
    & q; ^* o' ^$ H; C0 a0 y4 d$ F; V6 J
  59. - `# w: E! c2 ~, t8 J6 j& }6 i
  60. #define MPUREG_PWR_MGMT_2                               0x6C            // allows the user to configure the frequency of wake-ups in Accelerometer Only Low Power Mode) L  x( k+ q" X: v( |: j

  61. ! D4 h4 ~8 k1 G2 K9 L( P6 h2 W7 t
  62. #define MPUREG_WHOAMI                                   0x75$ S$ a+ {& H  _
  63. + g: g3 i% Q& @3 Y/ q
  64. #define BITS_DLPF_CFG_20HZ                              0x04( G. _2 Y  ^' n0 s5 x

  65. " {! v1 T  d3 [% t
  66. uint8_t BSP_MPU6050_ReadReg(uint8_t address);
    / \- A) r: ^: y
  67. void BSP_MPU6050_ReadMultiReg(uint8_t address,uint8_t length,uint8_t *data);' ~4 w5 K$ g" F& A- C0 f5 `/ J2 W
  68. void BSP_MPU6050_WriteReg(uint8_t address,uint8_t data);
    # V( ]6 s8 v: P; U' x: {3 |" S' a
  69. void BSP_MPU6050_WriteMultiReg(uint8_t address,uint8_t length,uint8_t *data);
    ! [/ Y* Q6 R( w* j/ a
  70. uint8_t BSP_MPU6050_Read_WHOAMI(void);& o7 B8 ]( U9 y* J: G# X. Y
  71. uint8_t BSP_MPU6050_Init(void);% q4 S+ I% w. m
  72. void BSP_MPU6050_UpdateSensors(void);, o" f' n: h$ P& P+ _
  73. 4 v  q% y2 L/ |# a& H

  74. 1 n+ `- l! |) i% L9 U% y$ u
  75. typedef struct4 \# F3 E6 q( A
  76. {
    - V8 p+ [- o. Y8 [6 k' c
  77.         int16_t ACC_X;
    3 p9 z, q2 \0 N( [
  78.         int16_t ACC_Y;
    0 s1 y9 a, _0 l% w
  79.         int16_t ACC_Z;/ M- y) ~. ^# b; d
  80.         int16_t GYR_X;  k3 `. L) K! y9 \& @7 C
  81.         int16_t GYR_Y;2 c3 Y. e+ ^+ f& K; q& Y
  82.         int16_t GYR_Z;
    - G% {( _' j; D+ O
  83.         int16_t Temp;6 p' S# x2 u4 s1 {* e
  84. }IMU_SensorData_Raw_Structer;
    ) H+ t$ Z$ Y  J0 w+ S% `5 t
  85. ' M' @; B! q5 {3 t
  86. #endif /* BSP_INC_BSP_MPU6050_H_ */
复制代码
* d" G! z5 I! p1 y/ ]% V4 F
9.把以下代码加入main.h中
3 ^% d. `% F( v+ {# [
  1. #include "bsp_mpu6050.h"
复制代码

; Q8 f+ p. ^1 a) O3 ~) \( j MJ]}DS(~YSC(}LF6Y~~Q7TL.png ) L6 [# e$ J; [# g+ t

% [1 ?, t1 i/ x: g( O5 {10.点击编译并烧录,烧录完成后,把bsp_mpu6050.h文件中的机构体IMU_SensorData_Raw复制到右上角现场表达式中。
/ D% [( w4 z  w7 U( E/ q( d! B
. A) N- X; m- R# o  ]( q KI%0[)9(`}G7~C038H@8}GO.png 0 l5 n; e4 T% o: @

0 l. _# P8 j. j$ d, J11.点击运行,可在现场表达式中观察到MPU测量出的数据。
) l5 `; A9 D- |$ V2 S* _/ I/ o
# ~/ y1 t, k: A  Y3 j2 J% [ IXF[OW(21SK~9@BLKI0~G$O.png . n) F% s9 ~8 a4 l# E3 i& e
; ?7 c  x( i0 `

, W# X& X( L5 S% j3 P2 _
9 }# s  N, y' G- v7 a
# X+ p+ F$ R$ o, |+ \! k
赞 收藏 评论0 发布时间:2022-3-14 23:01

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版