標(biāo)題:
STM32 DHT11串口顯示 串行文本輸出 波特率115200
[打印本頁]
作者:
sr861126
時間:
2020-10-22 15:00
標(biāo)題:
STM32 DHT11串口顯示 串行文本輸出 波特率115200
STM32單片機源程序如下:
#include "dht11.h"
#include "stdio.h"
u8 T;
u8 H;
u8 t=0;
int fputc(int ch, FILE *f)
{
/* 將Printf內(nèi)容發(fā)往串口 */
USART_SendData(USART1, (unsigned char) ch);
while (!(USART1->SR & USART_FLAG_TXE));
return (ch);
}
void USART1_init(void)
{
//GPIO端口設(shè)置
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 ;//搶占優(yōu)先級0
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //子優(yōu)先級2
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能
NVIC_Init(&NVIC_InitStructure); //根據(jù)指定的參數(shù)初始化VIC寄存器
//USART 初始化設(shè)置
USART_InitStructure.USART_BaudRate = 115200;//串口波特率
USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字長為8位數(shù)據(jù)格式
USART_InitStructure.USART_StopBits = USART_StopBits_1;//一個停止位
USART_InitStructure.USART_Parity = USART_Parity_No;//無奇偶校驗位
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//無硬件數(shù)據(jù)流控制
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收發(fā)模式
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; //復(fù)用推挽輸出
// 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);
}
}
復(fù)制代碼
(程序目前還有問題,不能運行,求大神幫忙修改):
實驗0 Template工程模板.7z
(177.86 KB, 下載次數(shù): 35)
2020-10-22 16:45 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
溫水煮青蛙
時間:
2020-11-16 23:36
這個有錯誤,用的正點原子的庫,dht11初始化函數(shù)都沒寫對,沒敢貼上來初始化函數(shù)。
作者:
lengf
時間:
2020-12-7 16:51
很好用,在DHT11這卡了好久了
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1