一、STM32 环境光传感器模块

TEMT60000光传感器把光信号转变成为电信号,PA作为模拟输入,接收光传感器的电压,

将PA4设置成ADC

二、Stm32CubeMx配置ADC

打开PA4并使能ADC1通道9

配置完ADC之后,GPIO模式自动为模数转换模式

使能外部高速时钟

配置时钟

不要让ADC时钟超过14MHz,否则可能不准

ADC参数设置

配置USART1为异步模式

PA10和PA9被使能作为串口的收发端

生成代码

三、Keil编写程序

在uart.c中做printf、scanf的重定向以便于串口通信

#include <stdio.h>#ifdef __GNUC__#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)#else#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)#endifPUTCHAR_PROTOTYPE{HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);return ch;}int fgetc(FILE *f){uint8_t ch;HAL_UART_Receive(&huart1,(uint8_t *)&ch,1,0xfff);return ch;}

在adc.c中有ADC的初始化void MX_ADC1_Init(void),和在STM32CubeMx配置的一样,ADC的配置也可在这修改

定义变量用于保存ADC采样值

int ADC_value = 0 ;float voltage = 0 ;

在while(1)里

 /* USER CODE BEGIN WHILE */while (1){HAL_ADC_Start(&hadc1); //开始ADC转换HAL_ADC_PollForConversion(&hadc1,100); //等待ADC转换完成,第二个参数表示超时时间,单位msADC_value = HAL_ADC_GetValue(&hadc1);//获取ADC采样值voltage = (float)(value *3.3/4096);//ADC采样值到电压的转换printf("Light voltage:%.3f\r\n",voltage);HAL_Delay(1000);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */

ADC采样值到电压的转换:

ADC12位分辨率,也就是说ADC模块读到的数据是12位的数据。。二进制的12位可表示0-4095个数。 电压值 = ADC采样值*(3.3V/4096)

右键我的电脑选择管理,进入计算机管理界面,在设备管理器的端口可以看到串口的端口为COM4

远程连接工具串口连接要选择一样的参数

然后就可以看到串口打印出来的电压值

用手机手电筒照到环境光传感器可以看到电压变化

参考:https://blog.csdn.net/qq_42908042/article/details/86694228

STM32 环境光传感器ADC采样相关推荐

  1. 火牛(STM32) 多路ADC采样数据经过RS485传输到另一块ARM板路虎(LPC1768)

    调试了好几天终于搞定ADC多路的数据采集,然后通过RS485传输到另一块ARM板上 上程序 /***************************************************** ...

  2. 使用STM32内部ADC资源读取环境光传感器

    目录 前言 一.TEMT6000环境光传感器 二.ADC 1.什么是ADC 2.环境光传感器TEMT6000与ADC的关系 三.单片机选型 四.代码 1.sensor_AD.c 2.sensor_AD ...

  3. STM32多通道ADC采样获取GY-25A倾角传感器模拟输出数据

    STM32多通道ADC采样获取GY-25A倾角传感器模拟输出数据 GY-25A模块是新型的倾角传感器模块,具有X和Y两轴模拟角度输出和串口角度输出的功能.这里介绍STM32获取GY-25A模拟输出的角 ...

  4. STM32多通道ADC采样获取MCP9701模拟温度传感器温度输出数据

    STM32多通道ADC采样获取MCP9701模拟温度传感器温度输出数据 市面上常见的模拟温度传感器有TI的LM35系列,然后使用中并不简便.MCP9701是Microchip公司推出的相似的模拟温度传 ...

  5. STM32的ADC采样与多通道ADC采样

    一 单通道采样  参考资料: <STM32库开发实战指南> 刘火良,杨森著 原理性质的东西还是少讲,因为上面那本书里面讲解的很详细了,直接来看硬件电路图 这里使用的是3362电位器(10K ...

  6. STM32 ADC采样使用内部参考电压

    整理也能进步!写得清楚才能理解更深. [问题背景] 在使用ADC时,通常的用法是Vref+接电源VDD3.3V,然后计算时直接用3.3V做参考电压,但是这种方法忽略了一些情况如供电电压有可能随外部一些 ...

  7. STM32三个ADC同步规则采样

    同步采样一般应用于交流信号中,是指多个ADC的采集时刻完全同步.在电力测量领域,经常会遇到需要同步采样的情况,比如同步采样电压电流信号,计算其相位差.阻抗分析时,也需要对输入输出信号进行同步采集,分析 ...

  8. 【STM32】定时器TIM触发ADC采样,DMA搬运到内存(超详细讲解)

    TIM+ADC+DMA原理 一般情况下,当我们需要进行采样的时候,需要用到ADC.例如:需要对某个信号进行定时采样(也就是隔一段时间,比如说2ms). 本文提供的解决方案是:使用ADC的定时器触发AD ...

  9. STM32 ADC采样

    目录 1.基础概念 2.原理:ADC采样过程分为四步:采样.保持.量化.编码. 3.采样定理 4.采样保持放大器(SHA) 5.ADC电压值转换 6.ADC轮询采样 1.基础概念 ADC 全称:Ana ...

  10. STM32 H7系列ADC DMA模式过采样设置详解 cubeMX

    最近做项目需要用H743的ADC采样,发现和M3及M4的差别还是蛮多的,MPU的配置对DMA读取数据的影响.过采样机制等,其中H7的硬件过采样是个很实用的东西,硬汉大佬也进行了测试: STM32H7的 ...

最新文章

  1. 如果你的云服务商倒闭该怎么办?
  2. TensorFlow中Session.run和Tensor.eval的区别
  3. python统计并输出文件的行数_python实用统计文件行数 类似wc命令
  4. linux中crontab命令的基本用法
  5. mybatis多个foreach_使用 Mybatis 的 foreach 批量模糊 like 查询及批量插入
  6. oracle11g分区表维护,Oracle11g维护分区(一)AddingPartitions
  7. Ajax实现--javascript
  8. 【软件】WPS VBA 7.0.1590(百度云免费下载链接)
  9. charset参数 sqluldr2_linux下配置 oracle数据导出工具sqluldr2
  10. matlab实习维纳滤波,自编Matlab程序,维纳滤波器的Matlab实现
  11. linux秘钥登录使用authorized_keys不生效
  12. 高红梅:第三章 第三节 从探寻自我到生命共同体的身份认同
  13. python提取电子发票_Python办公自动化—电子发票台账制作自动化(3)
  14. Linux删除文件之后磁盘空间没有被释放
  15. Linux/Unix-stty命令详解
  16. 技术总监岗位职责,网站技术总监的职能
  17. Tile based Rendering 二 tbr and tbdr 优化建议tiled based deferred rendering
  18. Tutorial Master 2⭐九、Module:引导Module中的通用属性讲解
  19. 计算机人工智能专业大一新生书单及电影
  20. 【随笔】学会拒绝别人,聪明地说不,学会独处

热门文章

  1. 打破次元壁,让游戏角色在指尖跳舞,简易的 AR 教程
  2. jQuery制作手风琴图片切换效果
  3. 西瓜书课后题——第四章(决策树)
  4. Redis统计用户访问量
  5. 2017年sfdc工作总结_Name 顺序
  6. 【正点原子MP157连载】 第九章 TF-A移植-摘自【正点原子】【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
  7. STM32MP157C-DK2 开机测试
  8. EOS Error 3090003: provided keys, permissions, and delays do not satisfy declared authoriz
  9. caniuse-lite is outdated. Please run next command `npm update caniuse-lite browserslist`
  10. SpringCloud(若依微服务版为例)集成WebSocket实现前后端的消息推送