(图片来源网络,侵删)
ADC的基本介绍ADC的基本定义Analog-to-Digital Converter的缩写指模/数转换器或者模拟/数字转换器是指将连续变量的模拟信号转换为离散的数字信号的器件典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号ADC的主要特征12位逐次逼近型的模拟数字转换器;最多带3个ADC控制器,可以单独使用,也可以使用双重模式提高采样率;最多支持23个通道,可最多测量21个外部和2个内部信号源;支持单次和连续转换模式;转换结束,注入转换结束,和发生模拟看门狗事件时产生中断;通道0到通道n的自动扫描模式;自动校准;采样间隔可以按通道编程;规则通道和注入通道均有外部触发选项;转换结果支持左对齐或右对齐方式存储在16位数据寄存器;ADC转换时间:最大转换速率 1us(最大转换速度为1MHz,在ADCCLK=14M,采样周期为1.5个ADC时钟下得到);ADC供电要求:2.4V-3.6V;ADC输入范围:VREF- ≤ VIN ≤ VREF+STM32F10x系列芯片ADC通道和引脚对应关系 由上图中可以看出,STM32F103RCT6带3个ADC控制器,一共支持23个通道,包括21个外部和2个内部信号源;但是每个ADC控制器最多只可以有18个通道,包括16个外部和2个内部信号源 在本例程中我们将ADC采样时钟设定为8M,并按下图配置相应的参数开启中断并配置好UART1现在生成工程在工程中添加以下的程序,一秒采样一次,并将采样的结果从串口打印出来void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef hadc) //ADC??????{ unsigned int AD_Value;float Value_1; HAL_ADC_Stop_IT(&hadc1); //ADC AD_Value=HAL_ADC_GetValue(&hadc1); Value_1=(float)(AD_Value3.3/4096); printf("%.4fV\r\n",Value_1); }在main()中添加while (1) { / USER CODE END WHILE / / USER CODE BEGIN 3 /HAL_Delay(1000);HAL_ADC_Start_IT(&hadc1); }烧写 后,此时可以看到串口有采集到的ADC的值显示,当调整开拓者学习板上的可调电阻R19时,数值会发生变化,如下图:以上就是今天我们所要学习的关于ADC的内容,谢谢大家的阅读本课程中所提到的所有的设备和软件都可以在购买开拓者开发板后从相应的共享网盘中下载,目前这个开发板只有少量的样板,如果有需要可以淘宝搜索:“八闽商家” ,购买:有两种套装,一种一个开拓者学习板+一条USB线.另一种是一个开拓者学习板+JINK+USB转TTL+USB线,建议初学习者购买这个套装,因为后续的教程我们都需要用到这些设备当然也可以私信我购买 后续我将会继续更新使用这个开发板做各种测试的教程,请大家持续关注今天的教程就到这里,感谢大家的关注,后续将发布更多的教程,有兴趣的朋友请点击关注谢谢
0 评论