OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7172|回复: 8

DAC作为输出,虽然设置为模拟输入。speed选项是否还是必须的设置呢?

[复制链接]

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2014-10-25 10:54:45 | 显示全部楼层 |阅读模式
5金钱
DAC初始化代码中:
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; // 端口配置
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //模拟输入
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//DAC虽然设置为模拟输入模式,但毕竟要输出电压,这个是不是必须有呢?
  GPIO_Init(GPIOA, &GPIO_InitStructure);
  GPIO_SetBits(GPIOA,GPIO_Pin_4) ;//PA.4 输出高


最佳答案

查看完整内容[请看2#楼]

这是 F4 的 GPIO 结构图,其他系列也差不多。 貌似很复杂,但每种模式下,无论输入还是输出,信号都只有一条路径可走,CPU会自动切换到必需的路径。 寄存器也同样,只有相关的寄存器会起作用。 具体到本例: 要做 DAC 输出,首先要设置为“模拟状态”(不是 LZ 所说的“模拟输入”), 那么,什么推挽、开漏、输出速度,施密特输入,AF输出,都已经无关,一定会被 CPU 关掉或者切断。 想想看,如果你来设计 CPU,你会 ...
小小蜗牛
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11551
金钱
11551
注册时间
2014-4-1
在线时间
1316 小时
发表于 2014-10-25 10:54:46 | 显示全部楼层



这是 F4 的 GPIO 结构图,其他系列也差不多。
貌似很复杂,但每种模式下,无论输入还是输出,信号都只有一条路径可走,CPU会自动切换到必需的路径。
寄存器也同样,只有相关的寄存器会起作用。

具体到本例:
要做 DAC 输出,首先要设置为“模拟状态”(不是 LZ 所说的“模拟输入”),
那么,什么推挽、开漏、输出速度,施密特输入,AF输出,都已经无关,一定会被 CPU 关掉或者切断。
想想看,如果你来设计 CPU,你会在 DAC 输出的同时,打开数字输出功能吗?

同样道理,设置为数字输入时,什么速度、推挽、开漏都会失效。

如果图是属实的(应当就是这样),只有最右侧的上、下拉电阻和保护二极管,是对所有模式都有效的。
回复

使用道具 举报

1

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2014-9-29
在线时间
0 小时
发表于 2014-10-25 11:59:56 | 显示全部楼层
个人理解:
 端口速率实际是端口动作速率(类似于mcu硬件配置速率),并非是程序内部设定的速率。比如你程序里面写好了一段输出10Mhz方波的代码,但是使能的端口配置却只有2Mhz,这样的话实际输出的波形肯定不是10Mhz方波。至于空占比实际是多少需要做相应计算。
回复

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2015-2-27
在线时间
2 小时
发表于 2015-4-2 10:06:49 | 显示全部楼层
回复【2楼】oser:
---------------------------------
我也有这个疑惑,你说的这个是输出配置,但是设置成输入的话这个有没有必要不知道。资料上io口配置只有输出模式有速度配置
回复

使用道具 举报

28

主题

1489

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1656
金钱
1656
注册时间
2013-7-24
在线时间
1 小时
发表于 2015-4-2 10:53:37 | 显示全部楼层
库函数才有这些纠结,寄存器是没有这些疑惑的。
于20150522停用该账号:http://www.microstar.club
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
 楼主| 发表于 2015-8-14 18:48:16 | 显示全部楼层
回复【4楼】xuande:
---------------------------------
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
小小蜗牛
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
 楼主| 发表于 2015-8-14 18:57:20 | 显示全部楼层
你好,有几个地方不理解,问下你。

要做 DAC 输出,首先要设置为“模拟状态”(不是 LZ 所说的“模拟输入”),//1.为什么是模拟状态

那么,什么推挽、开漏、输出速度,施密特输入,AF输出,都已经无关,一定会被 CPU 关掉或者切断。
想想看,如果你来设计 CPU,你会在 DAC 输出的同时,打开数字输出功能吗?/*2.dac输出不应该是数字输出吗?输出的是例如12位就是占4095相应比例的一个数字。3.数字输出功能指的是什么呢,难道是上拉和下拉吗?4.然后又为什么不能打开数字输出呢?*/

同样道理,设置为数字输入时,什么速度、推挽、开漏都会失效。//什么是数字输入?
小小蜗牛
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11551
金钱
11551
注册时间
2014-4-1
在线时间
1316 小时
发表于 2015-8-14 19:38:27 | 显示全部楼层
回复【7楼】jiutianshenjian:
---------------------------------
1、模拟状态,数字状态,内部连接的器件肯定不一样。

2、你说的是“DAC器件的数字信号输入端”,它的输出只能是模拟电压。

其他问题,需要先建立概念。
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
 楼主| 发表于 2015-8-15 08:05:23 | 显示全部楼层
回复【8楼】xuande:
---------------------------------
好吧,没概念。
第二个懂了。谢谢啦。
小小蜗牛
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 04:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表