用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, 下載次數: 41)
2018-6-10 01:33 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|