用bmp180数字高度计的制作
单片机源程序如下:
- #include "delay.h"
- #include "sys.h"
- #include "usart.h"
- #include "bmp180.h"
- #include "tftlcd.h"
-
- //要写入到24c02的字符串数组
- const u8 TEXT_Buffer[]={"WarShipSTM32 IIC TEST"};
- #define SIZE sizeof(TEXT_Buffer)
-
- int main(void)
- {
- u8 ID = 0;
- unsigned char lcd_buff1[20];
- unsigned char lcd_buff2[20];
- unsigned char lcd_buff3[20];
- delay_init(); //延时函数初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
- uart_init(115200); //串口初始化为115200
- //LED_Init(); //初始化与LED连接的硬件接口
-
- BMP_Init();
- BMP_ReadCalibrationData();
-
- TFTLCD_Init();
- FRONT_COLOR=BLACK;
- LCD_ShowFontHZ(42, 50,"数字高度计");
- LCD_ShowFontHZ(10, 140,"温度");
- LCD_ShowFontHZ(10, 200,"气压");
- LCD_ShowFontHZ(10, 260,"海拔");
- LCD_ShowString(35 ,350,tftlcd_data.width,tftlcd_data.height,24,"1528401001 2 3");
- while(1)
- {
- ID = BMP_ReadOneByte(0xd0);
- BMP_UncompemstatedToTrue();
- printf("ID = %d\t temp = %d.%dC\t Pressure = %ldPa\t Altitude = %.3fm\r\n",ID,bmp180.Temp/10,bmp180.Temp%10,bmp180.p,bmp180.altitude);
- sprintf((char*)lcd_buff1,"%d.%d C",bmp180.Temp/10,bmp180.Temp%10);
- sprintf((char*)lcd_buff2,"%ld Pa",bmp180.p);
- sprintf((char*)lcd_buff3,"%.1f m",bmp180.altitude);
- LCD_ShowString(100 ,142,tftlcd_data.width,tftlcd_data.height,24,lcd_buff1);
- LCD_ShowString(100 ,202,tftlcd_data.width,tftlcd_data.height,24,lcd_buff2);
- LCD_ShowString(100 ,262,tftlcd_data.width,tftlcd_data.height,24,lcd_buff3);
- delay_ms(1000);
- }
- }
复制代码
所有资料51hei提供下载:
BMP180测试.rar
(331.95 KB, 下载次数: 38)
|