OpenEdv-开源电子网

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

基于stm32F405设计的信号发生器之疑惑篇

[复制链接]

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2012-12-14
在线时间
12 小时
发表于 2017-9-14 09:07:29 | 显示全部楼层 |阅读模式
1金钱
求助下论坛里面的大神们!
最近在设计一个信号发生器。主控芯片stm32f405+AD5791,主要产生0.5-2k频率,0.05mV-2mV的正弦波信号。目前遇到的问题是我定时器技术频率设置为1Mhz,然而频率最高却只能设置为100Hz,再高一点就会出现异常,很是疑惑。DAC实现的方法是:一个周期使用1024查表数据,然后不断得在中断中刷新数据。贴上程序!!!

[mw_shl_code=applescript,true]        TIM3_Handl.Instance=TIM3; //通用定时器3

HTIM.Prescaler=42-1; //分频系数
HTIM.Period=2000000/(Fre*Point_Num) - 1; //自动重装载值;

TIM_Base_SetConfig(TIM3,&HTIM);

for(i=0;i<Point_Num;i++)
{
z=(unsigned long int)(((((1.12*AMPL*sin(2*3.1415926*i/1024))/10)+1)*1048576.0)); //负半波
}       
[/mw_shl_code]


[mw_shl_code=applescript,true]
//回调函数,定时器中断服务函数调用
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
// HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_1);
Send_Flag=1;
// LED0=~LED0;
}[/mw_shl_code]

[mw_shl_code=applescript,true]if(Send_Flag)
{
AD5791Registers[DAC_VALUE] =z[k++] ;
if(k>=Point_Num) k=0;

WriteToAD5791ViaSPI(DAC_VALUE, 1, AD5791Registers, DAC_VALUE);

AD5791HardwareLoad();       
Send_Flag=0;
}[/mw_shl_code]

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

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2012-12-14
在线时间
12 小时
 楼主| 发表于 2017-9-14 09:08:09 | 显示全部楼层
大家看到的也帮忙顶下。。谢谢了
回复

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2012-12-14
在线时间
12 小时
 楼主| 发表于 2017-9-14 09:08:42 | 显示全部楼层
大家看到的人们。。。帮忙顶!d=====( ̄▽ ̄*)b下。谢谢了
回复

使用道具 举报

13

主题

71

帖子

0

精华

高级会员

Rank: 4

积分
696
金钱
696
注册时间
2017-8-14
在线时间
131 小时
发表于 2017-9-14 09:20:50 | 显示全部楼层
帮顶帮顶,虽然我自己题目都没看懂
yi?我的二哈哪去了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-18 13:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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