请选择 进入手机版 | 继续访问电脑版
搜索
热搜: ROHM 模拟 车载
查看: 2848|回复: 4

[传感器大派送]+ 2、温度传感器测试

  [复制链接]

该用户从未签到

21

主题

382

帖子

0

精华

金牌会员

最后登录
2023-8-17
发表于 2018-11-15 11:27:31 | 显示全部楼层 |阅读模式
    使用STM32来驱动温度传感器BD1020HFV,通过串口将采集温度的数值,电压值和转换的温度值输出


    一、硬件电路


        1.1、BD1020HFV手册引脚定义
         1.png
        1.2、模块引脚定义
         2.png
        1.3、引脚连接
        pin1 -- 3.3V     pin2 -- GND   pin3 -- PA1(stm32)


        1.4、硬件连接图
        模块焊接的引脚有点细,焊接个转接头
         201.jpg
         202.jpg





    二、软件部分
   
        主程序:
  1. <font size="3">#include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "usart.h"
  5. #include "adc.h"

  6. int main(void)
  7. {        
  8.         u8 t;
  9.         u8 len;        
  10.         u16 times=0;
  11.         u16 adc_val=0;
  12.         double f=0;
  13.         double adc_v1=0;
  14.         double temperature_i=0;
  15.         double temperature_i1=0;

  16.         delay_init();                     //延时函数初始化        
  17.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
  18.         uart_init(9600);         //串口初始化为9600
  19.         //LED_Init();                           //初始化与LED连接的硬件接口
  20.         Adc_Init();                                  //ADC初始化
  21.          
  22.         while(1)
  23.         {
  24.                 adc_val=Get_Adc(ADC_Channel_1);
  25.                 adc_v1=adc_val;
  26.                 f=(adc_v1/4096)*3.3;                        //采样的电压值
  27.                 temperature_i=f/0.043;
  28.                
  29.                 if(f>=1.3)
  30.                 {
  31.                                 temperature_i1= (f-1.3)/0.0075;                                          //大于30为负温度
  32.                                 if(temperature_i1>30)                                                                                        //负温度
  33.                                 {
  34.                                                 temperature_i=temperature_i1-30;                        
  35.                                 }
  36.                                 else
  37.                                 {
  38.                                                 temperature_i=30-temperature_i1;
  39.                                 }
  40.                 }
  41.                 else
  42.                 {
  43.                         temperature_i1= (1.3-f)/0.0075;                                                         
  44.                         temperature_i=30+temperature_i1;
  45.                 }
  46.                 printf("adc_val =%x          ",adc_val);
  47.                 printf("adc_v =%1.2f         ",f);
  48.                 printf("temperature=%3.1f\r\n",temperature_i);
  49.                 delay_ms(500);
  50.         }         
  51. }</font>
复制代码



    三、程序执行结果
        串口输出数据
    3.png   










回复

使用道具 举报

该用户从未签到

205

主题

1万

帖子

0

精华

论坛元老

最后登录
2023-6-10
发表于 2018-11-15 12:51:40 | 显示全部楼层
看看 logo.png
回复 支持 反对

使用道具 举报

该用户从未签到

205

主题

1万

帖子

0

精华

论坛元老

最后登录
2023-6-10
发表于 2018-11-15 12:52:08 | 显示全部楼层
不错
回复

使用道具 举报

该用户从未签到

2248

主题

1万

帖子

1

精华

论坛元老

最后登录
2024-3-28
发表于 2018-11-15 13:21:06 | 显示全部楼层
不错,不错。。。。
回复

使用道具 举报

该用户从未签到

5

主题

204

帖子

2

精华

金牌会员

最后登录
2022-3-25
发表于 2018-11-16 12:17:16 | 显示全部楼层
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条

Archiver|手机版|小黑屋|罗姆半导体技术社区

GMT+8, 2024-3-28 23:10 , Processed in 0.107847 second(s), 17 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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