1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include "SST25VF016B.h"
#include "spi.h" //¶Áȡ״̬¼Ä´æÆ÷ uint8_t SST25VF016B_RDSR(void) { uint8_t Read_RDSR[1]; uint8_t cmd[1]; cmd[0]=0x05; SPI_CS_L; HAL_SPI_Transmit( hspi1,cmd,1,1000); HAL_SPI_Receive( hspi1, Read_RDSR[0],1,1000); SPI_CS_H; return Read_RDSR[0]; } //æ¼ì²â void SST25VF016B_BUSY(void) { uint8_t state=1; do { state=SST25VF016B_RDSR(); } while((state 0x01)==0x01); //״̬¼Ä´æÆ÷×îµÍλΪæ¼ì²âλ } //дʹÄÜ void SST25VF016B_WREN(void) { uint8_t cmd[1]; cmd[0]=0x06; SST25VF016B_BUSY(); SPI_CS_L; HAL_SPI_Transmit( hspi1,cmd,1,1000); SPI_CS_H; } //д½ûÖ¹ void SST25VF016B_WRDI(void) { uint8_t cmd[1]; cmd[0]=0x04; SST25VF016B_BUSY(); SPI_CS_L; HAL_SPI_Transmit( hspi1,cmd,1,1000); SPI_CS_H; } //ʹÄÜд״̬¼Ä´æÆ÷£¨EWSR£©;д״̬¼Ä´æÆ÷£¨WRSR£© void SST25VF016B_EWSR_WRSR(void) { uint8_t cmd[2]; cmd[0]=0x50; cmd[1]=0x01; SST25VF016B_BUSY(); SPI_CS_L; HAL_SPI_Transmit( hspi1, cmd[0],1,1000); SPI_CS_H; HAL_Delay(2); SPI_CS_L; HAL_SPI_Transmit( hspi1, cmd[1],1,1000); HAL_SPI_Transmit( hspi1,0,1,1000); //״̬¼Ä´æÆ÷ÇåÁã SPI_CS_H; SST25VF016B_BUSY(); } //¶ÁÈ¡ID void SST25VF016B_READ_ID(uint8_t *ID) { uint8_t cmd[4]={0x90,0x00,0x00,0x00}; // uint8_t data[2]={0x00,0x00}; //¼ì²âæ״̬ SST25VF016B_BUSY(); SST25VF016B_EWSR_WRSR(); SST25VF016B_WREN(); SPI_CS_L; HAL_SPI_Transmit( hspi1,cmd,4,1000);//·¢ËͶÁÈ¡IDÃüÁî¡£ÁíÍâ·¢ËÍ3¸ö×Ö½ÚµØַλ // HAL_SPI_TransmitReceive( hspi1,data,ID,2,1000); HAL_SPI_Receive( hspi1,ID,2,1000); //¶ÁÈ¡ID SPI_CS_H; SST25VF016B_BUSY(); } //4K²Á³ý void SST25VF016B_4K_Sector(uint32_t addr) { uint8_t cmd[4]; cmd[0]=0x20; cmd[1]=(addr 0xFFFFFF)>>16; cmd[2]=(addr 0xFFFF)>>8; cmd[3]=addr 0xFF; SST25VF016B_BUSY(); SST25VF016B_EWSR_WRSR(); SST25VF016B_WREN(); SPI_CS_L; HAL_SPI_Transmit( hspi1,cmd,4,1000); SPI_CS_H; SST25VF016B_BUSY(); } //ȫƬ²Á³ý void SST25VF016B_All_Sector(void) { uint8_t cmd[1]; cmd[0]=0xc7; SST25VF016B_BUSY(); SST25VF016B_EWSR_WRSR(); SST25VF016B_WREN(); SPI_CS_L; HAL_SPI_Transmit( hspi1,cmd,1,1000); SPI_CS_H; HAL_Delay(25); SST25VF016B_BUSY(); } //дÉÈÇø //ʹÓÃÈí¼þд²Ù×÷½áÊø¼ì²éʱµÄ×Ô¶¯µÝÔö(AAI)×Ö±à³ÌÐòÁÐ void SST25VF016B_Write_Sector(uint32_t addr,uint8_t *buffer,uint16_t length) { SPI_CS_L; uint8_t cmd[4]; uint16_t i=2; uint8_t x; cmd[0]=0xAD; cmd[1]=(addr 0xFFFFFF)>>16; cmd[2]=(addr 0xFFFF)>>8; cmd[3]=addr 0xFF; SST25VF016B_BUSY(); SST25VF016B_4K_Sector(addr); SST25VF016B_EWSR_WRSR(); SST25VF016B_WREN(); SPI_CS_L; HAL_SPI_Transmit( hspi1,cmd,4,1000); HAL_SPI_Transmit( hspi1,buffer,2,1000); //дÁ½Î»Êý¾Ý SPI_CS_H; for(i=2;i>16; cmd[2]=(addr 0xFFFF)>>8; cmd[3]=addr 0xFF; cmd[4]=0; //·¢ËÍÒ»¸ö¿Õ×Ö½Ú SST25VF016B_BUSY(); SST25VF016B_WREN(); SPI_CS_L; HAL_SPI_Transmit( hspi1,cmd,5,1000); // HAL_SPI_Receive( hspi1,buffer,length,1000); for(i=0;i |
|
相关推荐
1个回答
|
|
在使用STM32 CubeMX的SPI操作SST25VF016B时,读写数据报错可能有以下几个原因:
1. SPI初始化配置错误:确保SPI的初始化配置正确,包括时钟速率、数据位宽度、CPOL、CPHA等参数。这些参数需要与SST25VF016B的数据手册中的SPI通信要求相匹配。 2. SPI_CS_L宏定义错误:确保SPI_CS_L宏定义正确,它应该控制与SST25VF016B的片选信号。如果宏定义错误,可能导致SPI通信失败。 3. SPI传输函数错误:在代码中,您使用了`HAL_SPI_Transmit`函数,但实际上应该使用`HAL_SPI_TransmitReceive`函数,因为SST25VF016B的读写操作需要同时发送和接收数据。 4. 读写命令错误:确保发送的读写命令正确。例如,您在代码中使用了0x05作为读取状态寄存器(RDSR)的命令,这是正确的。但请确保其他读写命令也正确。 5. SPI中断配置错误:如果您在CubeMX中配置了SPI中断,请确保中断优先级和中断服务函数正确设置。 6. SST25VF016B设备未正确连接:检查SST25VF016B与STM32之间的连接,确保所有引脚都已正确连接,包括SPI接口引脚、片选(CS)、时钟(CLK)、数据线(MISO和MOSI)等。 7. SST25VF016B设备未正确上电:确保SST25VF016B设备已正确上电,包括VCC和GND引脚。 8. 代码中可能存在其他逻辑错误:仔细检查代码逻辑,确保所有步骤都按照SST25VF016B的数据手册要求执行。 为了解决这些问题,请按照以下步骤操作: 1. 仔细阅读SST25VF016B的数据手册,了解其SPI通信要求。 2. 检查SPI初始化配置,确保与数据手册中的参数相匹配。 3. 修改SPI传输函数,使用`HAL_SPI_TransmitReceive`而不是`HAL_SPI_Transmit`。 4. 确保所有读写命令都正确无误。 5. 如果使用SPI中断,请检查中断配置。 6. 检查SST25VF016B与STM32之间的连接和上电情况。 7. 仔细检查代码逻辑,确保所有步骤都按照数据手册要求执行。 希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便进一步分析。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1777 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1080 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1678 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
731浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
595浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
554浏览 3评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 06:28 , Processed in 0.871659 second(s), Total 77, Slave 61 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号