描述

最近在做电流型信号输出的项目,遇到了些问题这里把这些解决方法做一个笔记方便以后运用。在搞这个的时候因为手册这部分讲的不是很详细,所以在使用上也遇到了些阻力。

用的是64封装的芯, 此芯ADC的基准Vref+和电源是同一个端口,Vref-共用电源地。在电池输出时AD值为0时 取样电阻100欧姆有0.66mA的电流输出,只要在初始化时只要失能端口输出缓冲,输出可到0.0025mA。OK问题就解决了。

1 void AnalogInit(void)

2 {

3 DAC_InitTypeDef DAC_InitStructure;

4 GPIO_InitTypeDef GPIO_InitStructure;

5

6 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA, ENABLE);

7 /* DAC Periph clock enable */

8 RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);

9

10 /* Configure DAC channe1 output pin */

11 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;

12 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

13 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

14 GPIO_Init(GPIOA, &GPIO_InitStructure);

15

16 /* Configure DAC channe1 output pin */

17 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;

18 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

19 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

20 GPIO_Init(GPIOA, &GPIO_InitStructure);

21

22

23 /* DAC channel1 Configuration */

24 DAC_InitStructure.DAC_Trigger = DAC_Trigger_Software;

25 DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;

26 DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable; //输出缓冲失能

27 DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_TriangleAmplitude_4095;

28

29 DAC_Init(DAC_Channel_1, &DAC_InitStructure);

30

31 /* DAC channel2 Configuration */

32 DAC_Init(DAC_Channel_2, &DAC_InitStructure);

33

34 /* Enable DAC Channel1: Once the DAC channel1 is enabled, PA.04 is

35 automatically connected to the DAC converter. */

36 DAC_Cmd(DAC_Channel_1, ENABLE);

37 /* Enable DAC Channel2: Once the DAC channel2 is enabled, PA.05 is

38 automatically connected to the DAC converter. */

39 DAC_Cmd(DAC_Channel_2, ENABLE);

40

41 }

42

43 //端口1AD值更新

44 void DAC1_update(u16 ch1)

45 {

46 ch1 = (ch1 《《4) & 0xfff0;

47 /* Set DAC Channel1 DHR12L register */

48 DAC_SetChannel1Data(DAC_Align_12b_L, ch1);

49

50 /* Start DAC Channel1 conversion by software */

51 DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE);

52 }

53

54 void DAC2_update(u16 ch2)

55 {

56 ch2 = (ch2 《《4) & 0xfff0;

57 /* Set DAC Channel2 DHR12L register */

58 DAC_SetChannel2Data(DAC_Align_12b_L, ch2);

59

60 /* Start DAC Channel1 conversion by software */

61 DAC_SoftwareTriggerCmd(DAC_Channel_2, ENABLE);

62 }

打开APP精彩内容

点击阅读全文

单片机dac c语言,基于单片机Stm32f103 DAC电流输出解决方案相关推荐

  1. 热电偶单片机代码c语言,基于单片机的热电偶发生器设计(含电路原理图,程序)...

    基于单片机的热电偶发生器设计(含电路原理图,程序)(课题申报表,任务书,开题报告,中期检查表,外文翻译,论文15000字,程序,答辩PPT) 摘 要 热电偶标准信号发生器为袖珍式键控现场检测仪表.其由 ...

  2. 单片机叮咚c语言,基于单片机的叮咚门铃.pdf

    毕业设计(论文) 题 目: 基于单片机的叮咚设计 学生姓名: 学 号: 所在学院: 专业班级: 指导教师: 目 录 前言 3 第 1 章 绪论 4 1.1. 课题背景 4 1.2. 国内外现状 4 第 ...

  3. 单片机音乐盒c语言,基于单片机的音乐盒设计与实现

    中图分类号:TP338 文献标识码:A 文章编号:1009-3044(2016)16-0234-03 音乐是由人们在长期发展中为了表达各种情感而特别挑选出来的,并组成一个固定的系统[1].音乐以其具有 ...

  4. 红外报警c语言,基于单片机的红外报警系统设计 (毕业论文).docx

    基于单片机的红外报警系统设计 (毕业论文) 基于单片机的红外报警系统设计 摘要:随着社会经济的发展,人们生活水平的不断提高,与此同时对人生安全和财产安全提到了一个新的高度,盗窃.入室抢劫等刑事案件的多 ...

  5. 110报警声+单片机c语言,基于单片机的红外报警系统设计毕业论文.docx

    基于单片机的红外报警系统设计 摘要:随着社会经济的发展,人们生活水平的不断提高,与此同时对人生安全和财产安全提到了一个新的高度,盗窃.入室抢劫等刑事案件的多发使得人们越来越渴望有一个安全生活的空间.传 ...

  6. 单片机里程计量设计c语言,基于单片机的出租车计价器的里程计算设计

    社会发展的越快,人们的生活质量越好,从以前的走路.骑自行车,再到坐公交车地铁等,到了现在出门"打的",出租车已经成为人们出门的重要代步工具了.因此出租车计价器系统也显得尤为重要.计 ...

  7. c语言单片机温度调节系统设计,基于单片机的温度控制系统的设计

    熊浚儒 何文孝 摘  要:该文在详细分析单片机应用于温度控制系统可实现功能及其工作原理后,提出一种合理的应用方法,使得将单片机应用于温度控制系统中成为可能.同时结合传感器理论分析研究单片机的实际应用, ...

  8. 基于单片机的血压计c语言,基于单片机血压计的设计

    基于血压计的设计(18000字) 摘 要 本设计制作了一台智能血压计.该血压计采用了STC12C5A60S2作为主控制器,利用专用的血压传感器作为数据采集,通过三运放仪用放大电路将信号放大,整形,将模 ...

  9. 有温度传感器的风机控制系统C语言,基于单片机的暖风机的设计任务书、开题报告...

    武汉工商学院本科毕业论文(设计) 任 务 书 论文名称: 基于单片机的暖风机的设计 学院.专业: 信息工程学院.电子信息工程 学生姓名: 指导教师: 下达时间: 2015年12月14日 一.论文(设计 ...

最新文章

  1. 代码简介:向圣诞老人和他的精灵学习Google Analytics(分析)
  2. java的自动装箱和拆箱,Java中的自动装箱和拆箱是什么?
  3. 大名鼎鼎的红黑树,你get了么?2-3树 绝对平衡 右旋转 左旋转 颜色反转
  4. 【洛谷 2709】小B的询问
  5. a commit git 参数是什么意思_git commit 命令
  6. boost::array用法的测试程序
  7. c# redis 如何设置过期时间_Redis 过期时间与内存管理
  8. 微服务的一种开源实现方式——dubbo+zookeeper
  9. @tap和@click的区别_计算属性---uview工作笔记001
  10. android开发realm多线程操作,数据库的设计:深入理解 Realm 的多线程处理机制
  11. java7jdk官网下载安装,JDK官方网站下载、安装教程及环境配置,jdk官方网站
  12. 车联网技术 应用场景 各个领域方向(大方向分析)
  13. java植物大战僵尸_JAVA课程设计——植物大战僵尸(团队)
  14. matlab中disparity,matlab disparity函数
  15. 计算机老师为什么不用伽卡他卡做文件服务器?
  16. 将视频文件旋转90°的方法
  17. Android 交互动画的统一实践
  18. 数据分析报告,就该这么写!超详细攻略奉上
  19. 用c语言手搓一个600行的类c语言解释器: 给编程初学者的解释器教程(1)- 目标和前言
  20. 大数据营销之用户画像

热门文章

  1. 数据库字段属性的详解
  2. 【自动控制原理】根轨迹法之绘制根轨迹
  3. 数据库MySQL经典面试题之SQL语句
  4. STM32的四种开发方式
  5. 【算法】时间和空间复杂度
  6. 从当前日期,获取下一年的日期
  7. 日期推算/日历(小程序)
  8. RVT贴片铝电解电容规格
  9. STM32C8T6 CAN常见波特率配置表
  10. 机器学习之随机森林RandomForestRegressor