参考资料:http://blog.sina.com.cn/s/blog_5e87dc1201018l1n.html

查看GD32F130FXP6用户指南的ADC章节,发现AD有两个组,4中转换模式。

一、AD两个组

1、规则通道组

通过寄存器配置把某些通道放到一组里面(GD32F130FXP6最多支持16个通道),

然后逐个转换这组通道,这组通道都转换完成后,再从头开始转换,那么这个组就

叫做规则组。

2、注入组

但是实际应用中,有可能需要临时中断规则组的转换,对某些通道进行转换,这些需要中断

规则组而进行转换的通道组,就称为注入组(GD32F130FXP6最多支持4个通道)。对于

ADC模块来说,它按规则转换规则组时,被要求临时转换规则组之外的某些通道,就好像

这组通道临时注入了原来的顺序,所以形象地称其为注入组。

一个不太恰当的比喻是:规则通道组的转换好比是程序的正常执行,而注入通道组的转换则

好比是程序正常执行之外的一个中断处理程序。

二、四中工作模式

1、单次模式

每触发一次,规则组或者注入组就转换一次,每次转换都是按着既定的通道次序转换,每次

转换完成后,EOC或者EOIC就被置位。每个通道转换,都需要触发信号。

2、连续转换模式

触发一次,规则组或者注入组就把本组所有指定的通道按着顺序,逐个转换一遍,每个通道

转换完成都会引发EOC或者EOIC就被置位,切循环不停(有待验证)。

如果使能了扫描模式,则只有当最后一个通道转换完成后,才会引发EOC或者EOIC就被置位

注:扫描模式下,要使能DMA。

3、扫描模式

触发一次,规则组或者注入组就把本组所有指定的通道按着顺序,逐个转换一遍,只有当最后

一个通道转换完成后,才会引发EOC或者EOIC就被置位。每轮转换,都需要触发信号。

注:扫描模式下,要使能DMA。

4、间断模式

规则组和注入组同时只能有一组被设置为间断模式。

规则组:可以每次选择N(<=8)个进行转换,每个分片都需要启动信号,最后一个分片转换

完成后,触发EOC。

注入组:只能每次转换一个,当注入组最后一个转换完成后,触发EOIC。

三、ADC模块初始化

初始化顺序:

1、禁止ADC模块工作(ADCON = 0);

2、设置时钟源、预分频系数;

3、设置通道采样周期,设置数据对齐方式,设置ADC工作模式;

4、设置PIN为模拟引脚或者模拟输入引脚;

5、设置规则组是否工作在间断模式、触发源选择、通道选择、是否使能中断;

6、设置注册组是否工作在间断欧式、触发源选择、通道选择、是够使能中断,是否自动注入;

7、使能ADC模式(ADCON = 1);

说明:

1、单次模式和连续模式只能任选其一,且对所有组都有效;

2、在单次模式或者连续模式下,选择是否使能扫描模式,且对所有组都有效;

3、两个组只能同时有一组工作在间断模式下,间断模式下(单次、连续、扫描设定无效);

4、单次和连续区别:单次:启动一次,转换一次(不一定是一个通道);连续:启动一次,不关闭就不停;

5、扫描模式禁止和和使能区别:禁止:每个通道转换完成,都会置位标志位;使能:只有当本组设定的最后

一个通道转换完成,才置位标志位;

6、如果使能了扫描模式,规则组必须使用DMA方式存储数据;注册组则不用(每个通道都有自己的缓存存储器);

7、使能外部触发模式,其使能位必须使能(软件触发也是外部触发类,没有找到内部触发类);

8、使能中断时候,不但要使能ADC模块中断控制位,还要通过

NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)

设置优先级;

通过NVIC_EnableIRQ(IRQn_Type IRQn) 设置相应中断向量号在内核级打开,否则不能进入中断。

(我就在这里吃了大亏,欲哭无泪。。。。。。)。

9、查询模式OK,中断不进原因

1)NVIC_EnableIRQ(IRQn_Type IRQn)没有使能;

2)启动文件里面没有注册中断向量函数(厂家提供的启动文件不全);

3)启动文件里面的中断函数名称和xxxxxx_it(例如:gd32f1x0_it)里面的中断函数名称不一致;

注意:

1、AD的校准会触发AD转换,如果这个时候中断是开启的,会进入AD中断;

GD32F130FXP6学习笔记六:cortex-m3系列的ADC初识相关推荐

  1. Java学习笔记 六、面向对象编程中级部分

    Java学习笔记 六.面向对象编程中级部分 包 包的注意事项和使用细节 访问修饰符 访问修饰符的注意事项和使用细节 面向对象编程三大特征 封装 封装的实现步骤(三步) 继承 继承的细节问题 继承的本质 ...

  2. Ethernet/IP 学习笔记六

    Ethernet/IP 学习笔记六 EtherNet/IP defines two primary types of communications: explicit and implicit (Ta ...

  3. 吴恩达《机器学习》学习笔记六——过拟合与正则化

    吴恩达<机器学习>学习笔记六--过拟合与正则化 一. 过拟合问题 1.线性回归过拟合问题 2.逻辑回归过拟合问题 3.过拟合的解决 二. 正则化后的代价函数 1.正则化思想 2.实际使用的 ...

  4. ROS学习笔记六:理解ROS服务和参数

    ROS学习笔记六:理解ROS服务和参数 主要介绍ROS服务和参数,同时使用命令行工具rosservice和rosparam. ROS service service是节点之间互相通信的另一种方式,se ...

  5. opencv 手选roi区域_【opencv学习笔记六】图像的ROI区域选择与复制

    图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...

  6. JS学习笔记六:js中的DOM操作

    1. JS学习笔记六:js中的DOM操作 文章目录 1. JS学习笔记六:js中的DOM操作 1.1. 获取Dom节点 1.2. 元素属性的操作方式 1.3. DOM节点的创建.插入和删除 1.4. ...

  7. Python学习笔记六——画小猪佩奇

    目录 Python学习笔记六--画小猪佩奇 画布 画笔 属性设置 操纵命令 运动命令 画笔控制命令 全局控制命令 其他命令 Python学习笔记六--画小猪佩奇 使用Python的turtle库可以绘 ...

  8. Learning ROS for Robotics Programming Second Edition学习笔记(六) indigo xtion pro live

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  9. 【物联网学习笔记——人人学IoT系列】二、IoT平台,能力开放

    目录 1. 解锁物联网平台,与OceanConnect相识 1.1 物联网发展的挑战 1.1.1 新业务上线周期长 1.1.2 标准不统一.集成困难 1.1.3 网络联接复杂 1.2 应对挑战的方案 ...

最新文章

  1. 002_生活口语积累
  2. Python图像处理介绍--Python中的图像表示
  3. kettle 如何使用java代码
  4. python url请求
  5. #ifdef 中的逻辑与或操作
  6. UI4_UIStepper与UIProgressView
  7. 14行代码AC——1017 A除以B (20分)(大数运算+讲解)
  8. Struts2之环境配置
  9. SpringJDBC解析3-回调函数(update为例)
  10. Python语法特点如注释规则、代码缩进、编码规范等
  11. 网络ip计算器工具_火影忍者联名款计算器上市,卡西欧玩转IP联合
  12. 中如何设置电气栅格_游戏中的设置界面如何设计?
  13. DML、DDL的概念与区别
  14. 怎样用计算机绘制幂函数图像,几何画板如何画幂函数的图像 绘制方法介绍
  15. angular使用echarts词云图wordCloud
  16. 计算机桌面提示区,电脑如何设置多时钟显示?电脑设置不同地区时钟时间显示方法...
  17. Android开发如何定制framework层服务
  18. Navicat for MySQL 安装以及初始创建连接,新建数据表
  19. ZigZag Conversion(“Z”形转换)
  20. C语言——判断是否被5整除

热门文章

  1. 请不要在Java项目中乱打印日志了,这才是正确姿势,非常实用!
  2. 鸿蒙系统支持高清通话吗,电信VoLTE开通方法介绍 所有注意点全在这了
  3. Windows下使用windeployqt打包QML项目(双击运行无反应)
  4. Maestro 薛定谔软件简单分子对接案例
  5. 决策树和K近邻分类随堂笔记(一)
  6. 怎么申请域名 域名的申请方式与流程 如何怎么买域名
  7. Android 生成自己的签名key(releasekey platform shared media networkstack verify等)
  8. 卜若的代码笔记-unityshader系列-第十七章:Shader练习.遮罩(Shader采样Image的Sprite)
  9. matlab把华氏度,MATLAB GUI实例1——摄氏度与华氏度的转换
  10. javaweb_会话管理(sessionCookie)