完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近做一个外挂flash,使用的是w23q128,在初始化flash后写入数据和读出数据不对等。读出的数据全为0.下面是初始化和操作函数。
void init_spi(uint32_t ui32SysClock)[ SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI2);//使能SPI2时钟 SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);//使能GPIOD时钟 GPIOPinConfigure(GPIO_PD0_SSI2XDAT1);//SPI2 IO 口定义 GPIOPinConfigure(GPIO_PD1_SSI2XDAT0); GPIOPinConfigure(GPIO_PD2_SSI2FSS); GPIOPinConfigure(GPIO_PD3_SSI2CLK); GPIOPinTypeSSI(GPIO_PORTD_BASE, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3);#if defined(TARGET_IS_TM4C129_RA0) || defined(TARGET_IS_TM4C129_RA1) || defined(TARGET_IS_TM4C129_RA2) SSIConfigSetExpClk(SSI2_BASE, ui32SysClock, SSI_FRF_MOTO_MODE_0, SSI_MODE_MASTER, 1000000, 8); //设置SSI 时钟 模式#else SSIConfigSetExpClk(SSI2_BASE, SysCtlClockGet(), SSI_FRF_MOTO_MODE_0, SSI_MODE_MASTER, 1000000, 8);#endif SSIEnable(SSI2_BASE);//使能SPI2 while(SSIDataGetNonBlocking(SSI2_BASE, &SpiReviceBuf[0])) //清除缓冲区 [ ]]下面是一些操作函数void Spi_WriteByte(uint8_t TxData)[ while(SSIBusy(SSI2_BASE)) [ ] SSIDataPut(SSI2_BASE,(uint32_t) TxData);]void Spi_Flash_Write_Enable(void)[ Spi_WriteByte(W25X_WriteEnable);]void Spi_Flash_Write_Disable(void)[ Spi_WriteByte(W25X_WriteDisable);]void W25QXX_Erase_Sector(uint32_t Dst_Addr)[ Dst_Addr*=4096; Spi_Flash_Write_Enable(); W25QXX_Wait_Busy(); Spi_WriteByte(W25X_SectorErase); Spi_WriteByte((uint8_t)((Dst_Addr)>>16)); Spi_WriteByte((uint8_t)((Dst_Addr)>>8)); Spi_WriteByte((uint8_t)((Dst_Addr)>>0)); W25QXX_Wait_Busy();]uint8_t SPI_Flash_ReadSR(void)[ uint32_t data; Spi_WriteByte(W25X_ReadStatusReg); Spi_WriteByte(0xFF); while(SSIBusy(SSI2_BASE)) [ ] SSIDataGet(SSI2_BASE,&data); return (uint8_t)data;]void W25QXX_Wait_Busy()[ uint8_t Status; do[ Status = SPI_Flash_ReadSR(); Status &= 0x01; ]while(Status != 0);]void W25QXX_Read(uint8_t *pBuffer,uint32_t ReadAddr,uint16_t NumByteToRead)[ uint16_t i; uint32_t data; Spi_Flash_Write_Enable(); Spi_WriteByte(W25X_ReadData); Spi_WriteByte((uint8_t)((ReadAddr)>>16)); Spi_WriteByte((uint8_t)((ReadAddr)>>8)); Spi_WriteByte((uint8_t)((ReadAddr)>>0)); for(i=0;i mian函数中写入后读出的数据全为0原理图 |
|
相关推荐
6 个讨论
|
|
只有小组成员才能发言,加入小组>>
TMS320F28377D:新做了以377d为芯片的板子,上电后芯片复位引脚出现方波请问如何解决?
1898 浏览 0 评论
TPS55340通电后输入端保险丝烧断,芯片输入和GND之间短路
3649 浏览 4 评论
5032 浏览 0 评论
请问如何用DM368对RGB格式的图片数据进行编码生成JPEG格式图片?
1736 浏览 1 评论
9386 浏览 8 评论
CC3100BOOST使用CC3200lunchXL进行烧录
670浏览 2评论
717浏览 1评论
TMS320F28034: 利用C2prog通过SCI给TMS320F28034烧录程序,出现错误提示:Bootloading... failed (invalid echo)!
678浏览 1评论
求DLPC350 Programmer’s Guide User's Guide 中文版说明书
1200浏览 1评论
1779浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-27 07:50 , Processed in 0.630300 second(s), Total 45, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号