Advertisement

DS18B20温度传感器与STM32F103/F407/F767/F743单片机DEMO软件及源码合集.zip

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本资源包包含DS18B20温度传感器与STM32不同型号(F103、F407、F767、F743)单片机构成的开发演示程序和完整源代码,适合嵌入式系统学习者使用。 DS18B20温度传感器与STM32F103、F407、F767及F743单片机的DEMO软件例程源码合集包括了详细的文档,如《DS18B20.pdf》和《DS18B20与STM32系列开发板引脚连接说明.xlsx》,以及多个开发板的具体配置信息。这些开发板涵盖了F103_MINI、F103_指南者、F103_霸道等型号。 以下是主函数的代码示例: ```c int main(void) { float temperature; uint8_t uc, ucDs18b20Id[ 8 ]; uint8_t DS18B20Id_str[20]; // 配置SysTick定时器为每微秒中断一次 SysTick_Init(); // 初始化LCD显示模块 ILI9341_Init() ILI9341_GramScan(6); // 设置屏幕方向,模式6为默认方向 ILI9341_Clear(0, 0, LCD_X_LENGTH, LCD_Y_LENGTH); // 清屏 LED_GPIO_Config(); USART_Config(); if (DS18B20_Init()) { ILI9341_DispStringLine_EN(LINE(1),no ds18b20 exit); } else { ILI9341_DispStringLine_EN(LINE(1), ds18b20 ok); DS18B20_ReadId (ucDs18b20Id); // 读取DS18B20的序列号 for ( uc = 0; uc < 8; uc++ ) { // 打印DS18B20的序列号 sprintf((char *)&DS18B20Id_str[uc * 2], %.2x, ucDs18b20Id[uc]); } sprintf((char*)dis_buf, DS18B20 serial num: 0x%s, DS18B20Id_str); ILI9341_DispStringLine_EN(LINE(2), dis_buf); while (true) { temperature = DS18B20_GetTemp_MatchRom(ucDs18b20Id); // 获取温度 sprintf((char*)dis_buf, T:%.3f degree Celsius, temperature); ILI9341_DispStringLine_EN(LINE(5), dis_buf); Delay_ms(1000); } } ``` 这段代码初始化了DS18B20温度传感器,并通过LCD显示模块实时更新读取到的温度值。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • DS18B20STM32F103/F407/F767/F743DEMO.zip
    优质
    本资源包包含DS18B20温度传感器与STM32不同型号(F103、F407、F767、F743)单片机构成的开发演示程序和完整源代码,适合嵌入式系统学习者使用。 DS18B20温度传感器与STM32F103、F407、F767及F743单片机的DEMO软件例程源码合集包括了详细的文档,如《DS18B20.pdf》和《DS18B20与STM32系列开发板引脚连接说明.xlsx》,以及多个开发板的具体配置信息。这些开发板涵盖了F103_MINI、F103_指南者、F103_霸道等型号。 以下是主函数的代码示例: ```c int main(void) { float temperature; uint8_t uc, ucDs18b20Id[ 8 ]; uint8_t DS18B20Id_str[20]; // 配置SysTick定时器为每微秒中断一次 SysTick_Init(); // 初始化LCD显示模块 ILI9341_Init() ILI9341_GramScan(6); // 设置屏幕方向,模式6为默认方向 ILI9341_Clear(0, 0, LCD_X_LENGTH, LCD_Y_LENGTH); // 清屏 LED_GPIO_Config(); USART_Config(); if (DS18B20_Init()) { ILI9341_DispStringLine_EN(LINE(1),no ds18b20 exit); } else { ILI9341_DispStringLine_EN(LINE(1), ds18b20 ok); DS18B20_ReadId (ucDs18b20Id); // 读取DS18B20的序列号 for ( uc = 0; uc < 8; uc++ ) { // 打印DS18B20的序列号 sprintf((char *)&DS18B20Id_str[uc * 2], %.2x, ucDs18b20Id[uc]); } sprintf((char*)dis_buf, DS18B20 serial num: 0x%s, DS18B20Id_str); ILI9341_DispStringLine_EN(LINE(2), dis_buf); while (true) { temperature = DS18B20_GetTemp_MatchRom(ucDs18b20Id); // 获取温度 sprintf((char*)dis_buf, T:%.3f degree Celsius, temperature); ILI9341_DispStringLine_EN(LINE(5), dis_buf); Delay_ms(1000); } } ``` 这段代码初始化了DS18B20温度传感器,并通过LCD显示模块实时更新读取到的温度值。
  • DS18B2051.zip
    优质
    本资源包含使用DS18B20温度传感器与51单片机进行温度测量的完整代码及说明文档。适用于初学者学习和实践。 DS18B20温度传感器.zip 和 51单片机代码这两个文件包含了一套用于读取DS18B20温度传感器数据的程序代码,适用于基于51单片机的硬件平台。这些资源可以帮助用户实现对环境温度的有效监测和数据分析。
  • STM32F407DS18B20读写串口屏显示DEMO.zip
    优质
    本资源提供了一套使用STM32F407单片机与DS18B20温度传感器进行通信的示例代码,包括通过串口屏显示温度数据。适合初学者学习和参考。 STM32F407单片机读取并显示DS18B20温度传感器数据的示例程序源码可以作为学习参考。 ```c int main(void) { uint8_t DS18B20ID[8]; float temperature; /* 初始化所有外设,Flash接口和系统滴答定时器 */ HAL_Init(); /* 配置系统时钟 */ SystemClock_Config(); /* 初始化串口并配置串口中断优先级 */ MX_DEBUG_USART_Init(); HMI_USARTx_Init(); while(DS18B20_Init()) { printf(DS18B20温度传感器不存在\n); HAL_Delay(1000); } printf(检测到DS18B20温度传感器,并初始化成功\n); DS18B20_ReadId(DS18B20ID); /* 无限循环 */ while (1) { temperature = DS18B20_GetTemp_MatchRom(DS18B20ID); printf(获取该序列号器件的温度:%.1f\n,temperature); HMI_value_setting(page1.gross.val,temperature * 10); HAL_Delay(1000); } } /** 函数功能: 向串口屏发送数据 * 输入参数: val_str - 字符串指针,value - 要发送的整数值 * 返回值: 无 */ void HMI_value_setting(const char *val_str,uint32_t value) { uint8_t tmp_str[30] = {0}; uint8_t i; sprintf((char *)tmp_str, %s=%d, val_str,value); for(i=0; iDR=tmp_str[i]; while(__HAL_UART_GET_FLAG(&husartx_HMI, UART_FLAG_TXE) == RESET); } HMI_USARTx->DR = 0xFF; while(__HAL_UART_GET_FLAG(&husartx_HMI,UART_FLAG_TXE) == RESET); } /** 函数功能: 向串口屏发送浮点数据 * 输入参数: val_str - 字符串指针,value - 要发送的整数值 * 返回值: 无 */ void HMI_string_setting(const char *val_str, int32_t value) { uint8_t tmp_str[50] = {0}; uint8_t i; float temp=(float)value; sprintf((char *)tmp_str, %s=%.1f, val_str,temp); for(i=0; iDR=tmp_str[i]; while(__HAL_UART_GET_FLAG(&husartx_HMI,UART_FLAG_TXE) == RESET); } HMI_USARTx->DR = 0xFF; while(__HAL_UART_GET_FLAG(&husartx_HMI, UART_FLAG_TXE) == RESET); } ```
  • DS18B2051
    优质
    本项目旨在介绍如何使用DS18B20温度传感器与51单片机进行温度数据采集。通过详细讲解硬件连接和编程实现,帮助初学者掌握基础的温感技术应用。 温度传感器是各种类型的传感器中最常用的一种。早期使用的模拟温度传感器包括热敏电阻,随着环境温度的变化,它的阻值会发生线性变化。处理器可以采集到该电阻两端的电压,并通过特定公式计算出当前的环境温度。
  • STM32DS18B20读写程序.zip
    优质
    本资源包含STM32单片机配合DS18B20温度传感器进行温度读写的完整程序源代码,适用于需要实现精准测温功能的项目开发。 STM32单片机读写DS18B20温度传感器的例程软件源码可以作为学习设计参考。该程序的功能如下: 1. 程序先打印出例程LOGO。 2. 打印 DS18B20 的 ROM ID。 3. 显示温度寄存器数值与摄氏度之间的对应关系,以验证数值转换函数的正确性。 4. 循环输出 DS18B20 测得的温度数据(包括寄存器原始数据和换算成十进制有符号数后的摄氏度值)。 在主程序中: ```c int main(void) { // 因为ST固件库启动文件已经完成了CPU系统时钟初始化,因此无需再次配置。启动文件设置了CPU的主频率、内部Flash访问速度及可选外部SRAM FSMC初始化。 bsp_Init(); // 初始化硬件平台相关的设置 PrintfLogo(); // 打印例程LOGO到串口1 bsp_InitDS18B20(); // 配置GPIO以用于与DS18B20通信 } ```
  • STM32F103DS18B20数字
    优质
    本项目介绍如何使用STM32F103微控制器通过单总线接口连接并控制DS18B20数字温度传感器,实现高精度环境温度测量。 基于STM32F103系列单片机,并使用MDK5编译环境配合DS18B20数字温度传感器进行开发。本段落将介绍如何利用库函数编写相关代码以实现该功能。
  • MSP430F1XX开发板DS18B20实验.zip
    优质
    该资源包含针对MSP430F1XX单片机与DS18B20数字温度传感器连接进行实验的完整源代码,适用于嵌入式系统学习和实践。 MSP430F1XX单片机开发板实验例程源码--DS18B20温度传感器实验例程.zip
  • STM32F103ZET6DS18B20实验代示例.zip
    优质
    本资源提供STM32F103ZET6单片机与DS18B20温度传感器连接及编程的实例代码,帮助用户快速实现温度数据读取和处理。 STM32F103ZET6单片机与DS18B20温度传感器实验例程源码如下: ```c int main(){ u8 i=0; float temper; SysTick_Init(72); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); // 设置中断优先级分组为两级 LED_Init(); USART1_Init(9600); while(DS18B20_Init()){ printf(DS18B20检测失败,请插好!\r\n); delay_ms(500); } printf(DS18B20检测成功!\r\n); while(1){ i++; if(i%20==0) { led1 = !led1; } if(i%50==0){ temper=DS18B20_GetTemperture(); if (temper < 0) { printf(检测的温度为:-); } else { printf(检测的温度为: ); } } } } ``` 这段代码初始化了STM32F103ZET6单片机,并与DS18B20温度传感器进行通信,每隔一定时间更新LED状态并读取和显示当前环境温度。
  • 基于STM32DHT11、DS18B20湿监测报警系统.zip
    优质
    本资源提供了一套基于STM32单片机结合DHT11和DS18B20温度湿度传感器设计的监测报警系统软件源代码,适用于环境监控项目。 STM32单片机结合DHT11和DS18B20传感器的温湿度采集报警系统软件源代码可以作为学习设计参考。 ```c int main(void) { s16 i = 0; u8 sta = 0; // SysTick_Init(); Delay_init(); UART_Config(115200); LCD_Show(LCD_Start_UI); Delay_ms(1000); BIOS_Check(); LCD_Show(LCD_Menu_UI); Delay_ms(300); for (;;) { i = DS18B20_Get_Temp(); DHT11_ReadData(); Warning_Beep(i); Temp_Convert(i); Hum_Convert(HR); DrawGraph(i); sta = !sta; LED_RUN(sta); } } ```