芯片复制STM32雨滴检测传感器程序
| 一、芯片复制连线问题(MH-RD) 雨滴检测板与传感器相连(不分正负),传感器与开发板相连,记得vcc与gnd不要接反,不小心烧到一个了。 引脚D0是开关信号输出,检测有没有雨滴(0和1),本处接到PD5引脚 引脚A0是模拟电压输出,可以输出模拟电压,需要接到对应功能的引脚,本处接到PA1引脚二、主要源码 1、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 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函数里面进行情况选择,简单的调试程序 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); } } |

芯片解密