找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2757|回复: 2
收起左侧

BMP180+DS18b20+0.96液晶+1.9寸TFT stm32源码

[复制链接]
ID:246275 发表于 2018-4-17 15:38 | 显示全部楼层 |阅读模式
STM32+BMP180+DS18b20+0.96液晶+1.9寸TFT

单片机源程序如下:
  1. //=============================================================================
  2. //文件名称:main.h
  3. //功能概要:STM32F103C8核心检测
  4. //调试方式:J-Link OB ARM SW方式 5MHz
  5. //=============================================================================

  6. //头文件
  7. #include "headfile.h"
  8. float tem;        
  9. unsigned int tempr,tempL=0,tempH=0;//设全局变量         
  10. unsigned int bmp,bmt,bm_ph,bm_pl,bm_th,bm_tl;//设全局变量  
  11. unsigned int sm_sc;                  
  12. unsigned int tt1=0;
  13. //=============================================================================
  14. //文件名称:main
  15. //功能概要:主函数
  16. //参数说明:无
  17. //函数返回:int
  18. //=============================================================================
  19. void display(void)
  20. {
  21.         int i;
  22.         for(i=0;i<6;i++)
  23.         {
  24.                 OLED_ShowCN(i*16,0,i);//测试显示中文
  25.         }
  26.         for(i=0;i<3;i++)
  27.         {
  28.                 OLED_ShowCN1(i*16,2,i);//测试显示中文
  29.         }
  30.         disp_uint(40,2,tempH);
  31.         OLED_ShowStr(65,2,".",2);
  32.         disp_uint(70,2,tempL);
  33.         OLED_ShowStr(95,2,"C",2);
  34.         for(i=4;i<7;i++)
  35.         {
  36.                 OLED_ShowCN3((i-4)*16,4,i);//测试显示中文
  37.         }
  38.         disp_uint(40,4,bm_th);
  39.         OLED_ShowStr(65,4,".",2);
  40.         disp_uint(70,4,bm_tl*100);
  41.         OLED_ShowStr(95,4,"C",2);        
  42.         for(i=0;i<4;i++)
  43.         {
  44.                 OLED_ShowCN3(i*16,6,i);//测试显示中文
  45.         }
  46.         disp_uint(55,6,bm_ph);
  47.         OLED_ShowStr(80,6,".",2);
  48.         disp_uint(84,6,bm_pl);
  49.         OLED_ShowStr(109,6,"KP",2);

  50. }
  51. void usart_data()
  52. {
  53.                 UART_PutStr (USART2, "温度:");
  54.                 UART_PutChar(USART2,tempH/10+'0');
  55.                 UART_PutChar(USART2,tempH%10+'0');
  56.                 UART_PutChar(USART2,'.');
  57.                 UART_PutChar(USART2,tempL/10/10+'0');   
  58.                 UART_PutChar(USART2,tempL/10%10+'0');         
  59. }
  60. int main(void)
  61. {

  62.     DelayInit();
  63.         I2C_Configuration();
  64.         OLED_Init();
  65.         //Lcd_Init();
  66.         Adc_Init();
  67.         Init_BMP085();
  68.         uart_init(9600);
  69.         Timerx_Init(50000,7200);// 设定5分钟   //10Khz的计数频率,计数到5000为500ms                  
  70. //        while(DS18B20_Init());
  71.     SysTick_Init();        
  72.          OLED_CLS();//清屏   
  73.         while(1)
  74.         {        
  75.         //        tem=DS18B20_Get_Temp();
  76.         //        bmp085Convert();
  77.                 tempr=(unsigned int)(tem*100);
  78.                 tempH=tempr/100;
  79.                 tempL=tempr%100*10;
  80.                 display();
  81.                 tt1++;
  82.                 bmp= (unsigned int)result_UP;
  83. ……………………

  84. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
BMP180+DS18b20+0.96液晶+1.9寸TFT.rar (398.91 KB, 下载次数: 73)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:371423 发表于 2018-11-2 09:33 | 显示全部楼层
你好,请问一下,BMP180的负温度测量应该怎么设置?网上很多例程都是直接设置一个长整型long的温度值,然后按位取出进行显示,那要是想显示零下的温度,应该怎么设置呢?
回复

使用道具 举报

ID:246275 发表于 2019-3-8 12:21 | 显示全部楼层
NPC-1024 发表于 2018-11-2 09:33
你好,请问一下,BMP180的负温度测量应该怎么设置?网上很多例程都是直接设置一个长整型long的温度值,然后 ...

我是测得常规温度 负温度读取出来应该是用一个标志位判定,具体我没研究过
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表