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

2019-07-20 11:57发布

求助下论坛里面的大神们!
最近在设计一个信号发生器。主控芯片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]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
laumou
1楼-- · 2019-07-20 14:00
大家看到的也帮忙顶下。。谢谢了
laumou
2楼-- · 2019-07-20 15:15
 精彩回答 2  元偷偷看……
胡图图图
3楼-- · 2019-07-20 20:47
帮顶帮顶,虽然我自己题目都没看懂

一周热门 更多>