VS1003的DREQ为什么始终低电平?

2019-07-21 00:20发布

VS1003B硬复位过程中DREQ端一直为低导致陷入死循坏,芯片也换了,晶振并联的1M电阻也接了,SPI确认通信正常,搞了两三天没找出原因。程序参考原子哥的VS1053程序,头文件中控制端定义:
[mw_shl_code=c,true]#define VS_DQ       PAin(8)  //DREQ
#define VS_RST      PBout(10) //RST
#define VS_XCS      PBout(12)  //XCS
#define VS_XDCS     PBout(11)  //XDCS [/mw_shl_code]

VS1003初始化:
[mw_shl_code=c,true] GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB , ENABLE);       
         
  /* Configure PA10 -- PA12 as Output push-pull */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOB, &GPIO_InitStructure);
  GPIO_SetBits(GPIOB,GPIO_Pin_11);
  GPIO_SetBits(GPIOB,GPIO_Pin_12);
       
  /* Configure PA8 as GPIO_Mode_IPU */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
       
  SPI1_Config();
  SPI1_SetSpeed(SPI_BaudRatePrescaler_2);//设置为18M时钟,高速模式[/mw_shl_code]



主控芯片STM32F103C8T6,是否支持GPIO_Mode_IPU的输入模式?如果都没有问题,该怎么解决?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
peng1554
1楼-- · 2019-07-21 05:25
 精彩回答 2  元偷偷看……
正点原子
2楼-- · 2019-07-21 06:34
 精彩回答 2  元偷偷看……
袁超
3楼-- · 2019-07-21 09:43
正点原子 发表于 2019-5-30 01:54
自己做的板子?检查电路是否正常工作。

还不会自己做板子,洞洞板手工搭的。现在DREQ不是低电平了,但是RAM测试读SPI_HDAT0寄存器返回值是0,看代码注释说只有返回值为0x807F才表明芯片完好?原子哥能否给点意见,换第三块芯片了。。。
正点原子
4楼-- · 2019-07-21 12:06
袁超 发表于 2019-5-30 16:07
还不会自己做板子,洞洞板手工搭的。现在DREQ不是低电平了,但是RAM测试读SPI_HDAT0寄存器返回值是0,看 ...

建议确认硬件问题先吧
可以搞个我们的模块,把1.8V芯片换成2.5V,然后焊接上去你的1003芯片,试试。
或者买个淘宝其他的1003模块,试试。
袁超
5楼-- · 2019-07-21 13:27
 精彩回答 2  元偷偷看……
正点原子
6楼-- · 2019-07-21 13:31
袁超 发表于 2019-6-4 11:27
淘宝上买了个小的1003模块,51上测试有声音,可是接到我的STM32系统里还是这样:存储器测试返回0,正弦测 ...

继续调试

一周热门 更多>