【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
相关推荐
Zwawa15 小时前
屏幕不止一种:OLED、LCD1602字符屏、TFT/IPS图形屏和串口屏怎么用,这与TTY和PTY又有什么关系
c语言·单片机·嵌入式
无敌贵点大王19 小时前
从寄存器层面重学STM32(7)——定时器
stm32·单片机·嵌入式硬件
wuyk5551 天前
Keil工具链-第05讲-启动文件与__main到底做了什么
c语言·stm32·单片机·嵌入式硬件·物联网
不脱发的程序猿2 天前
GD32串口数据收进内存之后DMA如何处理?
单片机·嵌入式硬件·dma·嵌入式·串口通信·gd32
国科安芯3 天前
83 倍:ASC0108S 在推挽和开漏之间,差的不是速度,是回程
单片机·嵌入式硬件·架构·电平转换·抗辐射
国科安芯3 天前
从遥控到自治:ASP4644S2B支撑星载电源健康管理与容错配电
网络·单片机·嵌入式硬件·安全·dcdc·低轨卫星·商业航天
rhythm-ring3 天前
《汽车热管理系统:电子水泵单线PWM双向诊断机制》
单片机·嵌入式硬件·汽车
Dev_XH3 天前
【成品设计】基于物联网的车间安全生产监控系统设计
stm32·单片机·嵌入式硬件·物联网
xiebs_3 天前
【无标题】111
单片机
元器件BOM超人3 天前
GD32E230C8T6 兆易创新Cortex-M23超值型MCU解析:规格参数、替代选型与常见问题
单片机·嵌入式硬件