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的输入模式?如果都没有问题,该怎么解决?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
还不会自己做板子,洞洞板手工搭的。现在DREQ不是低电平了,但是RAM测试读SPI_HDAT0寄存器返回值是0,看代码注释说只有返回值为0x807F才表明芯片完好?原子哥能否给点意见,换第三块芯片了。。。
建议确认硬件问题先吧
可以搞个我们的模块,把1.8V芯片换成2.5V,然后焊接上去你的1003芯片,试试。
或者买个淘宝其他的1003模块,试试。
继续调试
一周热门 更多>