STM32F103C8 HTU21D IIC模拟读取温湿度程序
一、工程说明
1、时间: 2016年10月18日
2、开发环境:MDK-ARM V5.21a (建议在V5.20及以上版本使用)
3、标准库: V3.5.0
4、工程版本:V1.0.0
5、目标芯片:STM32F10x_MD中容量芯片
单片机源程序如下:
- /**
- ******************************** STM32F10x *********************************
- * @文件名 : main.c
- * @作者 : strongerHuang
- * @库版本 : V3.5.0
- * @文件版本 : V1.0.0
- * @摘要 : 主函数 - 定时器(TIM)计数延时
- 间隔(定时器延时)500ms LED变化一次, 并且串口打印
- ******************************************************************************/
- /*----------------------------------------------------------------------------
- 更新日志:
- 2016-05-04 V1.0.0:初始版本
- ----------------------------------------------------------------------------*/
- /* 包含的头文件 --------------------------------------------------------------*/
- #include "bsp.h"
- #include "timer.h"
- #include "usart.h"
- #include "oled.h"
- #include "spi.h"
- #include "myiic.h"
- #include "htu21.h"
- extern uint8_t buf[];
- unsigned char ASCII[15] = {'0','1','2','3','4','5','6','7','8','9','.','C','%',':','-'};
- unsigned char str1[7], str2[7];
- /************************************************
- OLED显示HTU21温湿度
- *************************************************/
- void Temp_Rh(void)
- {
- sensor_read(0xE3); //读取温度
- // data_change();
- TIMDelay_Nms(10);
- sensor_read(0xE5); //读取湿度
- data_change();
-
- /**********OLED***************/
- str1[0] = ASCII[buf[0]];
- str1[1] = ASCII[buf[1]];
- str1[2] = ASCII[10];
- str1[3] = ASCII[buf[2]];
- str1[4] = ASCII[buf[3]];
- str1[5] = ASCII[11];
- str1[6] = ' ';
- OLED_8x16Str(80,4,str1);
- str2[0] = ASCII[buf[4]];
- str2[1] = ASCII[buf[5]];
- str2[2] = ASCII[10];
- str2[3] = ASCII[buf[6]];
- str2[4] = ASCII[buf[7]];
- str2[5] = ASCII[12];
- str2[6] = '\n';
- OLED_8x16Str(80,6,str2);
- }
- /************************************************
- 函数名称 : System_Initializes
- 功 能 : 系统初始化
- 参 数 : 无
- 返 回 值 : 无
- 作 者 : strongerHuang
- *************************************************/
- void System_Initializes(void)
- {
- BSP_Initializes();
- TIMER_Initializes();
- USART_Initializes();
- SPI_Configuration();
- OLED_Init();
- sensor_iic_init();
- }
- /************************************************
- 函数名称 : main
- 功 能 : 主函数入口
- 参 数 : 无
- 返 回 值 : int
- 作 者 : strongerHuang
- *************************************************/
- int main(void)
- {
- System_Initializes();
- OLED_CLS();
- OLED_8x16Str(0,0," ");
- OLED_8x16Str(0,2," ");
- OLED_8x16Str(0,4,"Temp: ");
- OLED_8x16Str(0,6,"Humd: ");
-
- while(1)
- {
- LED_TOGGLE; //LED开关(亮灭变化)
- // USART1_Printf((uint8_t*)"TIMDelay500ms..\n"); //打印输出
- // TIMDelay_Nms(500); //TIM延时500ms
- Temp_Rh();
- USART1_SendNByte(str1,7);
- USART1_SendNByte(str2,7);
- TIMDelay_Nms(2000);
- }
- }
- /**** Copyright (C)2016 strongerHuang. All Rights Reserved **** END OF FILE ****/
复制代码
下载:
STM32F103C8_TIM_HTU21(IIC).rar
(307.08 KB, 下载次数: 133)
|