news 2026/6/24 21:57:36

stm32 adc采集光敏传感器模块的模拟输出脚A0的值

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
stm32 adc采集光敏传感器模块的模拟输出脚A0的值
#include "stm32f10x.h" // Device header #include "delay.h" #include "stdio.h" unsigned int a; int fputc(int ch, FILE *f)//重定义打印函数,可以使用printf { while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET); USART_SendData(USART1, (uint8_t)ch); //USART1->DR = (u8) ch return ch; } int main(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); GPIO_InitTypeDef GPIO_STRUTURE; GPIO_STRUTURE.GPIO_Mode=GPIO_Mode_AF_PP; GPIO_STRUTURE.GPIO_Pin=GPIO_Pin_9; GPIO_STRUTURE.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_STRUTURE); GPIO_STRUTURE.GPIO_Mode=GPIO_Mode_IPU; GPIO_STRUTURE.GPIO_Pin=GPIO_Pin_10; GPIO_Init(GPIOA,&GPIO_STRUTURE); GPIO_STRUTURE.GPIO_Mode=GPIO_Mode_AIN; GPIO_STRUTURE.GPIO_Pin=GPIO_Pin_1;//adc1对应 GPIO_Init(GPIOA,&GPIO_STRUTURE); USART_InitTypeDef USART_STRUTURE; USART_STRUTURE.USART_BaudRate=9600; USART_STRUTURE.USART_HardwareFlowControl=USART_HardwareFlowControl_None; USART_STRUTURE.USART_Mode=USART_Mode_Tx| USART_Mode_Rx; USART_STRUTURE.USART_Parity=USART_Parity_No; USART_STRUTURE.USART_StopBits=USART_StopBits_1; USART_STRUTURE.USART_WordLength=USART_WordLength_8b; USART_Init(USART1,&USART_STRUTURE); USART_Cmd(USART1,ENABLE);//串口设置 RCC_ADCCLKConfig(RCC_PCLK2_Div6); ADC_DeInit(ADC1); ADC_InitTypeDef ADC_STRUTURE; ADC_STRUTURE.ADC_ContinuousConvMode=DISABLE; ADC_STRUTURE.ADC_DataAlign=ADC_DataAlign_Right; ADC_STRUTURE.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None; ADC_STRUTURE.ADC_Mode=ADC_Mode_Independent; ADC_STRUTURE.ADC_NbrOfChannel=1; ADC_STRUTURE.ADC_ScanConvMode=DISABLE; ADC_Init(ADC1,&ADC_STRUTURE); ADC_Cmd(ADC1,ENABLE); ADC_ResetCalibration(ADC1); while(ADC_GetResetCalibrationStatus(ADC1)); ADC_StartCalibration(ADC1); while(ADC_GetCalibrationStatus(ADC1));//adc配置 printf("你好,hello,world!\r\n");//复位键按下输出 delay(1000); while(1) { ADC_RegularChannelConfig(ADC1,ADC_Channel_1,1,ADC_SampleTime_239Cycles5); ADC_SoftwareStartConvCmd(ADC1,ENABLE); while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)== RESET); a=ADC_GetConversionValue(ADC1); printf("ADC采集值:%d\r\n", a);//循环输出 delay(1000) ; } }

光照从暗(遮挡)到亮,值越小

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/24 3:18:45

SpringBoot3多环境配置实战指南

前言在当今复杂的软件开发领域,一个应用往往需要在开发、测试、生产等多个环境中运行,每个环境的配置需求大相径庭。想象一下,在开发环境中,你可能需要频繁调试,所以希望日志更加详细,数据库连接到本地易于…

作者头像 李华
网站建设 2026/6/24 21:07:26

如何一键搞定照片格式转换?照片格式转换器实用指南

日常处理照片时,格式不兼容总能带来不少麻烦 —— 分享到社交平台需要 JPG 格式,设计海报离不开 PNG 透明底,想要节省存储空间又得用 WEBP 格式。一款好用的照片格式转换器,能轻松解决这些难题,让不同格式的照片自由切…

作者头像 李华
网站建设 2026/6/23 19:42:54

如何用Jmeter进行压力测试?

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快一、什么是压力测试软件测试中:压力测试(Stress Test),也称为强度测试、负载测试。压力测试是模拟实际应用的软硬件环…

作者头像 李华