不知道为为什么,3个BMP读取的值都不一样,我觉得应该是硬件问题!
1.调试程序时,可以在不同地方设置printf();看运行状况;
2.
/*s32—int32_t
*u32 —uint32_t
*
运行结果:
压强:南京这边是101200pa
温度:2772,代表是27.72C
//PA6----SCL
//PA7---SDA
/*s32---int32_t
*u32 ---uint32_t
*
*
#include "sys.h"
#include "usart.h
#include "bmpiic.h"
#include "bm280.h"
int main(void)
{
s32 bmp280_temp;
u32 bmp280_press;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(9600); //串口初始化为500000
delay_init(); //延时初始化
BMP280_Init();
while(1)
{
BMP280_ReadPressureTemperature(&bmp280_press,&bmp280_temp); //bmp280获取气压值和温度
printf("\r\nTemperatureU %u C PressureU %u Pa",bmp280_temp,bmp280_press);
printf("\r\nTemperatureD %d C PressureD %u Pa",bmp280_temp,bmp280_press);
delay_ms(1000);
}
}
运行结果:
压强:南京这边是101200pa
温度:2772,代表是27.72C
链接:https://pan.baidu.com/s/19RWZ6nZxWWw2dUhPZf8zJA
提取码:kbl7