日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

QMC5883L磁力计驱动

發布時間:2023/12/8 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QMC5883L磁力计驱动 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? 之前使用STM32的硬件IIC(基于HAL庫)調試了矽睿的QMC5883L磁力計,現將寫的驅動文件記錄下來,并分享給有需要的同學。

/* *********************************************************************************************** * QMC5883L磁力計驅動 * * 實現QMC5883L底層驅動 * * Filename : QMC5883L.c * Version : V1.00 * Programmer(s) : FengDuo * *********************************************************************************************** */ #define QMC5883L_MOUDLE //文件聲明 /* *********************************************************************************************** * INCLUDE FILES *********************************************************************************************** */ #include "includes.h" /* *********************************************************************************************** * LOCAL DEFINES *********************************************************************************************** */ static QMC5883LSAMPLE_DEF QMC5883LSample; /* *********************************************************************************************** * LOCAL FUNCTION PROTOTYPES *********************************************************************************************** */ static void QMC5883L_IOInit(void); static void QMC5883L_Register_Write(CPU_INT08U addr,CPU_INT08U val); static CPU_INT08U QMC5883L_Register_Read(CPU_INT08U addr); static void QMC5883L_Read_XYZ(CPU_INT16S *x,CPU_INT16S *y,CPU_INT16S *z); #ifdef QMC5883L_READ_TEMP static void QMC5883L_Read_TEMP(CPU_INT16S *temp); #endif static CPU_BOOLEAN QMC5883L_Wait_Data_Update(CPU_INT08U max_cnt); static CPU_BOOLEAN QMC5883L_Read_Average(CPU_INT16S *x,CPU_INT16S *y,CPU_INT16S *z,CPU_INT08U times); /* ***********************************************************************************************LOCAL FUNCTIONS *********************************************************************************************** */ /* *********************************************************************************************** * QMC5883L_IOInit * * Description: QMC5883L磁力計 IO初始化 * * Argument(s): 無 * * Return(s) : 無 * * Caller(s) : * *********************************************************************************************** */ static void QMC5883L_IOInit(void) {GPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;GPIO_InitStruct.Pull = GPIO_PULLUP;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;GPIO_InitStruct.Pin = QMC5883L_PIN_SCL |QMC5883L_PIN_SDA;GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;HAL_GPIO_Init(QMC5883L_PORT_SDA_SCL, &GPIO_InitStruct); }/* *********************************************************************************************** * QMC5883L_Register_Write * * Description: 寫QMC5883L寄存器 * * Argument(s): * addr: IN, 寄存器地址 * val: IN, 要寫入的值 * * Return(s) : 無 * * Caller(s) : * *********************************************************************************************** */ static void QMC5883L_Register_Write(CPU_INT08U addr,CPU_INT08U val) {CPU_INT08U len = 0x01;QMC5883L_HardI2C_Register_Write(QMC5883L_ADDR_WRITE, addr, &val, len); }/* *********************************************************************************************** * QMC5883L_Register_Read * * Description: 讀QMC5883L寄存器 * * Argument(s): * addr: IN, 寄存器地址 * * Return(s) : 寄存器讀取值 * * Caller(s) : * *********************************************************************************************** */ static CPU_INT08U QMC5883L_Register_Read(CPU_INT08U addr) {CPU_INT08U temp = 0x00, len = 0x01;QMC5883L_HardI2C_Register_Read(QMC5883L_ADDR_READ, addr, &temp, len);return temp; }/* *********************************************************************************************** * QMC5883L_Read_XYZ * * Description: QMC5883L讀取XYZ三軸磁場強度 * * Argument(s): * x: IN, X軸數據地址 * y: IN, Y軸數據地址 * z: IN, Z軸數據地址 * * Return(s) : 無 * * Caller(s) : * *********************************************************************************************** */ static void QMC5883L_Read_XYZ(CPU_INT16S *x,CPU_INT16S *y,CPU_INT16S *z) {CPU_INT08U buf[QMC5883L_XYZBUF_LEN];CPU_INT16S dataX,dataY,dataZ;QMC5883L_HardI2C_Register_Read(QMC5883L_ADDR_READ, QMC5883L_ADDR_XOUTL, buf, QMC5883L_XYZBUF_LEN);dataX=(CPU_INT16S)((buf[1]<<8)+buf[0]);dataY=(CPU_INT16S)((buf[3]<<8)+buf[2]);dataZ=(CPU_INT16S)((buf[5]<<8)+buf[4]);*x = dataX / QMC5883L_SENSITIVITY_8G;*y = dataY / QMC5883L_SENSITIVITY_8G;*z = dataZ / QMC5883L_SENSITIVITY_8G;//QMC5883LSample.XY_Angle = (atan2((CPU_FP32)QMC5883LSample.Y_Data,(CPU_FP32)QMC5883LSample.X_Data) * (180 / 3.14159265) + 180) ;//QMC5883LSample.XZ_Angle = (atan2((CPU_FP32)QMC5883LSample.Z_Data,(CPU_FP32)QMC5883LSample.X_Data) * (180 / 3.14159265) + 180) ;//QMC5883LSample.YZ_Angle = (atan2((CPU_FP32)QMC5883LSample.Z_Data,(CPU_FP32)QMC5883LSample.Y_Data) * (180 / 3.14159265) + 180) ; }/* 暫時打開,fd,2019.11.19 */ #ifdef QMC5883L_READ_TEMP /* *********************************************************************************************** * QMC5883L_Read_TEMP * * Description: QMC5883L讀取相對溫度值 * * Argument(s): * temp: IN, 溫度數據地址 * * Return(s) : 無 * * Caller(s) : * *********************************************************************************************** */ static void QMC5883L_Read_TEMP(CPU_INT16S *temp) {CPU_INT08U buf[QMC5883L_TEMBUF_LEN];CPU_INT16S dataT;QMC5883L_HardI2C_Register_Read(QMC5883L_ADDR_READ, QMC5883L_ADDR_TEMPL, buf, QMC5883L_TEMBUF_LEN);dataT = (CPU_INT16S)((buf[1]<<8)+buf[0]); *temp= dataT / 100; } #endif/* *********************************************************************************************** * QMC5883L_Wait_Data_Update * * Description: QMC5883L查詢寄存器數據就緒 * * Argument(s): * max_cnt: IN, 最大輪詢次數 * * Return(s) : 成功:TRUE,失敗:FALSE * * Caller(s) : * *********************************************************************************************** */ static CPU_BOOLEAN QMC5883L_Wait_Data_Update(CPU_INT08U max_cnt) {for(; max_cnt>0x00; max_cnt--){if(QMC5883L_Register_Read(QMC5883L_ADDR_STATUS) & 0x01){return TRUE;}HAL_Delay(1);}return FALSE; }/* *********************************************************************************************** * QMC5883L_Read_Average * * Description: QMC5883L讀取XYZ三軸磁場強度平均值 * * Argument(s): * x: IN, X軸數據地址 * y: IN, Y軸數據地址 * z: IN, Z軸數據地址 * times: IN, 讀取次數 * * Return(s) : 無 * * Caller(s) : * *********************************************************************************************** */ static CPU_BOOLEAN QMC5883L_Read_Average(CPU_INT16S *x,CPU_INT16S *y,CPU_INT16S *z,CPU_INT08U times) {CPU_INT08U i,j;CPU_INT16S tx,ty,tz;CPU_INT08U temp_serial[10],tmp_serial;CPU_INT16S temp_x[10],temp_y[10],temp_z[10];CPU_INT32S tmp = 0;*x=0;*y=0;*z=0;if(times) {for(i=0;i<times;i++){if(!QMC5883L_Wait_Data_Update(10)){return FALSE;}QMC5883L_Read_XYZ(&tx,&ty,&tz);temp_x[i]=tx;temp_y[i]=ty;temp_z[i]=tz;}}/**********************************計算X軸***********************************/for(j=0; j<times; j++) { temp_serial[j] = j; }for(i=times; i>0; i--){for(j=0; j<(i-1); j++){if(temp_x[temp_serial[j]] > temp_x[temp_serial[j+1]]){tmp_serial = temp_serial[j];temp_serial[j] = temp_serial[j+1];temp_serial[j+1] = tmp_serial; }}} for(i=1;i<times-1;i++) { tmp += temp_x[temp_serial[i]];}*x = tmp/(times-2);/**********************************計算Y軸***********************************/tmp = 0;for(j=0; j<times; j++) { temp_serial[j] = j; }for(i=times; i>0; i--){for(j=0; j<(i-1); j++){if(temp_y[temp_serial[j]] > temp_y[temp_serial[j+1]]){tmp_serial = temp_serial[j];temp_serial[j] = temp_serial[j+1];temp_serial[j+1] = tmp_serial; }}} for(i=1;i<times-1;i++) { tmp += temp_y[temp_serial[i]];}*y = tmp/(times-2);/**********************************計算Z軸***********************************/tmp = 0;for(j=0; j<times; j++) { temp_serial[j] = j; }for(i=times; i>0; i--){for(j=0; j<(i-1); j++){if(temp_z[temp_serial[j]] > temp_z[temp_serial[j+1]]){tmp_serial = temp_serial[j];temp_serial[j] = temp_serial[j+1];temp_serial[j+1] = tmp_serial; }}} for(i=1;i<times-1;i++) { tmp += temp_z[temp_serial[i]];}*z = tmp/(times-2);return TRUE; } /* *********************************************************************************************** * GLOBAL FUNCTIONS *********************************************************************************************** */ /* *********************************************************************************************** * QMC5883L_Init * * Description: QMC5883L磁力計初始化 * * Argument(s): 無 * * Return(s) : 初始化結果, 成功TRUE,失敗FALSE * * Caller(s) : * *********************************************************************************************** */ CPU_BOOLEAN QMC5883L_Init(void) {CPU_INT08U uErrTime=0;QMC5883L_IOInit();QMC5883L_POWER_ON();/* 讀取器件ID */while(QMC5883L_Register_Read(QMC5883L_ADDR_CHIPID) != QMC5883L_CHIPID_VALUE){uErrTime++;if(uErrTime>250){return FALSE;}}QMC5883L_Register_Write(QMC5883L_ADDR_CFGA ,QMC5883L_CFGA_VALUE_STANDBY); /* OSR = 512;RNG = 8G(0x1d RNG=8G);ODR=200Hz;MODE:待機模式*/QMC5883L_Register_Write(QMC5883L_ADDR_CFGC ,QMC5883L_CFGC_VALUE);QMC5883L_Register_Write(QMC5883L_ADDR_CFGD ,QMC5883L_CFGD_VALUE);QMC5883L_Register_Write(QMC5883L_ADDR_PERIORC ,QMC5883L_PERIORC_VALUE);if(QMC5883L_Register_Read(QMC5883L_ADDR_CFGA) != QMC5883L_CFGA_VALUE_STANDBY){return FALSE;}return TRUE; }/* *********************************************************************************************** * QMC5883L_Soft_Reset * * Description: QMC5883L磁力計軟復位 * * Argument(s): 無 * * Return(s) : 無 * * Caller(s) : * *********************************************************************************************** */ void QMC5883L_Soft_Reset(void) {QMC5883L_Register_Write(QMC5883L_ADDR_CFGB ,QMC5883L_CFGB_VALUE_REBOOT);HAL_Delay(50); }/* *********************************************************************************************** * QMC5883L_Hard_Reset * * Description: QMC5883L磁力計硬復位 * * Argument(s): 無 * * Return(s) : 無 * * Caller(s) : * *********************************************************************************************** */ void QMC5883L_Hard_Reset(void) {QMC5883L_POWER_OFF();HAL_Delay(1000);QMC5883L_POWER_ON(); } /* *********************************************************************************************** * QMC5883L_AUTO_Adjust * * Description: QMC5883L校準 * * Argument(s): 無 * * Return(s) : 無 * * Caller(s) : * *********************************************************************************************** */ CPU_BOOLEAN QMC5883L_Adjust_Magnetic(void) {CPU_INT08U err;CPU_BOOLEAN res;CPU_INT16S x,y,z;OSSemPend(App_SensorSem, OS_TICKS_PER_SEC, &err); /* 請求信號量 */if(err == OS_ERR_NONE){/* QMC5883L開啟連續模式 */QMC5883L_Register_Write(QMC5883L_ADDR_CFGA ,QMC5883L_CFGA_VALUE_CONTINUE);/* 讀取10組X,Y,Z三個方向的磁場強度值,并對其取平均 */if(!QMC5883L_Read_Average(&x,&y,&z,10)){OSSemPost(App_SensorSem); /* 釋放信號量 */res = FALSE;}QMC5883LSave.X_Offset = x;QMC5883LSave.Y_Offset = y;QMC5883LSave.Z_Offset = z;/* QMC5883L開啟待機模式 */QMC5883L_Register_Write(QMC5883L_ADDR_CFGA ,QMC5883L_CFGA_VALUE_STANDBY);OSSemPost(App_SensorSem); /* 釋放信號量 */res = TRUE;}else{res = FALSE;}return res; }/* *********************************************************************************************** * QMC5883L_Read_MagDensity * * Description: QMC5883L讀取磁場強度 * * Argument(s): 無 * * Return(s) : 傳感器讀取數據結果 * * Caller(s) : * *********************************************************************************************** */ QMC5883L_RESULT_SAMPLE QMC5883L_Read_MagDensity(void) {CPU_INT08U i,param_vali;CPU_INT16U MagDensity = 0x00;CPU_INT16S fx = 0x00, fy = 0x00, fz = 0x00;CPU_INT16S x = 0x00, y = 0x00, z = 0x00;CPU_INT16S Temp = 0x00;SENSOR_DATA_ELEMENT_T Q_Sample;/* 檢查傳感器 */if(QMC5883L_Register_Read(QMC5883L_ADDR_CHIPID) != QMC5883L_CHIPID_VALUE){QMC5883LSample.HardFault = TRUE;return QMC5883L_DATA_ERROR_ADDR;}else{QMC5883LSample.HardFault = FALSE;}/* QMC5883L開啟連續模式 */QMC5883L_Register_Write(QMC5883L_ADDR_CFGA ,QMC5883L_CFGA_VALUE_CONTINUE);for(i=0;i<2;i++){if(QMC5883L_Wait_Data_Update(6)){QMC5883L_Read_XYZ(&x,&y,&z);}else{QMC5883L_Register_Write(QMC5883L_ADDR_CFGA ,QMC5883L_CFGA_VALUE_STANDBY);return QMC5883L_DATA_ERROR_TIMEOUT;}}/* QMC5883L開啟待機模式 */QMC5883L_Register_Write(QMC5883L_ADDR_CFGA ,QMC5883L_CFGA_VALUE_STANDBY);#ifdef QMC5883L_READ_TEMPQMC5883L_Read_TEMP(&Temp); #endifif(((x<3) && (x>-3)) && ((y<3) && (y>-3)) && ((z<3) && (z>-3))){param_vali = FALSE;QMC5883LSample.DetectInvalid = TRUE;}else{param_vali = TRUE;QMC5883LSample.DetectInvalid = FALSE;}QMC5883LSample.X_Data = x;QMC5883LSample.Y_Data = y;QMC5883LSample.Z_Data = z;fx = QMC5883LSample.X_Data - QMC5883LSave.X_Offset;fy = QMC5883LSample.Y_Data - QMC5883LSave.Y_Offset;fz = QMC5883LSample.Z_Data - QMC5883LSave.Z_Offset;MagDensity = (CPU_INT16U)(sqrt(fx*fx+fy*fy+fz*fz));Q_Sample.Bx = fx;Q_Sample.By = fy;Q_Sample.Bz = fz;Q_Sample.Temp = Temp;Q_Sample.BNorm = MagDensity;Q_Enqueue(&Q_Sample,&Q_CtlM);if(!param_vali){return QMC5883L_DATA_ERROR_VALUE;}return QMC5883L_DATA_SUCCESS; }/* *********************************************************************************************** * QMC5883L_HardState * * Description: 讀取傳感器硬件是否損壞 * * Argument(s): 無 * * Return(s) : 傳感器硬件損壞結果 * * Caller(s) : * *********************************************************************************************** */ CPU_BOOLEAN QMC5883L_HardState(void) {return QMC5883LSample.HardFault; }/* *********************************************************************************************** * QMC5883L_DetectState * * Description: 讀取傳感器采集是否失效 * * Argument(s): 無 * * Return(s) : 傳感器采集失效結果 * * Caller(s) : * *********************************************************************************************** */ CPU_BOOLEAN QMC5883L_DetectState(void) {return QMC5883LSample.DetectInvalid; } /* *********************************************************************************************** * QMC5883L磁力計驅動 * * 實現QMC5883L底層驅動 * * Filename : QMC5883L.h * Version : V1.00 * Programmer(s) : FengDuo * *********************************************************************************************** *///文件聲明 #ifndef _QMC5883L_H_ #define _QMC5883L_H_#ifdef QMC5883L_MOUDLE #define QMC5883L_EXT #else #define QMC5883L_EXT extern #endif /* *********************************************************************************************** * INCLUDE FILES *********************************************************************************************** */ //...... /* *********************************************************************************************** * DEFINES *********************************************************************************************** */ /* 器件地址:設備從地址+讀寫選擇 */ #define QMC5883L_ADDR_WRITE 0x1A #define QMC5883L_ADDR_READ 0x1B/* 設備寄存器地址 */ #define QMC5883L_ADDR_XOUTL 0x00 #define QMC5883L_ADDR_XOUTH 0x01 #define QMC5883L_ADDR_YOUTHL 0x02 #define QMC5883L_ADDR_YOUTH 0x03 #define QMC5883L_ADDR_ZOUTL 0x04 #define QMC5883L_ADDR_ZOUTH 0x05#define QMC5883L_ADDR_STATUS 0x06 #define QMC5883L_ADDR_TEMPL 0x07 #define QMC5883L_ADDR_TEMPH 0x08 #define QMC5883L_ADDR_CFGA 0x09 #define QMC5883L_ADDR_CFGB 0x0A #define QMC5883L_ADDR_PERIORC 0x0B #define QMC5883L_ADDR_CHIPID 0x0D#define QMC5883L_ADDR_CFGC 0x20 #define QMC5883L_ADDR_CFGD 0x21/* 設備寄存器參數值 */ #define QMC5883L_CFGA_OSR_512 (0 << 7) | (0 << 6) #define QMC5883L_CFGA_OSR_256 (0 << 7) | (1 << 6) #define QMC5883L_CFGA_OSR_128 (1 << 7) | (0 << 6) #define QMC5883L_CFGA_OSR_64 (1 << 7) | (1 << 6) #define QMC5883L_CFGA_RNG_2G (0 << 5) | (0 << 4) #define QMC5883L_CFGA_RNG_8G (0 << 5) | (1 << 4) #define QMC5883L_CFGA_ODR_10HZ (0 << 3) | (0 << 2) #define QMC5883L_CFGA_ODR_50HZ (0 << 3) | (1 << 2) #define QMC5883L_CFGA_ODR_100HZ (1 << 3) | (0 << 2) #define QMC5883L_CFGA_ODR_200HZ (1 << 3) | (1 << 2) #define QMC5883L_CFGA_MODE_STANDBY (0 << 1) | (0 << 0) #define QMC5883L_CFGA_MODE_CONTINUE (0 << 1) | (1 << 0)#define QMC5883L_CFGB_SOFT_RST (1 << 7) #define QMC5883L_CFGB_ROL_PNT (1 << 6) #define QMC5883L_CFGB_INT_ENB (1 << 0)#define QMC5883L_CHIPID_VALUE 0xFF /* 器件標識,0XFF */#define QMC5883L_CFGA_VALUE_STANDBY ( QMC5883L_CFGA_OSR_512 \| QMC5883L_CFGA_RNG_8G \| QMC5883L_CFGA_ODR_200HZ \| QMC5883L_CFGA_MODE_STANDBY ) /* OSR = 512;RNG = 8G;ODR=200Hz;MODE:待機模式 */#define QMC5883L_CFGA_VALUE_CONTINUE ( QMC5883L_CFGA_OSR_512 \| QMC5883L_CFGA_RNG_8G \| QMC5883L_CFGA_ODR_200HZ \| QMC5883L_CFGA_MODE_CONTINUE ) /* OSR = 512;RNG = 8G;ODR=200Hz;MODE:連續模式 */#define QMC5883L_CFGB_VALUE_REBOOT ( QMC5883L_CFGB_SOFT_RST ) /* QMC5883L軟件重啟 */#define QMC5883L_CFGC_VALUE 0x40 #define QMC5883L_CFGD_VALUE 0x01 #define QMC5883L_PERIORC_VALUE 0x01#define QMC5883L_XYZBUF_LEN 0x06 #define QMC5883L_TEMBUF_LEN 0x02#define QMC5883L_SENSITIVITY_2G ( 12 ) #define QMC5883L_SENSITIVITY_8G ( 3 )#define QMC5883L_CUM_REBOOT_MAXCNT ( 100 ) /* 磁力計累計重啟最大次數 */ #define QMC5883L_CON_REBOOT_MAXCNT QMC5883L_CUM_REBOOT_MAXCNT /* 磁力計連續重啟最大次數 *//* QMC5883L 供電控制 */ #define QMC5883L_POWER_ON() BSP_SNR_PWR_H() #define QMC5883L_POWER_OFF() BSP_SNR_PWR_L()/* QMC5883L 管腳 */ #define QMC5883L_PIN_SCL BSP_IIC1_PIN_SCL #define QMC5883L_PIN_SDA BSP_IIC1_PIN_SDA #define QMC5883L_PORT_SDA_SCL BSP_IIC1_PORT_SDA_SCL#define QMC5883L_READ_TEMP /* 使用QMC58883L內部溫度 */typedef struct {CPU_INT16S X_Data; /* 磁力計X軸數據 */CPU_INT16S Y_Data; /* 磁力計Y軸數據 */CPU_INT16S Z_Data; /* 磁力計Z軸數據 */CPU_INT16S T_Data; /* 磁力計內部溫度 */CPU_INT16U MagDensity; /* 磁力計總磁擾強度 */CPU_FP32 XY_Angle; /* 磁力計X軸Y軸夾角 */CPU_FP32 XZ_Angle; /* 磁力計X軸Z軸夾角 */CPU_FP32 YZ_Angle; /* 磁力計Y軸Z軸夾角 */CPU_INT16S X_Offset; /* 磁力計X軸OFFSET */CPU_INT16S Y_Offset; /* 磁力計Y軸OFFSET */CPU_INT16S Z_Offset; /* 磁力計Z軸OFFSET */CPU_BOOLEAN HardFault; /* 傳感器硬件損壞 */CPU_BOOLEAN DetectInvalid; /* 傳感器檢測失效 */ }QMC5883LSAMPLE_DEF;typedef struct {CPU_INT16S X_Offset; /* 磁力計X軸OFFSET */CPU_INT16S Y_Offset; /* 磁力計Y軸OFFSET */CPU_INT16S Z_Offset; /* 磁力計Z軸OFFSET */ }QMC5883L_Save_DEF;typedef enum{QMC5883L_DATA_SUCCESS, /* 獲取數據成功 */QMC5883L_DATA_ERROR_ADDR, /* 傳感器通信地址錯誤 */QMC5883L_DATA_ERROR_TIMEOUT, /* 傳感器讀取超時 */QMC5883L_DATA_ERROR_VALUE, /* 傳感器數值錯誤 */ }QMC5883L_RESULT_SAMPLE; /* *********************************************************************************************** * EXTERNS *********************************************************************************************** */ QMC5883L_EXT QMC5883L_Save_DEF QMC5883LSave; /* *********************************************************************************************** * GLOBAL FUNCTION PROTOTYPES *********************************************************************************************** */ QMC5883L_EXT void QMC5883L_Soft_Reset(void); QMC5883L_EXT void QMC5883L_Hard_Reset(void); QMC5883L_EXT CPU_BOOLEAN QMC5883L_Init(void); QMC5883L_EXT CPU_BOOLEAN QMC5883L_HardState(void); QMC5883L_EXT CPU_BOOLEAN QMC5883L_DetectState(void); QMC5883L_EXT CPU_BOOLEAN QMC5883L_Adjust_Magnetic(void); QMC5883L_EXT QMC5883L_RESULT_SAMPLE QMC5883L_Read_MagDensity(void); #endif

? 有需要下載源文件的同學可以去該地址下載:https://download.csdn.net/download/yekui6254/12109377

總結

以上是生活随笔為你收集整理的QMC5883L磁力计驱动的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。