本文主要是介绍【TB作品】MSP430单片机读取大气压强传感器BMP180,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 实物
- main
- 所有代码
实物
main
#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(); //初始化BMP085test = 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);}
}
所有代码
这里获取:
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
这篇关于【TB作品】MSP430单片机读取大气压强传感器BMP180的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!