使用KEIL 5 打开
解压文件后弹窗点击选择 Cancel
否则编译会出现错误
如果第一次弹窗没有点击取消,则重新解压。
单片机源程序如下:
- /**************************************
- * 文件名 :main.c
- * 描述 :串口显示温湿度,当温度高于设定阈值时,LED闪烁,当湿度低于设定阈值时,蜂鸣器鸣响。
- * 实验平台:CH32最小系统 基于CH32F103C8T6
- * 库版本 :ST3.0.0
- *********************************************************/
- #include "delay.h"
- #include "sys.h"
- #include "usart.h"
- #include "led.h"
- #include "dht11.h"
-
- //测试主函数
- #define LED_ON GPIO_SetBits(GPIOC, GPIO_Pin_13)
- #define LED_OFF GPIO_ResetBits(GPIOC, GPIO_Pin_13)
- #define Buzzer_ON GPIO_SetBits(GPIOC, GPIO_Pin_14)
- #define Buzzer_OFF GPIO_ResetBits(GPIOC, GPIO_Pin_14)
- void Buzzer_Init()
- {
- GPIO_InitTypeDef p;
-
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
-
- p.GPIO_Pin = GPIO_Pin_14;
- p.GPIO_Mode = GPIO_Mode_Out_PP;
- p.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOC, &p);
- }
- int main(void)
- {
- u8 temp,humi;
- LED_Init();
- Buzzer_Init();
- delay_init(); //延时函数初始化
- NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
- uart_init(9600); //串口初始化为9600
- printf("串口测试\r\n");
- while(DHT11_Init())
- {
-
- printf("传感器设置错误\n");
- delay_ms(500);
- }
- while(1)
- {
- DHT11_Read_Data(&temp,&humi);
- printf("temp:%d humi:%d \n",temp,humi);
- delay_ms(500);
-
-
- if(temp>30)
- {
- LED_ON;
- printf("LED On\n");
- delay_us(200000);
- LED_OFF;
- delay_us(200000);
- }
- else
- {
- LED_OFF;
- }
- if(humi>30)
- {
- Buzzer_ON;
- printf("Buzzer On\n");
- delay_us(200000);
- }
- else
- {
- Buzzer_OFF;
- }
- delay_us(500000);
- }
- }
复制代码
所有代码51hei附件下载:
基于STM32F103C8T6+DHT11.7z
(1.15 MB, 下载次数: 43)
|