历史上的今天
返回首页

历史上的今天

今天是:2024年12月12日(星期四)

正在发生

2019年12月12日 | Stm32f103 DAC 学习笔记

2019-12-12 来源:eefocus

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


用的是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 }


推荐阅读

史海拾趣

上海晶丰明源(BPS)公司的发展小趣事

随着公司的快速发展,晶丰明源于XXXX年成功通过科创板上市审核,正式登陆资本市场。这一重大事件不仅为公司带来了充裕的资金支持,也进一步提升了公司的品牌影响力和市场竞争力。借助资本市场的力量,晶丰明源得以加速研发进程、扩大生产规模,为公司的长远发展奠定了坚实基础。

台湾远翔(Feeling Technology)公司的发展小趣事

2015年,乔光电子经历了重大股权变更,现任总经理颜非接手公司后,开启了二次创业之路。2018年,公司在漳平市选址购地,并于2019年开始建设新工厂,同时决定构建自己的品牌。这一决策虽然对原有客户造成了一定冲击,但颜非坚信品牌是企业的灵魂,坚持走品牌化道路。经过几年的努力,乔光电子不仅成功打造了“FTR”自主品牌,还获得了“UL&TUV&VDE&CQC”等安规认证和多项国家专利证书,品牌影响力显著提升。

Feller US公司的发展小趣事

随着市场竞争的加剧和资金问题的持续困扰,菲斯克在某一时期不得不宣布停产六周。这一决定引发了外界的广泛关注和质疑。然而,菲斯克并没有因此放弃,而是利用这段时间进行了深入的内部反思和策略调整。通过优化生产流程、降低成本以及加强与其他汽车制造商的合作,公司逐渐走出了困境,重新焕发出新的生机。

ABL Aluminum Components公司的发展小趣事

随着技术的成熟,ABL公司开始积极拓展市场。公司通过与大型电子产品制造商建立合作关系,将其铝合金组件应用于更广泛的领域。同时,ABL公司也注重品牌建设,通过参加行业展会、发布技术白皮书等方式,提升公司在业内的知名度和影响力。随着市场份额的逐步扩大,ABL公司逐渐成为了电子行业铝合金组件领域的领军企业。

Compound Photonics公司的发展小趣事

Compound Photonics公司成立于2007年,其初期发展并不顺利。然而,一个关键的转折点出现在公司收购Syntax-Brillian的专利之后。Syntax-Brillian是一家在微显示领域有着深厚技术积累的公司,其核心在于早年间收购的Colorado Microdisplays/Zight专利。这次收购使得Compound Photonics获得了进入微显示领域的重要技术基础,为后续的发展奠定了坚实的基础。

Fabrimex AG公司的发展小趣事

1979年,Fabrimex AG接管了ARCO-Solar(美国)的代表处,标志着公司正式进入光伏领域。这一举措为公司带来了新的增长点,并推动了相关产品的研发和生产。随着光伏技术的不断发展,Fabrimex AG在光伏领域逐渐取得了显著的成绩,为公司带来了可观的收益。

问答坊 | AI 解惑

有谁画过高频类的PCB板啊??

本帖最后由 paulhyde 于 2014-9-15 09:16 编辑 有谁画过高频类的PCB板并且性能稳定,我以前画的总是干扰太大,网上的一些抗干扰的方法说的又比较抽象,没有具体实物 请画过的帮忙传一份上来吧,小弟下回去研究研究。最好能有一些注释说明的 ...…

查看全部问答>

求助加速度计应用

最近再做单片机的课程设计,求各位大虾给点帮助,是基于MMA7455L加速度计芯片的。 1。编程使用IIC接口读取加速度值,并在数码管显示 2。倾斜加速度计电路板,根据左倾斜还是右倾斜,决定8个LED灯是左流水还是右流水 3。根据加速度计电路板的倾斜 ...…

查看全部问答>

月薪1万找蓝牙开发工程师【上海】

我们公司要招一名Linux下的蓝牙开发工程师。公司地址在上海中山公园附近。薪资待遇1万/月。 职位要求: 1、精通LINUX系统以及C/C++编程(必须)。 2、熟悉嵌入式系统、单片机的开发。 3、精通蓝牙协议、蓝牙应用开发(必须)。 4、至少三年以 ...…

查看全部问答>

Tab Control

利用EVC建立了一个基于Win32的应用程序,想在对话框中加入Tab Control控件,不知怎么加,请大家帮帮忙.谢谢!…

查看全部问答>

谁用过智能IC卡,用谁家的?一起讨论一下...

谁用过智能IC卡,用谁家的?一起讨论一下... 谁用过智能IC卡,我用过握奇的,当时用c语言写的,太难了... …

查看全部问答>

电路延时与电压,温度的关系

电源电压越高,电路延时越小,  而环境温度越高,电路延时越大  …

查看全部问答>

MSP430F149与CS8900A接口电路

    CS8900、CS8900A芯片是Cirrus Logic公司生产的一种局域网处理芯片,在嵌入式领域中使用非常常见。它的封装是100-pin TQFP,内部集成了在片RAM、10BASE-T收发滤波器,并且提供8位和16位两种接口,一般在单片机中,使用了CS8900的8位 ...…

查看全部问答>

今天收到了2.4寸触摸屏,但不知道怎么连,求助

今天收到了触摸屏,但是不知道怎么连线,还望高人指点啊。另外想问下直接接5V的供电会烧坏吗?…

查看全部问答>

TINA-TI 9

本帖最后由 dontium 于 2015-1-23 12:42 编辑 TINA-TI 9 能进行单片机仿真吗?? 大家都用什么单片仿真软件,除了proteus [ 本帖最后由 c654723069 于 2012-12-7 19:15 编辑 ] …

查看全部问答>

【玩转C2000 Launchpad】RAM调度模板

最近也在学习C2000,如果用库的话可以在controlSTIUE的例程的目录中,复制一个,然后在其工程中编制自己的程序。其好处是可以在FLASH中运行。     但我看坛子里的童鞋都用非库。所以我也看看非库但非库只能在RAM中运行。至于怎么在FLASH ...…

查看全部问答>