資源簡介
STM32F1單片機MS5611高精度氣壓計驅動工程,完成遵守燕駿v3.0編程規范(本人已上傳到CSDN)
代碼片段和文件信息
/*
***********************************************************************
*????????????????YanJunFly?V1.0?-?Copyright?(c)?2017
*?All?rights?reserved.More?information?please?browse?www.yanjuntech.cn
*??????????????????燕駿智控——以極客技術推進工程教育
*?????????????手把手教你,如何從頭開始做一個電子設計類項目。
*?我們將以?四軸飛行器?為項目載體,帶領大家進行項目式學習做出屬于自己的四旋翼。
*
*?文件名稱:ms5611.c?ms5611.h
*?文件摘要:ms5611氣壓計數據采集
*?注意事項:使用的時候先初始化然后把vMS5611_ReadData()函數放到中斷里每10ms調用一次,至少要保證10ms一次的頻率調用vMS5611_ReadData()函數
*
*?當前版本:v1.0
*?當前作者:YJ_王洪志
*?完成日期:2018年1月23日?20:47:55
*?改動說明:創建文件
*
*?取代版本:無
*?原?作?者:YJ_王洪志
*?完成日期:2018年1月23日?20:47:59
************************************************************************
*/
#include?“./MS5611/ms5611.h“
/*?儲存氣壓校正的數據的結構體變量?*/
MS5611_CalibrationDataTypedef?x_MS5611_CalibrationData;
MS5611_MiddleProcessDataTypedef?x_MS5611_MiddleProcessData;
/*
***********************************************************************
*函數名稱:ErrorStatus?xMS5611_WriteReg(uint8_t?uc_SlavaAddr?uint8_t?uc_RegAddr?uint8_t?uc_Data)
*函數功能:向MS5611寫入數據
*
*使用說明:無
*入口參數:uc_RegAddr:寄存器地址??uc_Data:數據
*返?回?值:SUCCESS:成功?ERROR:失敗
*
*函數作者:王洪志
*創建日期:2018年1月23日?11:11:14
***********************************************************************
*/
ErrorStatus?xMS5611_WriteReg(uint8_t?uc_RegAddr?uint8_t?uc_Data)
{
if(xI2C_Write(MS5611_SLAVE_ADDR?uc_RegAddr?&uc_Data?1)?==?SUCCESS)
{
return?SUCCESS;
}
else
{
return?ERROR;
}
}
/*
***********************************************************************
*函數名稱:ErrorStatus?xMS5611_WriteCommand(uint8_t?uc_Command)
*函數功能:向MS5611寫入指令
*
*使用說明:無
*入口參數:uc_Command:指令
*返?回?值:SUCCESS:成功?ERROR:失敗
*
*函數作者:王洪志
*創建日期:2018年1月23日?11:11:18
***********************************************************************
*/
ErrorStatus?xMS5611_WriteCommand(uint8_t?uc_Command)
{
uint8_t?uc_Data?=?0x00;
if(xI2C_Write(MS5611_SLAVE_ADDR?uc_Command?&uc_Data?0)?==?SUCCESS)
{
return?SUCCESS;
}
else
{
return?ERROR;
}
}
/*
***********************************************************************
*函數名稱:void?vMS5611_ReadReg(uint8_t?uc_RegAddr?uint8_t?*ucp_Data?uint8_t?uc_Length)
*函數功能:從MS5611讀取一個數據
*
*使用說明:無
*入口參數:uc_RegAddr:寄存器地址?ucp_Data:儲存數據的地址?uc_Length:數據長度
*返?回?值:SUCCESS:成功?ERROR:失敗
*
*函數作者:王洪志
*創建日期:2018年1月23日?11:11:21
***********************************************************************
*/
ErrorStatus?xMS5611_ReadReg(uint8_t?uc_RegAddr?uint8_t?*ucp_Data?uint8_t?uc_Length)
{
if(xI2C_Read(MS5611_SLAVE_ADDR?uc_RegAddr?ucp_Data?uc_Length)?==?SUCCESS)
{
return?SUCCESS;
}
else
{
return?ERROR;
}
}
/*
***********************************************************************
*函數名稱:void?vPressureFilter(int32_t?i_DataIn?int32_t*?ip_DataOut)
*函數功能:對氣壓值進行濾波
*
*使用說明:被氣壓計算函數調用
*入口參數:i_DataIn:輸入的數據??ip_DataOut:儲存輸出數據的地址
*返?回?值:無
*
*函數作者:王洪志
*創建日期:2018年1月23日?20:49:52
***********************************************************************
*/
void?vPressureF
評論
共有 條評論