OpenEdv-开源电子网

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

帮忙看一下stm32DAC输出正弦波的频率怎么算??

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2018-10-25
在线时间
1 小时
发表于 2018-10-25 14:43:20 | 显示全部楼层 |阅读模式
1金钱
没有用到DMA和TIM
直接用以下函数
dacval=(sin(i*PI/180)+1)*4096/2;
DAC_SetChannel1Data(DAC_Align_12b_R, dacval);//设置DAC1,PA4

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10573
金钱
10573
注册时间
2014-6-12
在线时间
1022 小时
发表于 2018-10-25 15:45:45 | 显示全部楼层
这和程序执行时间有关不好算,只能实际测,不如用定时器好算。
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2018-10-25
在线时间
1 小时
 楼主| 发表于 2018-10-25 16:06:54 | 显示全部楼层
xuyaqi 发表于 2018-10-25 15:45
这和程序执行时间有关不好算,只能实际测,不如用定时器好算。

那请问一下哪种方式能达到的频率较高
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4105
金钱
4105
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-10-25 18:12:18 | 显示全部楼层
本帖最后由 edmund1234 于 2018-10-25 23:34 编辑

Ts=取样时间隔(就是你隔多么去更新DAC数据一次)
F = SinWave 的频率

dacval=sin(i*2*PI*F*Ts)*2047+2048;
回复

使用道具 举报

4

主题

71

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
443
金钱
443
注册时间
2022-1-6
在线时间
55 小时
发表于 2022-3-12 14:17:47 | 显示全部楼层
xuyaqi 发表于 2018-10-25 15:45
这和程序执行时间有关不好算,只能实际测,不如用定时器好算。

大佬我有点不太理解,不用TIM,直接是将你制作的正弦表,送到DAC,然后输出,频率是程序跑多快就是多少吗?
回复

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10573
金钱
10573
注册时间
2014-6-12
在线时间
1022 小时
发表于 2022-3-13 09:20:05 | 显示全部楼层
jinghua 发表于 2022-3-12 14:17
大佬我有点不太理解,不用TIM,直接是将你制作的正弦表,送到DAC,然后输出,频率是程序跑多快就是多少吗 ...

你的表就是根据公式算出来的,频率跟你公式有关,跟你送往DAC速率也有关。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 23:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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