注册/登录
论坛
>
板卡试用区
发帖
|
[传感器大派送]+ 2、温度传感器测试
看3248
|
回4
|
收藏
TLLED
看全部
2018-11-15 11:27:31
使用STM32来驱动温度传感器BD1020HFV,通过串口将采集温度的数值,电压值和转换的温度值输出
一、硬件电路
1.1、BD1020HFV手册引脚定义
1.2、模块引脚定义
1.3、引脚连接
pin1 -- 3.3V pin2 -- GND pin3 -- PA1(stm32)
1.4、硬件连接图
模块焊接的引脚有点细,焊接个转接头
二、软件部分
主程序:
代码:
<font size="3">#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "adc.h"
int main(void)
{
u8 t;
u8 len;
u16 times=0;
u16 adc_val=0;
double f=0;
double adc_v1=0;
double temperature_i=0;
double temperature_i1=0;
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
uart_init(9600); //串口初始化为9600
//LED_Init(); //初始化与LED连接的硬件接口
Adc_Init(); //ADC初始化
while(1)
{
adc_val=Get_Adc(ADC_Channel_1);
adc_v1=adc_val;
f=(adc_v1/4096)*3.3; //采样的电压值
temperature_i=f/0.043;
if(f>=1.3)
{
temperature_i1= (f-1.3)/0.0075; //大于30为负温度
if(temperature_i1>30) //负温度
{
temperature_i=temperature_i1-30;
}
else
{
temperature_i=30-temperature_i1;
}
}
else
{
temperature_i1= (1.3-f)/0.0075;
temperature_i=30+temperature_i1;
}
printf("adc_val =%x ",adc_val);
printf("adc_v =%1.2f ",f);
printf("temperature=%3.1f\r\n",temperature_i);
delay_ms(500);
}
}</font>
三、程序执行结果
串口输出数据
阅读全文
stary666
看全部
2018-11-15 12:51:40
看看
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
首页
|
标准版
|
触屏版
|
电脑版