注册/登录
论坛 > 板卡试用区
发帖|
看3248|回4|收藏
TLLED 看全部
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   










stary666 看全部
2018-11-15 12:51:40
看看 logo.png
stary666 看全部
2018-11-15 12:52:08
不错
wudianjun2001 看全部
2018-11-15 13:21:06
不错,不错。。。。
leo121_3006061 看全部
2018-11-16 12:17:16
谢谢分享

罗姆半导体技术社区

Powered by Discuz! X3.4

首页|标准版|触屏版|电脑版