OpenEdv-开源电子网

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

现有大概1500组数组(X Y对应关系),是我离散的汉宁窗调制的10周期的70KHZ的信号得到的,现在我想把这组数据输入STM32F4里怎..

[复制链接]

1

主题

4

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2018-4-4
在线时间
3 小时
发表于 2018-4-9 11:02:37 | 显示全部楼层 |阅读模式
1金钱

最佳答案

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

0.0001ms?也就是100ns?STM32的IO口是做不到的,你要输出数据,数据至少是byte(8位),再加上数据头尾,IO口的速度要达到100MHz左右,单片机上的兼容TTL的IO是达不到这个速度的。FPGA上的lvds外设倒是有可能。 另外,IO口输出的是方波,如果你想输出模拟信号的话,是需要放到DAC上,但是DAC速度也要跟得上才行。 某其他论坛上大神使用IO驱动电阻网络粗略的做到10MHz以上的DAC,连接在这里做个超低成本简易任意波信号发生 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

33

主题

984

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8024
金钱
8024
注册时间
2014-8-13
在线时间
1595 小时
发表于 2018-4-9 11:02:38 | 显示全部楼层
木易早早 发表于 2018-4-11 16:07
其实这里的X就是时间间隔,间隔为0.0001ms,我知道xy的函数关系,关系为y=0.5*(1-cos(2*pi*7000*x)).*(si ...

0.0001ms?也就是100ns?STM32的IO口是做不到的,你要输出数据,数据至少是byte(8位),再加上数据头尾,IO口的速度要达到100MHz左右,单片机上的兼容TTL的IO是达不到这个速度的。FPGA上的lvds外设倒是有可能。

另外,IO口输出的是方波,如果你想输出模拟信号的话,是需要放到DAC上,但是DAC速度也要跟得上才行。

某其他论坛上大神使用IO驱动电阻网络粗略的做到10MHz以上的DAC,连接在这里做个超低成本简易任意波信号发生器 10hz-200khz
回复

使用道具 举报

33

主题

984

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8024
金钱
8024
注册时间
2014-8-13
在线时间
1595 小时
发表于 2018-4-9 11:25:14 | 显示全部楼层
转成文本,然后int nArr[][] = {{x1,y1},{x2,y2},...},你需要做的就是想办法转换成{{x1,y1},{x2,y2},...},这样的文本,把他写到代码里。或者放到SD卡里读取什么的,那样可以是文本,也可以是二进制文件。
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2018-4-4
在线时间
3 小时
 楼主| 发表于 2018-4-11 15:53:08 | 显示全部楼层
mack13013 发表于 2018-4-9 11:25
转成文本,然后int nArr[][] = {{x1,y1},{x2,y2},...},你需要做的就是想办法转换成{{x1,y1},{x2,y2},...}, ...

谢谢,输入到STM32里面的地址在哪里?因为还想要把这组数据经过内部DA 转换输出波形。
回复

使用道具 举报

33

主题

984

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8024
金钱
8024
注册时间
2014-8-13
在线时间
1595 小时
发表于 2018-4-11 15:56:05 | 显示全部楼层
木易早早 发表于 2018-4-11 15:53
谢谢,输入到STM32里面的地址在哪里?因为还想要把这组数据经过内部DA 转换输出波形。

如果是int nArr[][] = {{x1,y1},{x2,y2},...},这种办法输入,那么地址就是nArr,如果是放到SD卡里读取,那么文件的首地址就是你要的地址。
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2018-4-4
在线时间
3 小时
 楼主| 发表于 2018-4-11 16:07:16 | 显示全部楼层
mack13013 发表于 2018-4-9 11:25
转成文本,然后int nArr[][] = {{x1,y1},{x2,y2},...},你需要做的就是想办法转换成{{x1,y1},{x2,y2},...}, ...

其实这里的X就是时间间隔,间隔为0.0001ms,我知道xy的函数关系,关系为y=0.5*(1-cos(2*pi*7000*x)).*(sin(2*pi*70000*x);是否可以用定时器设置中断,逐一输出y到某个IO口,然后经过示波器显示波形,自己刚接触STM32,  具体的编程是怎样的可以指教一下吗?小白一枚,谢谢。
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2018-4-4
在线时间
3 小时
 楼主| 发表于 2018-4-11 19:56:33 | 显示全部楼层
mack13013 发表于 2018-4-11 18:41
0.0001ms?也就是100ns?STM32的IO口是做不到的,你要输出数据,数据至少是byte(8位),再加上数据头尾, ...

其实我也觉得欠妥,谢谢您了,真的很有帮助。阿里嘎多。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 08:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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