資源簡介
基于STM32F4xx系列芯片,MS5611氣壓傳感器使用SPI接口的程序源碼,實現了對溫度、氣壓、海拔的采集計算。關鍵字:MS5611 SPI STM32F4xx
pressure sensor SPI interface program source code, the realization of temperature, pressure, collecting calculate altitude.

代碼片段和文件信息
/*功能描述:MS5611大氣壓強模塊數據采集計算?V1.0*/
/********************************************************************************????
??*?@file????atmosphere.c
??*?@author??pei4566
??*?@version?V1.0.2
??*?@date????04-October-2015
??*?@brief???pressure?sensor?SPI?interface?program?source?code?
*??????????the?realization?of?temperature?pressure?collecting?calculate?altitude.
??*???????????
*********************************************************************************/
#include??“hardware.h“
u16?setupC1C2C3C4C5C6CRC_1;??//用于存放PROM中的8組數據
unsigned?long?D1_PresD2_Temp;??????//用于存放溫度和壓力?
double?OFFSENS;????????????????????//實際溫度抵消、實際溫度靈敏度
float?dTTemperaturePressure;??????//實際和參考溫度之間的差異、溫度值、壓力值
float?TEMP2AuxOFF2SENS2;?????????//溫度檢驗值
/*******************************************************************************
大氣壓強模塊用到的SPI1接口初始化
函數名稱:SPI1_Init
輸入參數:void
輸出參數:void
*******************************************************************************/
void?SPI1_Init(void)
{ ?
??GPIO_InitTypeDef??GPIO_InitStructure;
??SPI_InitTypeDef??SPI_InitStructure;
??RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA?ENABLE);//使能GPIOA時鐘
??RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1?ENABLE);?//使能SPI1時鐘
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB?ENABLE);//使能GPIOB時鐘
??GPIO_InitStructure.GPIO_Pin?=?ATMOSPHERE_NSS_PIN;????//PA4
??GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_OUT;????????//輸出
??GPIO_InitStructure.GPIO_OType?=?GPIO_OType_PP;???????//推挽輸出
??GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_100MHz;???//100MHz
??GPIO_InitStructure.GPIO_PuPd?=?GPIO_PuPd_UP;?????????//上拉
??GPIO_Init(ATMOSPHERE_GPIO?&GPIO_InitStructure);?????//初始化
?
??GPIO_InitStructure.GPIO_Pin?=?ATMOSPHERE_SCK_PIN|ATMOSPHERE_MISO_PIN|ATMOSPHERE_MOSI_PIN;//PA5~7復用功能輸出
??GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_AF;?????????????????????????????????????????????//復用功能
??GPIO_InitStructure.GPIO_OType?=?GPIO_OType_PP;???????????????????????????????????????????//推挽輸出
??GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_100MHz;???????????????????????????????????????//100MHz
??GPIO_InitStructure.GPIO_PuPd?=?GPIO_PuPd_UP;?????????????????????????????????????????????//上拉
??GPIO_Init(ATMOSPHERE_GPIO?&GPIO_InitStructure);?????????????????????????????????????????//初始化???
GPIO_PinAFConfig(ATMOSPHERE_SCK_GPIOGPIO_PinSource5GPIO_AF_SPI1);???//PB5復用為?SPI1
GPIO_PinAFConfig(ATMOSPHERE_MISO_GPIOGPIO_PinSource6GPIO_AF_SPI1);??//PB6復用為?SPI1
GPIO_PinAFConfig(ATMOSPHERE_MOSI_GPIOGPIO_PinSource7GPIO_AF_SPI1);??//PB7復用為?SPI1
?
//這里只針對SPI口初始化
RCC_APB2PeriphResetCmd(RCC_APB2Periph_SPI1ENABLE);??//復位SPI1
RCC_APB2PeriphResetCmd(RCC_APB2Periph_SPI1DISABLE);?//停止復位SPI1
SPI_InitStructure.SPI_Direction?=?SPI_Direction_2Lines_FullDuplex;??//設置SPI單向或者雙向的數據模式:SPI設置為雙線雙向全雙工
SPI_InitStructure.SPI_Mode?=?SPI_Mode_Master; ????????????????????//設置SPI工作模式:設置為主SPI
SPI_InitStructure.SPI_DataSize?=?SPI_DataSize_8b; ????????????????//設置SPI的數據大小:SPI發送接收8位幀結構
SPI_InitS
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????11180??2015-10-19?17:27??drv_atmosphere\atmosphere.c
?????文件???????1996??2015-10-19?17:29??drv_atmosphere\atmosphere.h
?????文件????????613??2015-10-19?17:37??drv_atmosphere\main.c
?????目錄??????????0??2015-10-19?17:32??drv_atmosphere
-----------?---------??----------?-----??----
????????????????13789????????????????????4
- 上一篇:U8數據字典
- 下一篇:有向圖的全部拓撲序列(回溯法)
評論
共有 條評論