完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
void VS_Soft_Reset(void)
{ u8 retry; SPIx_SetSpeed(SPI_SPEED_256); //256分频 超低速 281.25Khz while(VS_DQ==0); //等待空闲 SPIx_ReadWriteByte(0X00); //启动传输 retry=0; VS10XX_ID=VS_RD_Reg(SPI_STATUS);//读取状态寄存器 VS10XX_ID>>=4; //得到VS10XX的芯片信号 if(VS10XX_ID==VS1053)VS_WR_Cmd(SPI_MODE,0x0816);//软件复位,新模式 else VS_WR_Cmd(SPI_MODE,0x0804); //软件复位,新模式 while(VS_DQ==0&&retry<200) //等待DREQ为高 { retry++; delay_us(50); }; retry=0; while(VS_RD_Reg(SPI_CLOCKF)!=0X9800)//等待设置成功 { VS_WR_Cmd(SPI_CLOCKF,0X9800); //设置VS10XX的时钟,3.5倍频 ,2xADD if(retry++>100)break; } VS_Rst_Decodetime(); //复位解码时间 //向VS10XX发送4个字节无效数据,用以启动SPI发送 SPIx_SetSpeed(SPI_SPEED_8); //8分频速度 VS_XDCS=0; //选中数据传输 记得,这里一定要传送0X00 SPIx_ReadWriteByte(0X0); SPIx_ReadWriteByte(0X0); SPIx_ReadWriteByte(0X0); SPIx_ReadWriteByte(0X0); VS_XDCS=1; //取消数据传输 } 最后的发送4次SPIx_ReadWriteByte(0X0);不理解,本来发送一次就可以维持MOSI的引脚为低电平,可是这里为什么发送4次呢 |
|
相关推荐
3个回答
|
|
|
这个我也没找到根据。你可以不发送4次试试,效果怎么样。如果没什么影响的话,说明不需要也可以的。
|
|
|
|
|
|
我猜想是不是VS1053内部需要一些时钟来同步呢?但是没有在数据手册中找到说明
|
|
|
|
|
|
是啊,我没找到相关的理论依据。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
4130 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
3221 浏览 1 评论
2747 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
2175 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
14939 浏览 2 评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
3084浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
1892浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
2064浏览 3评论
1976浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
2165浏览 3评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 21:47 , Processed in 0.777939 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4516