OpenEdv-开源电子网

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

VS1053读不出频谱

[复制链接]

13

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
223
金钱
223
注册时间
2012-12-3
在线时间
19 小时
发表于 2014-4-7 19:58:47 | 显示全部楼层 |阅读模式
//VS1003_WriteCMD(7, 0x1804); 
VS1003_WriteCMD(7, 0x1812); 
// Read Spectrum Analyzer registers                                                                                              
for (i = 0; i < 14; i++) {  
//val = VS1003_ReadCMD(6)&0x3F; 
val = VS1003_ReadCMD(6)&0x63; 
PinPu_Val=val>>1;

其中的0x1804是VS1003的,那么VS1053的事多少呢,在手册上没找到,还有后面的0x63,求大神解释。。。不胜感激

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

使用道具 举报

0

主题

21

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2014-4-7
在线时间
1 小时
发表于 2014-4-7 21:41:59 | 显示全部楼层
//频谱显示部分
#define SPEC_DATA_BASE  0X1810  //0X1380 for VS1011
//得到频谱数据
//*specbuf:频谱数据缓存区
//返回值:频段数.
u8 VS_Get_Spec(u16 *p)
{
u8 bands;
u8 i;
    OS_CPU_SR cpu_sr=0;
OS_ENTER_CRITICAL();//进入临界区(无法被中断打断)             
VS_WR_Cmd(SPI_WRAMADDR,SPEC_DATA_BASE+2);  
bands=VS_RD_Reg(SPI_WRAM); //获取频段数                                                                                          
VS_WR_Cmd(SPI_WRAMADDR,SPEC_DATA_BASE+4);  
for (i=0;i<bands;i++) 
{  
//读到的频谱数据分为2部分,有效位为12位.范围都是0~31
//[5:0]:当前值
//[11:6]:峰值                                  
*p++=VS_RD_Reg(SPI_WRAM); //读取当前值和峰值 
  } 
OS_EXIT_CRITICAL(); //退出临界区(可以被中断打断)
return bands;
}


战舰板的综合实验,就有。>
回复 支持 反对

使用道具 举报

13

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
223
金钱
223
注册时间
2012-12-3
在线时间
19 小时
 楼主| 发表于 2014-4-8 18:42:48 | 显示全部楼层
嗯,非常感谢您!我再好好研究一下。。。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 16:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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