找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3522|回復: 1
收起左側

STM32雨滴檢測傳感器部分程序

[復制鏈接]
ID:897278 發(fā)表于 2021-3-27 13:39 | 顯示全部樓層 |閱讀模式
一、連線問題(MH-RD)
雨滴檢測板與傳感器相連(不分正負),傳感器與開發(fā)板相連,記得vcc與gnd不要接反,不小心燒到一個了。
引腳D0是開關信號輸出,檢測有沒有雨滴(0和1),本處接到PD5引腳
引腳A0是模擬電壓輸出,可以輸出模擬電壓,需要接到對應功能的引腳,本處接到PA1引腳二、主要源碼
1、rain.h里的源碼
#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


2、rain.c里的源碼,對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 */
}
3、最后,在main.c函數(shù)里面進行情況選擇,簡單的調試程序
int main()
{
        u8 i=0;
        u16 value=0;
        float vol;
      
        SysTick_Init(72);
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //中斷優(yōu)先級分組 分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);      
        }
}
回復

使用道具 舉報

ID:1146186 發(fā)表于 2025-6-9 16:24 | 顯示全部樓層
能看看原理圖嗎
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表