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