【TB作品】MSP430单片机读取大气压强传感器BMP180

文章目录

实物

main

csharp 复制代码
#include <msp430.h>
#include "stdio.h"
#include "OLED.h"

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

// P2.2 oled scl
// P2.3 oled sda

// p1.0 bmp180 scl
// p1.1 bmp180 sda
// vcc 3.3v
// gnd gnd

#include "bmp180.h"

unsigned char disp[16];
unsigned char cnt = 0;


int main(void) {
    uchar test = 0;
    WDTCTL = WDTPW + WDTHOLD;
    if (CALBC1_8MHZ == 0xFF) {
        while (1);
    }
    DCOCTL = 0;
    BCSCTL1 = CALBC1_8MHZ;
    DCOCTL = CALDCO_8MHZ;


    OLED_Init();

    delay_ms(400);

    OLED_Init();

    BMP085_IIC_IOinit;
    delay_ms(50);                           //上电延时
    Init_BMP085();                //初始化BMP085

    test = Single_Read(0xd0);

    _EINT();
    while (1) {
        bmp085Convert();
        OLED_ShowString(0, 0, "BMP180:", 0);
        if (temperature >= 0) { //不满足这个条件的话,说明是负数,有可能是干扰
            cnt = 0;
            disp[cnt++] = temperature % 1000000 / 100000 + '0';
            disp[cnt++] = temperature % 100000 / 10000 + '0';
            disp[cnt++] = temperature % 10000 / 1000 + '0';
            disp[cnt++] = temperature % 1000 / 100 + '0';
            disp[cnt++] = temperature % 100 / 10 + '0';
            disp[cnt++] = temperature % 10 + '0';
            disp[cnt++] = 'C';
            disp[cnt++] = 0;
            OLED_ShowString(0, 2, disp, 0);
            cnt = 0;
            disp[cnt++] = pressure % 10000000 / 1000000 + '0';
            disp[cnt++] = pressure % 1000000 / 100000 + '0';
            disp[cnt++] = pressure % 100000 / 10000 + '0';
            disp[cnt++] = pressure % 10000 / 1000 + '0';
            disp[cnt++] = pressure % 1000 / 100 + '0';
            disp[cnt++] = pressure % 100 / 10 + '0';
            disp[cnt++] = pressure % 10 + '0';
            disp[cnt++] = 'P';
            disp[cnt++] = 'a';
            disp[cnt++] = 0;
            OLED_ShowString(0, 4, disp, 0);
        }
        delay_ms(200);
        delay_ms(200);
        delay_ms(200);
        delay_ms(200);
        delay_ms(200);
    }
}

所有代码

这里获取:

csharp 复制代码
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
相关推荐
少年、潜行3 小时前
【开源】基于51单片机的温湿度检测报警系统
单片机·嵌入式硬件·51单片机
时光飞逝的日子5 小时前
stm32进入睡眠模式的几个注意点
stm32·单片机·嵌入式硬件
落雨封海9 小时前
【1】GD32 系统架构、内核、中断系统、存储器系统
单片机·gd32
weixin_4629019710 小时前
STM32F103C8T6裸机多任务编程的问题
stm32·单片机·嵌入式硬件
小智学长 | 嵌入式15 小时前
单片机-89C51部分:4、固件烧录
c语言·单片机·嵌入式硬件
时之彼岸Φ16 小时前
Adruino:传感器及步进电机
单片机·嵌入式硬件
少年、潜行16 小时前
【开源】基于51单片机的简易智能楼道照明设计
单片机·嵌入式硬件·51单片机
子朔不言17 小时前
MH2103 MH22D3系列的JTAG/SWD复用功能和引脚映射,IO初始化的关键点
单片机·mcu·mh2103·mh22d3·新龙微·兆讯
国科安芯17 小时前
基于先进MCU的机器人运动控制系统设计:理论、实践与前沿技术
人工智能·单片机·机器人
honey ball17 小时前
为啥低速MCU单板辐射测试会有200M-1Ghz的辐射信号
单片机·嵌入式硬件