[活动专区] 【N32G430开发板试用】+ DS18B20温度显示

[复制链接]
 楼主| 小涛DZGZS 发表于 2022-8-19 23:31 | 显示全部楼层 |阅读模式
<
本帖最后由 小涛DZGZS 于 2022-8-19 23:33 编辑

@安小芯
由于最近有点忙一直没时间测试板子,这几天挤了挤时间测试了一下G430,本来想用硬件IIC测试无奈硬件似乎有点繁琐一时间没看懂例程,索性软件模拟吧。
硬件电路介绍
三位数码管电路:
数码管电路.png
找了一块N年前画的数码管显示小板子,SDA连接到PB11,SCL连接到PB10。
DS18B20电路:
DS18B20电路.png
温度传感器飞线一个。

实物图:
实物图正面.png 实物图反面.png 功能演示:
功能演示.gif

main.c
  1. #include "main.h"
  2. #include "TM1650.h"
  3. #include "bsp_delay.h"
  4. #include "bsp_ds18b20.h"

  5. float temperature;
  6. uint8_t a;
  7. /**
  8. *\*\name   main.
  9. *\*\fun    main function.
  10. *\*\param  none.
  11. *\*\return none.
  12. **/
  13. int main(void)
  14. {
  15.     TM1650_Init();          //初始化数码管
  16.     TM1650_WriteComm(5,1);  //设置亮度5级,开显示
  17.    
  18.     DS18B20_Init();         //初始化温度传感器
  19.     while(1)
  20.     {
  21.         temperature = DS18B20_GetTemp_SkipRom() * 10; //温度值放大10倍
  22.         TM1650_Display((uint8_t)temperature);   //取整数部分显示
  23.         SysTick_Delay_Ms(1000);
  24.     }
  25. }


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

  3. #include "n32g430.h"

  4. #define      SDA_GPIO_CLK                                RCC_AHB_PERIPH_GPIOB
  5. #define      SDA_GPIO_PORT                                GPIOB
  6. #define      SDA_GPIO_PIN                                 GPIO_PIN_11

  7. #define      SCL_GPIO_CLK                                RCC_AHB_PERIPH_GPIOB
  8. #define      SCL_GPIO_PORT                                GPIOB
  9. #define      SCL_GPIO_PIN                                 GPIO_PIN_10

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

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

  14. #define SDA_DI GPIO_Input_Pin_Data_Get(SDA_GPIO_PORT, SDA_GPIO_PIN)


  15. void TM1650_Init(void);
  16. // void TM1650_OUT();
  17. // void TM1650_IN();
  18. // void TM1650_START();
  19. // void TM1650_ACK();
  20. // void TM1650_STOP();
  21. // void TM1650_WriteOne(uint8_t Data);
  22. // uint8_t TM1650_ReadOne();
  23. // void TM1650_WriteComm(uint8_t Light, uint8_t Show);
  24. // void TM1650_WriteData(uint8_t address,uint8_t data);
  25. void TM1650_Display(uint8_t data);

  26. #endif


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

  3. #include "n32g430.h"

  4. /************************** DS18B20 连接引脚定义********************************/
  5. #define      DS18B20_DQ_GPIO_CLK                                RCC_AHB_PERIPH_GPIOB
  6. #define      DS18B20_DQ_GPIO_PORT                                GPIOB
  7. #define      DS18B20_DQ_GPIO_PIN                                 GPIO_PIN_13



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

  11. #define      DS18B20_DQ_IN()                                        GPIO_Input_Pin_Data_Get ( DS18B20_DQ_GPIO_PORT, DS18B20_DQ_GPIO_PIN )

  12. /************************** DS18B20 函数声明 ********************************/
  13. void DS18B20_Init(void);
  14. void DS18B20_ReadId(uint8_t *ds18b20_id);
  15. float DS18B20_GetTemp_SkipRom(void);
  16. float DS18B20_GetTemp_MatchRom(uint8_t *ds18b20_id);

  17. void DS18B20_Rst(void);
  18. uint8_t DS18B20_ReadByte(void);
  19. void DS18B20_WriteByte(uint8_t dat);

  20. #endif


代码开源 工程文件
数码管温度显示源码.zip (477.98 KB, 下载次数: 22)




sanfuzi 发表于 2022-11-5 11:25 | 显示全部楼层
DS18B20怎么做精准的延时?
linfelix 发表于 2022-11-5 11:42 | 显示全部楼层
能不能通过定时器配置延时函数呢?
mollylawrence 发表于 2022-11-5 11:59 | 显示全部楼层
DS18B20可以识别多个传感器的吗?
sheflynn 发表于 2023-4-15 19:55 | 显示全部楼层
单片机如何与多个DS18B20连接
eefas 发表于 2023-4-15 22:26 | 显示全部楼层
DS18B20温度传感器与单片机间的通信线可以多长
everyrobin 发表于 2023-4-16 22:12 | 显示全部楼层
DS18B20温度传感器如何与单片机相连接
tifmill 发表于 2023-4-16 22:32 | 显示全部楼层
ds18b20为什么要加10k上拉电阻
robincotton 发表于 2023-4-16 22:38 | 显示全部楼层
DS18B20的耐电压是多少伏
wwppd 发表于 2023-4-16 22:56 | 显示全部楼层
DS18B20芯片功耗是多少  
fengm 发表于 2023-4-18 10:32 | 显示全部楼层
若采用多点测温,单片机如何识别ds18b20?
wangdezhi 发表于 2023-4-18 10:43 | 显示全部楼层
ds18b20 如何读取数据?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

272

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

12

主题

272

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部