STM32—雨滴检测传感器
生活随笔
收集整理的這篇文章主要介紹了
STM32—雨滴检测传感器
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
目錄
- 一、簡(jiǎn)介
- 二、連線
- 三、代碼
一、簡(jiǎn)介
檢測(cè)雨量的強(qiáng)度,工作電壓在 3.3-5v。
二、連線
雨滴檢測(cè)板與傳感器相連(不分正負(fù)),傳感器與開發(fā)板相連,記得vcc與gnd不要接反,不小心燒到一個(gè)了。
引腳D0是開關(guān)信號(hào)輸出,檢測(cè)有沒有雨滴(0和1),本處接到PD5引腳
引腳A0是模擬電壓輸出,可以輸出模擬電壓,需要接到對(duì)應(yīng)功能的引腳,本處接到PA1引腳
三、代碼
在rain.h 文件中,我們先進(jìn)行宏定義,方便移植
#include "system.h" #define RAIN_STATE() GPIO_ReadInputDataBit(rain_PORT,rain_PIN)//讀紅外的狀態(tài)#define rain_PORT GPIOC #define rain_PIN GPIO_Pin_4 #define rain_RCC RCC_APB2Periph_GPIOC定義完了之后,再對(duì)rain.c文件中的PD5接收引腳進(jìn)行初始化
//對(duì)雨滴傳感器的端口進(jìn)行初始化 void rain_INIT(void) {GPIO_InitTypeDef GPIO_InitStructure;//定義結(jié)構(gòu)體變量RCC_APB2PeriphClockCmd(rain_RCC,ENABLE); GPIO_InitStructure.GPIO_Pin=rain_PIN; //選擇你要設(shè)置的IO口GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; //設(shè)置浮空輸入GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //設(shè)置傳輸速率GPIO_Init(rain_PORT,&GPIO_InitStructure); /* 初始化GPIO */}最后,在main.c函數(shù)里面進(jìn)行情況選擇,只是了解傳感器的使用,沒有運(yùn)用實(shí)際項(xiàng)目,所以寫的很簡(jiǎn)單。
int main() {u8 i=0;u16 value=0;float vol;SysTick_Init(72);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中斷優(yōu)先級(jí)分組 分2組LED_Init();USART1_Init(115200);ADCx_Init();while(1){i++;if(i%20==0){LED1=!LED1;}if(i%50==0){value=Get_ADC_Value(ADC_Channel_1,20);printf("檢測(cè)AD值為:%d\r\n",value);vol=(float)value*(3.3/4096);printf("檢測(cè)電壓值為:%.2fV\r\n",vol);}delay_ms(10); } }傳送門:串口、ADC基礎(chǔ)知識(shí)和初始化文章
STM32—USART串口配置
STM32—ADC配置
總結(jié)
以上是生活随笔為你收集整理的STM32—雨滴检测传感器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 485通信详解
- 下一篇: JSP PO VO BO DTO POJ