STM32 环境光传感器ADC采样
一、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采样相关推荐
- 火牛(STM32) 多路ADC采样数据经过RS485传输到另一块ARM板路虎(LPC1768)
调试了好几天终于搞定ADC多路的数据采集,然后通过RS485传输到另一块ARM板上 上程序 /***************************************************** ...
- 使用STM32内部ADC资源读取环境光传感器
目录 前言 一.TEMT6000环境光传感器 二.ADC 1.什么是ADC 2.环境光传感器TEMT6000与ADC的关系 三.单片机选型 四.代码 1.sensor_AD.c 2.sensor_AD ...
- STM32多通道ADC采样获取GY-25A倾角传感器模拟输出数据
STM32多通道ADC采样获取GY-25A倾角传感器模拟输出数据 GY-25A模块是新型的倾角传感器模块,具有X和Y两轴模拟角度输出和串口角度输出的功能.这里介绍STM32获取GY-25A模拟输出的角 ...
- STM32多通道ADC采样获取MCP9701模拟温度传感器温度输出数据
STM32多通道ADC采样获取MCP9701模拟温度传感器温度输出数据 市面上常见的模拟温度传感器有TI的LM35系列,然后使用中并不简便.MCP9701是Microchip公司推出的相似的模拟温度传 ...
- STM32的ADC采样与多通道ADC采样
一 单通道采样 参考资料: <STM32库开发实战指南> 刘火良,杨森著 原理性质的东西还是少讲,因为上面那本书里面讲解的很详细了,直接来看硬件电路图 这里使用的是3362电位器(10K ...
- STM32 ADC采样使用内部参考电压
整理也能进步!写得清楚才能理解更深. [问题背景] 在使用ADC时,通常的用法是Vref+接电源VDD3.3V,然后计算时直接用3.3V做参考电压,但是这种方法忽略了一些情况如供电电压有可能随外部一些 ...
- STM32三个ADC同步规则采样
同步采样一般应用于交流信号中,是指多个ADC的采集时刻完全同步.在电力测量领域,经常会遇到需要同步采样的情况,比如同步采样电压电流信号,计算其相位差.阻抗分析时,也需要对输入输出信号进行同步采集,分析 ...
- 【STM32】定时器TIM触发ADC采样,DMA搬运到内存(超详细讲解)
TIM+ADC+DMA原理 一般情况下,当我们需要进行采样的时候,需要用到ADC.例如:需要对某个信号进行定时采样(也就是隔一段时间,比如说2ms). 本文提供的解决方案是:使用ADC的定时器触发AD ...
- STM32 ADC采样
目录 1.基础概念 2.原理:ADC采样过程分为四步:采样.保持.量化.编码. 3.采样定理 4.采样保持放大器(SHA) 5.ADC电压值转换 6.ADC轮询采样 1.基础概念 ADC 全称:Ana ...
- STM32 H7系列ADC DMA模式过采样设置详解 cubeMX
最近做项目需要用H743的ADC采样,发现和M3及M4的差别还是蛮多的,MPU的配置对DMA读取数据的影响.过采样机制等,其中H7的硬件过采样是个很实用的东西,硬汉大佬也进行了测试: STM32H7的 ...
最新文章
- 如果你的云服务商倒闭该怎么办?
- TensorFlow中Session.run和Tensor.eval的区别
- python统计并输出文件的行数_python实用统计文件行数 类似wc命令
- linux中crontab命令的基本用法
- mybatis多个foreach_使用 Mybatis 的 foreach 批量模糊 like 查询及批量插入
- oracle11g分区表维护,Oracle11g维护分区(一)AddingPartitions
- Ajax实现--javascript
- 【软件】WPS VBA 7.0.1590(百度云免费下载链接)
- charset参数 sqluldr2_linux下配置 oracle数据导出工具sqluldr2
- matlab实习维纳滤波,自编Matlab程序,维纳滤波器的Matlab实现
- linux秘钥登录使用authorized_keys不生效
- 高红梅:第三章 第三节 从探寻自我到生命共同体的身份认同
- python提取电子发票_Python办公自动化—电子发票台账制作自动化(3)
- Linux删除文件之后磁盘空间没有被释放
- Linux/Unix-stty命令详解
- 技术总监岗位职责,网站技术总监的职能
- Tile based Rendering 二 tbr and tbdr 优化建议tiled based deferred rendering
- Tutorial Master 2⭐九、Module:引导Module中的通用属性讲解
- 计算机人工智能专业大一新生书单及电影
- 【随笔】学会拒绝别人,聪明地说不,学会独处
热门文章
- 打破次元壁,让游戏角色在指尖跳舞,简易的 AR 教程
- jQuery制作手风琴图片切换效果
- 西瓜书课后题——第四章(决策树)
- Redis统计用户访问量
- 2017年sfdc工作总结_Name 顺序
- 【正点原子MP157连载】 第九章 TF-A移植-摘自【正点原子】【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
- STM32MP157C-DK2 开机测试
- EOS Error 3090003: provided keys, permissions, and delays do not satisfy declared authoriz
- caniuse-lite is outdated. Please run next command `npm update caniuse-lite browserslist`
- SpringCloud(若依微服务版为例)集成WebSocket实现前后端的消息推送