STM32F407单片机读写AM2302温湿度传感器DEMO实验软件例程源码,可以做为你的学习设计参考,
int main(void)
{
char str[50];
uint32_t lcdid;
/* 复位所有外设,初始化Flash接口和系统滴答定时器 */
HAL_Init();
/* 配置系统时钟 */
SystemClock_Config();
/* 初始化串口并配置串口中断优先级 */
MX_DEBUG_USART_Init();
/* 模块初始化 */
AM2302_Init();
/* 初始化3.5寸TFT液晶模组,一般优先于调试串口初始化 */
lcdid=BSP_LCD_Init();
/* 调用格式化输出函数打印输出数据 */
printf("LCD ID=0x%08X\n",lcdid);
LCD_Clear(0,0,LCD_DEFAULT_WIDTH,LCD_DEFAULT_HEIGTH,BLACK);
HAL_Delay(1000);
/* 开背光 */
LCD_BK_ON();
LCD_DispString_EN_CH(70,50,(uint8_t *)"YS-F4Pro开发板",BLACK,BLUE,USB_FONT_24);
/* 无限循环 */
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("%s\n",str);
sprintf(str,"温度为 %.1f℃",AM2302_Data.temperature);
LCD_DispString_EN_CH(70,180,(uint8_t *)str,BLACK,YELLOW,USB_FONT_24);
printf("%s\n",str);
printf("读取AM2302成功!-->湿度为%.1f %RH ,温度为 %.1f℃ \n",AM2302_Data.humidity,AM2302_Data.temperature);
}
else
{
printf("读取AM2302信息失败\n");
LCD_DispString_CH(50,150,(uint8_t *)"读取AM2302信息失败",BLACK,MAGENTA,USB_FONT_24);
}
HAL_Delay(1000);
}
}