STM32单片机学习笔记(5):ADC模数转换器_第1页
STM32单片机学习笔记(5):ADC模数转换器_第2页
STM32单片机学习笔记(5):ADC模数转换器_第3页
STM32单片机学习笔记(5):ADC模数转换器_第4页
STM32单片机学习笔记(5):ADC模数转换器_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页STM32单片机学习笔记(5):ADC模数转换器

项目简介利用CubMX生成基于32(单片机)的HAl库工程,然后编写程序在(proteus)上(仿真)验证。本项目最适合没有开发板的同学学习,零成本利用仿真软件率先入门(STM32)单片机。这是第五部分针对STM32单片机内置(ADC)模块的学习和理解。

(硬件)模块STM32F103R4

LDR

串口模块

软件工具CubMX

Proteus

(KEIL)

电路连接图

工作流程首先创建一个CubMX工程,选择(AD)C模块

其余保持默认即可。然后就是编写程序,(程序代码)在后面会列出来,这里简单说说自己遇到的一些问题。刚开始出来的结果全是0,但是网上有人说在实物开发板上是可以正常运行的。本来想放弃选用ADC0832模块的,不过不幸的事情又发生了,因为我已经在网上找到了相关的源代码和仿真原理图,因此我一开始觉得没有什么问题,但是我的Proteus软件上没有ADC0832的仿真Model,很奇怪,为什么别人安装的Proteus上就有,我安装的就没有,我上网查也查不出来。

后来,我坚信自己的程序是没有问题的,于是开始找硬件的问题,我在Proteus的引脚配置里好好查看了一下,发现我的VSSA在GND类里,肯定是不对的,于是调整过来了。重新运行程序,发现程序直接卡死了,卡死的位置在Printf函数中,上网查了一下资料,也有许多Printf函数卡死的现象和解决办法,比较简单的就是使用usemicrolib(微库),但是我的Keil里设置的是已经采用微库了,然而网上(推荐)的是说最好不要使用微库,除非是在单片机资源很紧张的情况下,于是我就把微库勾选去掉了,哎,程序居然就好用了。最终结果如下图所示。

程序代码main.c

HAL_ADC_Start(//HAL_Delay(10);if(HAL_ADC_PollF(or)Conversion(if(HAL_IS_BIT_SET(HAL_ADC_GetState(AD_Value=HAL_ADC_GetValue(//HAL_Delay(500);//HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET);printf("theADValue%drn",AD_Value);printf("thevoltage=%.1fm(vr)n",((float)AD_Value)*5000.0/4096.0);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论