新手上路
- 积分
- 30
- 金钱
- 30
- 注册时间
- 2014-12-27
- 在线时间
- 0 小时
|
发表于 2015-1-19 13:54:03
|
显示全部楼层
大赞啊!!!谢谢楼主分享!!!
以前我是用软件模拟SPI驱动LD3320,之后想用硬件SPI的但一直没有调试成功,不了了之。
现在参考了一下你的工程后,我就知道我为什么用硬件SPI驱动不了LD3320了,移植官方程序的时候少了片选的操作
unsigned char LD_ReadReg( unsigned char address )
{
//下面的注释是例程,我参考这里的格式,没有意识到还要对SCS操作
//SPI_TR(0x05);
//SPI_TR(address);
//return (SPI_TR(0));
unsigned char temp;
SCS = 0; //之前一直少了这一句
SPI1_ReadWriteByte(0x05);
SPI1_ReadWriteByte(address);
temp = SPI1_ReadWriteByte(0);
SCS = 1; //之前一直少了这一句
return (temp);
}
还有SPI的初始化也从你那里学习到了一些东西。
/* SPI2 Configuration */
SPI_Cmd(SPI2, DISABLE);
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; //?????¤
SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;//这里是从第一个时钟边沿开始,原子给的例程是从第二个边沿开始,我一直用SPI_CPHA_2Edge,所以也一直不成功
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_16;
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
SPI_InitStructure.SPI_CRCPolynomial = 7;
SPI_Init(SPI2, &SPI_InitStructure);
/* SPI2 ENABLE */
SPI_Cmd(SPI2, ENABLE);
接下来我要尝试播放MP3。 |
|