一、STM32 环境光传感器模块
TEMT60000光传感器把光信号转变成为电信号,PA作为模拟输入,接收光传感器的电压,
将PA4设置成ADC
二、Stm32CubeMx配置ADC
打开PA4并使能ADC1通道9
配置完ADC之后,GPIO模式自动为模数转换模式
使能外部高速时钟
配置时钟
不要让ADC时钟超过14MHz,否则可能不准
ADC参数设置
配置USART1为异步模式
PA10和PA9被使能作为串口的收发端
生成代码
三、Keil编写程序
在uart.c中做printf、scanf的重定向以便于串口通信
#include #ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif PUTCHAR_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转换完成,第二个参数表示超时时间,单位ms ADC_value = HAL_ADC_GetValue(&hadc1);//获取ADC采样值 voltage = (float)(value *3.3/4096);//ADC采样值到电压的转换 printf("Light voltage:%.3frn",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 远程连接工具串口连接要选择一样的参数 然后就可以看到串口打印出来的电压值 用手机手电筒照到环境光传感器可以看到电压变化
上一篇:STM32L4系列 ADC基本原理
下一篇:stm32f429 中通过基本定时器中断控制LED灯亮一秒、灭一秒
推荐阅读
史海拾趣
诚润电子深知,一个优秀的团队是企业成功的关键。因此,他们一直致力于打造一支高素质、专业化的团队。公司注重员工的培训和发展,为员工提供广阔的职业发展空间和良好的福利待遇。同时,诚润电子还积极营造一种积极向上的企业文化氛围,让员工在工作中感受到归属感和成就感。这种良好的团队建设机制为诚润电子的持续发展提供了有力的保障。
随着汽车、通用工程、液压/气动、珠宝和医疗设备等行业对高精度切削工具需求的增长,Horn公司不断加大研发投入。公司成功开发出超硬切削材料如单晶金刚石(MCD)、多晶金刚石(PCD)和立方氮化硼(PCBN),这些材料的应用极大地提高了切削效率和加工精度。Horn公司的技术创新不仅满足了市场对高质量刀具的需求,还推动了整个切削工具行业的进步。
BOCA公司最初是一家小型电子元件制造商,面临着激烈的市场竞争。然而,公司始终坚持研发创新,投入大量资源于新技术的研究。终于,在一次偶然的实验中,BOCA的研发团队成功开发出了一种新型的半导体材料,这种材料在性能上远超当时的行业标准。这一技术突破让BOCA迅速在行业中崭露头角,订单量激增,公司规模迅速扩大。
在压电警报器领域,CUI Devices凭借其卓越的技术和产品质量,赢得了全球市场的广泛认可。根据最新的行业报告,CUI Devices在全球压电警报器市场中位列第一梯队,与SATEP、Adafruit Industries LLC和Challenge Electronics等核心厂商共同占据了可观的市场份额。这一成绩的取得,离不开公司多年来的技术创新和市场拓展。
电子项目合作群QQ:86455552 本人从事电子设计工作10年以上经验,有扎实的模拟及数字电路 专业知识。有一定EMC、ESD、安规知识;懂射频、开关电源的设 计;会C51、PIC、MSP430、ARM等系列单片机编程。有验钞机, 按摩椅,麻将机,工业仪表、工控 ...… 查看全部问答∨ |
|
还在为送MM的礼品而担心吗 ___花___已不再新兴了 呵呵 只要22元 就为送MM的礼品就搞定! 这是一款新潮的USB或放入3个7号电池双供电实用美观的闪字风扇,不需要电脑可以自由编写内容,彰显你的个性,风扇转动时,编辑的字符会转动,内容 ...… 查看全部问答∨ |
|
我修改了一个cpu的配置文件mainstoneii.inc然后再public的csp下和platform的common和bsp下都用了build -c来编译,但是我发现无论我怎么改里面被调用到的问件,重新编译后配置内存的那个寄存器的置还是我没有改过的 这是为什么呢… 查看全部问答∨ |
使用keil写单片机程序时,在程序运行阶段是不允许修改code段中的内容的,但是,我现在想实现动态加载模块的功能,需要在程序运行的时候修改code段的内容. 请问有什么办法在程序运行期间修改code段的内容? ...… 查看全部问答∨ |
请问Windows Embedded CE 6.0 为什么只有评估版? 我在网上到处找Windows Embedded CE 6.0的正式版,但是没有。全都是评估版。请问各位哪里有正式版下载?谢谢。… 查看全部问答∨ |
|
看STM32的资料上写着APB1总线上的设备最高可以到36MHz,可是仿真的时候显示为72MHz,用示波器看也没发现问题,难道器件手册上写错了????谁知道是为什么?附件为仿真截图。 下载 (276.17 KB) 2010-11-17 10:57 … 查看全部问答∨ |