• 方案介紹
  • 附件下載
  • 推薦器件
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

基于STM32單片機(jī)的BMP180氣壓傳感器數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)proteus仿真

2024/07/05
3455
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

設(shè)計(jì)資料獲取聯(lián)系方式.doc

共1個(gè)文件

本設(shè)計(jì):
Proteus仿真版本:proteus 8.9
程序編譯器:keil 5
編程語言:C語言
編號(hào)C0026
騰訊文檔】C0026 網(wǎng)盤鏈接

視頻演示:

STM32

設(shè)計(jì)說明:
通過STM32讀取BMP180輸出的數(shù)據(jù)通過串口及LCD顯示屏,將高度,溫度大氣壓強(qiáng)信息顯示出來。
注:仿真效果有些許誤差,不能100%還原傳感器,誤差大概1%

仿真圖(提供源文件):
在這里插入圖片描述

源程序(提供源文件):
在這里插入圖片描述

#include “main.h”
#include “stm32f1xx.h”
#include “./usart/bsp_debug_usart.h”
#include “./led/bsp_led.h”
#include “./i2c/bsp_i2c_ee.h”
#include “BMP180.h”
#include “LCD.h”
#include “math.h”
uint8_t cal_flag = 0;
uint8_t k;
typedef uint32_t u32;
typedef uint16_t u16;
typedef uint8_t u8;
/存儲(chǔ)小數(shù)和整數(shù)的數(shù)組,各7個(gè)/
long double double_buffer[7] = {0};
int int_bufffer[7] = {0};

#define DOUBLE_ADDR 10
#define LONGINT_ADDR 70

/**

  • @brief 主函數(shù)
  • @param 無
  • @retval 無
    /
    int main(void)
    {
    char str[80];
    extern long result_UT;
    extern long result_UP;
    u32 result_UPP,temp;
    float altitude;
    HAL_Init();
    /
    配置系統(tǒng)時(shí)鐘為72 MHz */
    SystemClock_Config();

/初始化USART 配置模式為 115200 8-N-1,中斷接收/
DEBUG_USART_Config();

printf("rn 這是一個(gè)EEPROM 讀寫小數(shù)和長整數(shù)實(shí)驗(yàn) rn");

//LCD1602_GPIO_Config(); //開啟GPIO口
HAL_Delay(10); //延時(shí)一段時(shí)間
/* I2C 外設(shè)初(AT24C02)始化 */
i2c_CfgGpio();
Init_BMP180(); //初始化bmp180
LCD_init();
HAL_Delay(10);
while (1)
{

/讀取數(shù)據(jù)標(biāo)志位/
bmp180Convert();//添加報(bào)警 氣壓過低時(shí)候 高原地區(qū)氣壓低于600mmhg,而1mmhg=133.3p。所以為80000p
altitude=44330.0*(1-pow((float)result_UP/101325,1/5.255)); //計(jì)算高度
// OLED_ShowNum(77,32,altitude,4,12);
result_UPP=result_UP/100;
printf(“大氣壓強(qiáng) %d.%d 帕rn”,result_UPP,result_UP%100);
result_UPP=altitude;
printf(" 高度%d mrn",result_UPP);
sprintf(str, “%dM %d.%dPa”,result_UPP ,result_UP/100,result_UP%100);
LCD_write_string(1, 0, (char )str);
// OLED_ShowNum(77,52,(u8)(result_UT
0.1),4,12); //顯示溫度整數(shù)部分 因?yàn)闇y量值例如為245沒有小數(shù)點(diǎn)… //可以加一個(gè)判斷 報(bào)警
temp=result_UT; //計(jì)算小數(shù)部分
printf(“溫度 %d.%d 攝氏度rn”,temp/10,temp%10);
sprintf(str, " %d.%d C",temp/10 ,temp%10);
LCD_write_string(1, 1, (char *)str);
HAL_Delay(1000);

}
}
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_ClkInitTypeDef RCC_ClkInitStruct;
RCC_PeriphCLKInitTypeDef PeriphClkInit;
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.HSICalibrationValue = 16;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
{
// Error_Handler();
}
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;

if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
{
// Error_Handler();
}

PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC;
PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV2;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
{
// Error_Handler();
}

/**Configure the Systick interrupt time 
*/

HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);

/**Configure the Systick 
*/

HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);

/* SysTick_IRQn interrupt configuration */
HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
}

內(nèi)容如下:

在這里插入圖片描述

  • 設(shè)計(jì)資料獲取聯(lián)系方式.doc
    下載

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
FT232RL-REEL 1 FTDI Chip USB Bus Controller, CMOS, PDSO28, 10.20 X 5.30 MM, GREEN, SSOP-28

ECAD模型

下載ECAD模型
$4.79 查看
CP2102N-A02-GQFN28R 1 Silicon Laboratories Inc USB Bus Controller, CMOS, QFN-28

ECAD模型

下載ECAD模型
$2.5 查看
ATMEGA1284P-AU 1 Atmel Corporation RISC Microcontroller, 8-Bit, FLASH, AVR RISC CPU, 20MHz, CMOS, PQFP44, 10 X 10 MM, 1 MM HEIGHT, 0.80 MM PITCH, GREEN, PLASTIC, MS-026ACB, TQFP-44

ECAD模型

下載ECAD模型
$5.69 查看
意法半導(dǎo)體

意法半導(dǎo)體

意法半導(dǎo)體(ST)集團(tuán)于1987年6月成立,是由意大利的SGS微電子公司和法國Thomson半導(dǎo)體公司合并而成。1998年5月,SGS-THOMSON Microelectronics將公司名稱改為意法半導(dǎo)體有限公司。意法半導(dǎo)體是世界最大的半導(dǎo)體公司之一,公司銷售收入在半導(dǎo)體工業(yè)五大高速增長市場之間分布均衡(五大市場占2007年銷售收入的百分比):通信(35%),消費(fèi)(17%),計(jì)算機(jī)(16%),汽車(16%),工業(yè)(16%)。 據(jù)最新的工業(yè)統(tǒng)計(jì)數(shù)據(jù),意法半導(dǎo)體是全球第五大半導(dǎo)體廠商,在很多市場居世界領(lǐng)先水平。例如,意法半導(dǎo)體是世界第一大專用模擬芯片和電源轉(zhuǎn)換芯片制造商,世界第一大工業(yè)半導(dǎo)體和機(jī)頂盒芯片供應(yīng)商,而且在分立器件、手機(jī)相機(jī)模塊和車用集成電路領(lǐng)域居世界前列.

意法半導(dǎo)體(ST)集團(tuán)于1987年6月成立,是由意大利的SGS微電子公司和法國Thomson半導(dǎo)體公司合并而成。1998年5月,SGS-THOMSON Microelectronics將公司名稱改為意法半導(dǎo)體有限公司。意法半導(dǎo)體是世界最大的半導(dǎo)體公司之一,公司銷售收入在半導(dǎo)體工業(yè)五大高速增長市場之間分布均衡(五大市場占2007年銷售收入的百分比):通信(35%),消費(fèi)(17%),計(jì)算機(jī)(16%),汽車(16%),工業(yè)(16%)。 據(jù)最新的工業(yè)統(tǒng)計(jì)數(shù)據(jù),意法半導(dǎo)體是全球第五大半導(dǎo)體廠商,在很多市場居世界領(lǐng)先水平。例如,意法半導(dǎo)體是世界第一大專用模擬芯片和電源轉(zhuǎn)換芯片制造商,世界第一大工業(yè)半導(dǎo)體和機(jī)頂盒芯片供應(yīng)商,而且在分立器件、手機(jī)相機(jī)模塊和車用集成電路領(lǐng)域居世界前列.收起

查看更多

相關(guān)推薦

方案定制

去合作
方案開發(fā)定制化,2000+方案商即時(shí)響應(yīng)!