STM32+光敏模块 |
您所在的位置:网站首页 › 光敏电阻概述 › STM32+光敏模块 |
STM32+光敏模块
器件选择4线光敏传感器介绍光敏模块原理图光敏模块实物光敏模块引脚说明
CubeMX配置代码主体部分结果展示
器件选择
硬件平台选择STM32F103C8T6最小系统开发板。 STM32代码配置工具使用STM32CubeMX的HAL库进行开发。 光敏模块选择4线光敏电阻传感器模块,(光敏电阻型号5516)。 注1:数据下载使用ST-LINK下载。 注2:串口数据接收使用USB转TTL传输,USB转TTL的TXD接STM32的PA10引脚RXD,RXD接STM32的PA9引脚TXD。 4线光敏传感器介绍 光敏模块原理图
VCC:电源引脚,接单片机+5V或者3.3V。 GND:地线,接单片机GND。 DO:开关量输出(0或1),模块在无光条件下或光强达不到设定阈值时,DO口输出高电平;当外界环境光强超过设定阈值时,DO输出低电平。 AO:模拟量输出(电压),与单片机AD模块相连,通过AD转换,获得准确数值。(后续中使用PA1引脚作为ADC转换,因此此处接单片机的PA1引脚) CubeMX配置1、首先新建一个工程,芯片选择STM32F103C8T6,双击后进入开发。 1、引入头文件,为后续使用sprintf做准备。 #include "stdio.h"2、变量预先定义。 uint16_t ADC_Sample = 0,ADC_Volt = 0;//ADC_Value为采样值,ADC_Volt为电压值 uint8_t str[64];//给定一个数组空间,存放sprintf的内容3、数据存放与发送。 void UR1_Send_Info() { sprintf((char*)str_buff,"\r\nSampling value:%d,Voltage value:%d.%d%d",ADC_Sample,ADC_Volt/100,(ADC_Volt/10)%10,ADC_Volt%10);//使用sprintf把将要发送的内容存放到数组 HAL_UART_Transmit(&huart1,str,sizeof(str),10000);//将数组中的内容发送到串口 }4、数据的获取。 void Get_ADC_Sample() { HAL_ADC_Start(&hadc1);//打开ADC转换 if(HAL_ADC_PollForConversion(&hadc1,10) == HAL_OK) { ADC_Sample = HAL_ADC_GetValue(&hadc1);//将得到的ADC采样值放入变量ADC_Sample中 ADC_Volt = ADC_Sample * 330/4096;//数据转换,电压为3.3V,数据时12位,保留两位小数 } UR1_Send_Info();//将上面数据进行存放,发送到上位机 HAL_ADC_Stop(&hadc1);//停止ADC转换 }5、在main函数的while循环中加入写入的代码 /* USER CODE BEGIN WHILE */ while (1) { Get_ADC_Sample(); UR1_Send_Info(); HAL_Delay(500);//使用HAL库的Delay函数延时500ms,每500ms转换一次 /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ 结果展示
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |