完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
例程下载:
资料包括程序、相关说明资料以及软件使用截图 百度云链接:http://pan.baidu.com/s/1i574oPv 密码:r3s3 (硬石YS-F1Pro开发板HAL库例程持续更新2. 软件设计之高级裸机例程(HAL库版本)YSF1-107. OneWire_AM2302温湿度数据液晶显示) /** ****************************************************************************** * 硬石YS-F1Pro开发板例程功能说明 * * 例程名称: YSF1_HAL-107. OneWire_AM2302温湿度数据液晶显示 * ****************************************************************************** * 说明: * 本例程配套硬石STM32开发板YS-F1Pro使用。 * * 淘宝: * 论坛:硬石电子社区 * 版权归硬石嵌入式开发团队所有,请勿商用。 ****************************************************************************** */ |
|
相关推荐
|
|
【1】例程简介
DS18B20温度传感器 【2】跳线帽情况 ******* 为保证例程正常运行,必须插入以下跳线帽 ********** 丝印编号 IO端口 目标功能引脚 出厂默认设置 JP1 PA10 TXD(CH340G) 已接入 JP2 PA9 RXD(CH340G) 已接入 JP6 PD3 AM2303/DS18B20 已接入 【3】操作及现象 使用开发板配套的MINI USB线连接到开发板标示“调试串口”字样的MIMI USB接口(需要安 装驱动),在电脑端打开串口调试助手工具,设置参数为115200 8-N-1。下载完程序之后,在串 口调试助手窗口可接收到信息。 |
|
|
|
|
|
main.c文件内容
/** ****************************************************************************** * 文件名程: main.c * 作 者: 硬石嵌入式开发团队 * 版 本: V1.0 * 编写日期: 2015-10-04 * 功 能: DS18B20温度数据液晶显示 ****************************************************************************** * 说明: * 本例程配套硬石stm32开发板YS-F1Pro使用。 * * 淘宝: * 论坛:http://www.ing10bbs.com * 版权归硬石嵌入式开发团队所有,请勿商用。 ****************************************************************************** */ /* 包含头文件 ----------------------------------------------------------------*/ #include "stm32f1xx_hal.h" #include "usartbsp_debug_usart.h" #include "lcdbsp_lcd.h" #include "stdlib.h" #include "AM2302/bsp_AM2302.h" #include "ff.h" #include "driverssd_diskio.h" /* 私有类型定义 --------------------------------------------------------------*/ /* 私有宏定义 ----------------------------------------------------------------*/ /* 私有变量 ------------------------------------------------------------------*/ /* 中文字库选择,在bsp_lcd.h中定义 */ #if USB_SPIFLASH_CH==0 char SDPath[4]; /* SD卡逻辑设备路径 */ FATFS fs; /* FatFs文件系统对象 */ FRESULT f_res; /* 文件操作结果 */ #endif AM2302_Data_TypeDef AM2302_Data; /* 扩展变量 ------------------------------------------------------------------*/ /* 私有函数原形 --------------------------------------------------------------*/ /* 函数体 --------------------------------------------------------------------*/ /***************************** 重要说明 ******************************* * * 使用本例程之前,需要运行“YSF1_HAL-052. 烧写中文字库到串行Flash”例程 * *****************************************************************************/ /** * 函数功能: 系统时钟配置 * 输入参数: 无 * 返 回 值: 无 * 说 明: 无 */ void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct; RCC_ClkInitTypeDef RCC_ClkInitStruct; RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; // 外部晶振,8MHz RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; // 9倍频,得到72MHz主时钟 HAL_RCC_OscConfig(&RCC_OscInitStruct); RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; // 系统时钟:72MHz RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; // AHB时钟:72MHz RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; // APB1时钟:36MHz RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; // APB2时钟:72MHz HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2); // HAL_RCC_GetHCLKFreq()/1000 1ms中断一次 // HAL_RCC_GetHCLKFreq()/100000 10us中断一次 // HAL_RCC_GetHCLKFreq()/1000000 1us中断一次 HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000); // 配置并启动系统滴答定时器 /* 系统滴答定时器时钟源 */ HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK); /* 系统滴答定时器中断优先级配置 */ HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0); } /** * 函数功能: 主函数. * 输入参数: 无 * 返 回 值: 无 * 说 明: 无 */ int main(void) { uint32_t lcdid; char str[50]; /* 复位所有外设,初始化Flash接口和系统滴答定时器 */ HAL_Init(); /* 配置系统时钟 */ SystemClock_Config(); /* 初始化3.5寸TFT液晶模组,一般优先于调试串口初始化 */ lcdid=BSP_LCD_Init(); /* 初始化串口并配置串口中断优先级 */ MX_DEBUG_USART_Init(); /* 调用格式化输出函数打印输出数据 */ printf("LCD ID=0x%08Xn",lcdid); #if USB_SPIFLASH_CH==0 /* 注册一个FatFS设备:串行FLASH */ if(FATFS_LinkDriver(&SD_Driver, SDPath) == 0) { //在串行FLASH挂载文件系统,文件系统挂载时会对串行FLASH初始化 f_res = f_mount(&fs,(TCHAR const*)SDPath,1); if(f_res!=FR_OK) { printf("!!SD卡挂载文件系统失败。(%d)n",f_res); while(1); } else { printf("》SD卡文件系统挂载成功n"); } } #endif printf("AM2302温湿度传感器信息读取n"); LCD_Clear(0,0,LCD_DEFAULT_WIDTH,LCD_DEFAULT_HEIGTH,BLACK); LCD_DispString_EN_CH(10,50,(uint8_t *)"AM2302温湿度传感器信息读取",BLACK,RED,USB_FONT_24); /* 开背光 */ LCD_BK_ON(); /*初始化AM2302的引脚*/ AM2302_Init(); /* 无限循环 */ while (1) { /*调用AM2302_Read_TempAndHumidity读取温湿度,若成功则输出该信息*/ if(AM2302_Read_TempAndHumidity(&AM2302_Data)==SUCCESS) { sprintf(str,"湿度为 %.1f%RH",AM2302_Data.humidity); LCD_DispString_EN_CH(70,150,(uint8_t *)str,BLACK,YELLOW,USB_FONT_24); printf("%sn",str); sprintf(str,"温度为 %.1f℃",AM2302_Data.temperature); LCD_DispString_EN_CH(70,180,(uint8_t *)str,BLACK,YELLOW,USB_FONT_24); printf("%sn",str); } else { printf("读取AM2302信息失败n"); LCD_DispString_CH(50,150,(uint8_t *)"读取AM2302信息失败",BLACK,MAGENTA,USB_FONT_24); } HAL_Delay(1000); } } /******************* (C) COPYRIGHT 2015-2020 硬石嵌入式开发团队 *****END OF FILE****/ |
|
|
|
|
|
464 浏览 0 评论
478 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
439 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
994 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1056 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11780 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 08:35 , Processed in 0.527236 second(s), Total 72, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号