本教程作者为ICkey网友@HelloWii ,回帖参与讨论、提问、分享,就能赢取超多丰厚奖励哦~
@HelloWii 也将随时和大家交流学习中的问题。(PS:本教程未经允许谢绝转载)
学教程,送奖励,活动说明详见:
【新技能get√】开发板STM32F429I Discovery技术一起学起来
ADC(Analoag to Digital Conventor)
模拟到模拟转换器,这个现在已经成了单片机的标配了,市场上的单片机很少有不带数模转换器的,只不过精度和采样频率可能有很大的差距。宏晶科技的STC12是国内的不错的51单片机,超高的性价比,一块才4元左右,同样也具有ADC,以前一颗普通的ADC芯片可能要好几块钱,不得感叹科技的进步太快,倘若不去学习新知识,很快就会被落下。
STM32F4系列拥有12bit
的逐次逼近ADC,具有19个输入通道。其中19个通道,三个内部通道来测量内部源和VBAT的信号,16个可以测量外部的通道。可进行单次、连续、扫描活断续模式的AD转换。
ADC特性
12bit 、
10bit 、8bit
、6bit
可配置分辨率
转换完成、注入转换结果、模拟看门狗、溢出时间等情况下可产生中断
单次和连续转换模式
扫描模式自动转换通道0到通道N
内部数据一致性的对齐
通道采样时间间隔可编程
外部触发配置规则组 和外部触发极性选择
非连续模式
双/三模式 (具有2个ADC以上的设备)
可配置DMA存储在双/三模式下
可配置转换延时在双/三交错模式下
ADC 转换类型(参考数据手册)
ADC供电在2.4V-3.6V
可全速运行,当电压下降到1.8V慢速运行
ADC输入电压范围:
VREF– ≤
VIN ≤
VREF+
图5-1:ADC框架图
ADC固件库使用如下:
This file provides firmware functions to manage the
following
functionalities of the Analog to
Digital Convertor (ADC) peripheral:
+ Initialization and Configuration
(in addition to ADC multi mode
selection)
+ Analog Watchdog configuration
+ Temperature Sensor & Vrefint
(Voltage Reference internal) & VBAT
management
+ Regular Channels Configuration
+ Regular Channels DMA Configuration
+ Injected channels Configuration
+ Interrupts and flags management
ADC初始化和配置,首先要启用ADC的时钟:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADCx,ENABLE);
配置ADC的引脚选择:
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOx,ENABLE);
其它的在 ADC_Init(); 对ADC的一些模式进行配置,ADC_Cmd()使能ADC。
DMA(Direct
Memory Access)
直接内存访问用的来提供高速上数据外设和内存之间、内存与内存的数据传输。数据可以快速移动,通过DMA而不需要CPU的干预,不占用CPU的时间。
DMA控制器结合一个功能强大的双AHB主总线结构,具有独立的FIFO,在一个复杂的总线矩阵控制结构的基础上,优化系统的带宽。
图5-2:DMA框架图
打开STM32F429I-Discovery_FW_V1.0.1ProjectsPeripheral_ExamplesADC_DMAEWARM
ADC_DMA.eww编译下载到F429开发板中,就可以看到如下下的内容(ADC使用的CH13通道,对应的是PC3引脚)。
悬空效果如下:
图5-3:悬空
接地、接3V0效果如下:
图5-4:ADC效果
CooCoX CoIDE
CoIDE 是一个免费的集成开发环境致力ARM
Cortex-M0/M0+/M3/M4处理器的开发。使用GCC(GCC-ARM-Embedded),工具链,基于eclipse。
CooCox隶属于全球领先的电子元器件分销商英国派睿(Premier
Farnell)集团,是派睿旗下独立的开发工具品牌。CooCox的人员组织、知识产权均归属于派睿。
派睿于2011年底收购了CooCox和英蓓特信息技术有限公司,并整合成一家公司:英蓓特科技。
CooCox起源于武汉理工大学UP
Team的研究项目,至今仍有武汉理工的老师和学生参与。
Logo Logo CooCox品牌名称的含义是Cooperate
on Cortex。
自2009年成立之日起,CooCox团队就一直致力于为用户提供免费和开源的ARM开发工具,专注于ARM
Cortex M系列的开发。
目前CooCox工具已支持大部分主流Cortex
M4,M3,M0和M0+芯片。
CooCox IDE下载:http://www.coocox.org/index.html
注:CooCoxIDE下载需要注册用户。
下载安装CooCoxIDE如下:
图5-5:CooCox 安装
安装完成之后,并不能直接开发。因为CooCox
IDE是基于Eclipse的,所以用过eclipse的可能都知道,需要在安装GCC的工具链。并在CoooCoxIDE中配置。
GCC编译器下载:https://launchpad.net/gcc-arm-embedded/+download
下载的版本我选择的是最新的。如下图所示:
图5-6:GCC版本
安装好之后,在CooCoxIDE中选择 Project -> Select Toolchain Path 然后点选刚刚才安装的 GCC的目录的bin文件夹 。如下图所示:
图5-7:GCC 配置
图5-8:工具链选择
示波器对攻城狮来说是很重要的一个东西,我自己编写了一下,感觉效果并不是理想,就用了一个国外的牛人写的一个现成示波器的案例(地址:http://mikrocontroller.bplaced.net/wordpress/?page_id=3290),这里做个分析:
因为它的项目是用的CooCox
IDE这也是之前我们为何介绍CooCoxIDE开发环境的原因。
示波器通道1和2分别对应的是PA5和PA7引脚。
CH1 an PA5
CH2 an PA7
示波器的源码可以去上面的网站下载,也可以在帖子的附件里下载,都是一样的。
打开CooCoxIDE环境 Project -> OpenProject …点击刚刚你下载的示波器项目文件,如下所示:
图5-9:DSCO项目选择
点击编译。
右击项目,选择Configuration 如下所示:
图5-10:项目配置
然后选择Download,在Programming Algorithm选择default。如下图所示:
图5-11:下载选择
点击下载,等待如下图所示,即可将文件烧录到开发板中。
图5-12:下载完成
整体界面如下。接入 1KHz vpp=2V 的方波信号之后的显示:
图5-13:效果图
功能还是蛮强大的,通过点击屏幕可以出现相应的按键,调节各个功能参数,
如下图所示:
图 5-14:效果图
图5-15:具体演示
工程的大体结构如下:
图5-16:工程目录
好吧,这一讲都到这里,具体的内容还是靠自己去学习,多去看官网的资料,多去翻看固件库。。。
希望这些东西对你能有用处,倘若对你有用,我心里也会非常开心的。
有什么问题可以跟帖回复。
分享铸就美好未来。。。
【新技能get】开发板一起学起来——STM32F429 Discovery简介
示波器源代码:
|