• 大小: 4KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-26
  • 语言: 其他
  • 标签: MS5611  SPI  STM32F4xx  

资源简介

基于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


评论

共有 条评论