打印
[活动专区]

【N32G430开发板试用】+ DS18B20温度显示

[复制链接]
533|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 小涛DZGZS 于 2022-8-19 23:33 编辑

@安小芯
由于最近有点忙一直没时间测试板子,这几天挤了挤时间测试了一下G430,本来想用硬件IIC测试无奈硬件似乎有点繁琐一时间没看懂例程,索性软件模拟吧。
硬件电路介绍
三位数码管电路:

找了一块N年前画的数码管显示小板子,SDA连接到PB11,SCL连接到PB10。
DS18B20电路:

温度传感器飞线一个。

实物图:
功能演示:


main.c
#include "main.h"
#include "TM1650.h"
#include "bsp_delay.h"
#include "bsp_ds18b20.h"

float temperature;
uint8_t a;
/**
*\*\name   main.
*\*\fun    main function.
*\*\param  none.
*\*\return none.
**/
int main(void)
{
    TM1650_Init();          //初始化数码管
    TM1650_WriteComm(5,1);  //设置亮度5级,开显示
   
    DS18B20_Init();         //初始化温度传感器
    while(1)
    {
        temperature = DS18B20_GetTemp_SkipRom() * 10; //温度值放大10倍
        TM1650_Display((uint8_t)temperature);   //取整数部分显示
        SysTick_Delay_Ms(1000);
    }
}


数码管驱动.h部分(下面有工程文件包)
#ifndef __TM1650_H__
#define __TM1650_H__

#include "n32g430.h"

#define      SDA_GPIO_CLK                                RCC_AHB_PERIPH_GPIOB
#define      SDA_GPIO_PORT                                GPIOB
#define      SDA_GPIO_PIN                                 GPIO_PIN_11

#define      SCL_GPIO_CLK                                RCC_AHB_PERIPH_GPIOB
#define      SCL_GPIO_PORT                                GPIOB
#define      SCL_GPIO_PIN                                 GPIO_PIN_10

#define SCL_H GPIO_Pins_Set(SCL_GPIO_PORT, SCL_GPIO_PIN)
#define SDA_H GPIO_Pins_Set(SDA_GPIO_PORT, SDA_GPIO_PIN)

#define SCL_L GPIO_Pins_Reset(SCL_GPIO_PORT, SCL_GPIO_PIN)
#define SDA_L GPIO_Pins_Reset(SDA_GPIO_PORT, SDA_GPIO_PIN)

#define SDA_DI GPIO_Input_Pin_Data_Get(SDA_GPIO_PORT, SDA_GPIO_PIN)


void TM1650_Init(void);
// void TM1650_OUT();
// void TM1650_IN();
// void TM1650_START();
// void TM1650_ACK();
// void TM1650_STOP();
// void TM1650_WriteOne(uint8_t Data);
// uint8_t TM1650_ReadOne();
// void TM1650_WriteComm(uint8_t Light, uint8_t Show);
// void TM1650_WriteData(uint8_t address,uint8_t data);
void TM1650_Display(uint8_t data);

#endif


温度传感器驱动.h部分(下面有工程文件包)
#ifndef __DS18B20_H
#define __DS18B20_H

#include "n32g430.h"

/************************** DS18B20 连接引脚定义********************************/
#define      DS18B20_DQ_GPIO_CLK                                RCC_AHB_PERIPH_GPIOB
#define      DS18B20_DQ_GPIO_PORT                                GPIOB
#define      DS18B20_DQ_GPIO_PIN                                 GPIO_PIN_13



/************************** DS18B20 函数宏定义********************************/
#define      DS18B20_DQ_0                                                GPIO_Pins_Reset ( DS18B20_DQ_GPIO_PORT, DS18B20_DQ_GPIO_PIN )
#define      DS18B20_DQ_1                                                GPIO_Pins_Set ( DS18B20_DQ_GPIO_PORT, DS18B20_DQ_GPIO_PIN )

#define      DS18B20_DQ_IN()                                        GPIO_Input_Pin_Data_Get ( DS18B20_DQ_GPIO_PORT, DS18B20_DQ_GPIO_PIN )

/************************** DS18B20 函数声明 ********************************/
void DS18B20_Init(void);
void DS18B20_ReadId(uint8_t *ds18b20_id);
float DS18B20_GetTemp_SkipRom(void);
float DS18B20_GetTemp_MatchRom(uint8_t *ds18b20_id);

void DS18B20_Rst(void);
uint8_t DS18B20_ReadByte(void);
void DS18B20_WriteByte(uint8_t dat);

#endif


代码开源 工程文件
数码管温度显示源码.zip (477.98 KB)




使用特权

评论回复
沙发
sanfuzi| | 2022-11-5 11:25 | 只看该作者
DS18B20怎么做精准的延时?

使用特权

评论回复
板凳
linfelix| | 2022-11-5 11:42 | 只看该作者
能不能通过定时器配置延时函数呢?

使用特权

评论回复
地板
mollylawrence| | 2022-11-5 11:59 | 只看该作者
DS18B20可以识别多个传感器的吗?

使用特权

评论回复
5
sheflynn| | 2023-4-15 19:55 | 只看该作者
单片机如何与多个DS18B20连接

使用特权

评论回复
6
eefas| | 2023-4-15 22:26 | 只看该作者
DS18B20温度传感器与单片机间的通信线可以多长

使用特权

评论回复
7
everyrobin| | 2023-4-16 22:12 | 只看该作者
DS18B20温度传感器如何与单片机相连接

使用特权

评论回复
8
tifmill| | 2023-4-16 22:32 | 只看该作者
ds18b20为什么要加10k上拉电阻

使用特权

评论回复
9
robincotton| | 2023-4-16 22:38 | 只看该作者
DS18B20的耐电压是多少伏

使用特权

评论回复
10
wwppd| | 2023-4-16 22:56 | 只看该作者
DS18B20芯片功耗是多少  

使用特权

评论回复
11
fengm| | 2023-4-18 10:32 | 只看该作者
若采用多点测温,单片机如何识别ds18b20?

使用特权

评论回复
12
wangdezhi| | 2023-4-18 10:43 | 只看该作者
ds18b20 如何读取数据?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

239

帖子

2

粉丝