|
STM32單片機(jī)源程序如下:
- #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時(shí)鐘
-
- //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)先級(jí)0
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //子優(yōu)先級(jí)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;//字長(zhǎng)為8位數(shù)據(jù)格式
- USART_InitStructure.USART_StopBits = USART_StopBits_1;//一個(gè)停止位
- USART_InitStructure.USART_Parity = USART_Parity_No;//無(wú)奇偶校驗(yàn)位
- USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//無(wú)硬件數(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);//開(kāi)啟串口接受中斷
- USART_Cmd(USART1, ENABLE); //使能串口1
-
- }
- //void gpio()
- //{
- // GPIO_InitTypeDef GPIO_InitStructure;
- // RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能USART3,GPIOB時(shí)鐘
- // 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ù)制代碼
(程序目前還有問(wèn)題,不能運(yùn)行,求大神幫忙修改):
實(shí)驗(yàn)0 Template工程模板.7z
(177.86 KB, 下載次數(shù): 35)
2020-10-22 16:45 上傳
點(diǎn)擊文件名下載附件
|
|