标题:
STM32 DHT11串口显示 串行文本输出 波特率115200
[打印本页]
作者:
sr861126
时间:
2020-10-22 15:00
标题:
STM32 DHT11串口显示 串行文本输出 波特率115200
STM32单片机源程序如下:
#include "dht11.h"
#include "stdio.h"
u8 T;
u8 H;
u8 t=0;
int fputc(int ch, FILE *f)
{
/* 将Printf内容发往串口 */
USART_SendData(USART1, (unsigned char) ch);
while (!(USART1->SR & USART_FLAG_TXE));
return (ch);
}
void USART1_init(void)
{
//GPIO端口设置
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); //使能USART1,GPIOA时钟
//USART1_TX GPIOA.9
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
//USART1_RX GPIOA.10初始化
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10
//Usart1 NVIC 配置
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0 ;//抢占优先级0
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //子优先级2
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能
NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器
//USART 初始化设置
USART_InitStructure.USART_BaudRate = 115200;//串口波特率
USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式
USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位
USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收发模式
USART_Init(USART1, &USART_InitStructure); //初始化串口1
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启串口接受中断
USART_Cmd(USART1, ENABLE); //使能串口1
}
//void gpio()
//{
// GPIO_InitTypeDef GPIO_InitStructure;
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能USART3,GPIOB时钟
// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //复用推挽输出
// GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化PB10
// GPIO_SetBits(GPIOC,GPIO_Pin_13);
//}
int main(void)
{
USART1_init();
// gpio();
// DHT11_Rst();
while(1)
{
if(t%10==0)
{
DHT11_Read_Data(&T,&H); //读取温湿度值
printf("温度:%d\r\n ",T);
printf("湿度:%d\r\n ",H);
}
delay_ms(100);
t++;
// printf("湿度:%d\r\n ",1);
}
}
复制代码
(程序目前还有问题,不能运行,求大神帮忙修改):
实验0 Template工程模板.7z
(177.86 KB, 下载次数: 35)
2020-10-22 16:45 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
温水煮青蛙
时间:
2020-11-16 23:36
这个有错误,用的正点原子的库,dht11初始化函数都没写对,没敢贴上来初始化函数。
作者:
lengf
时间:
2020-12-7 16:51
很好用,在DHT11这卡了好久了
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1