|
试验目的:芯片采用F0芯片,通过配置SPI1完成W25X16的读写。片选CS为PA1,SCK为PB3,MISO为PB4,MOSI为PB5 具体配置:
由于没有使用中断和DMA,所以中断配置不选。
程序分析: 首先要读取W25X16的ID号,需要发送0x90,加2个伪数据+0x00。同时由于ID号为2个8位数据构成,并且ST的F0芯片的SPI是要读取时需要先写,所以定义 uint8_t Data1[4] = {0x90,0x00,0x00,0x00} uint8_t Data2[2]= {0x00,0x00} uint8_t Rxdata[2]; 然后主程序中使能SPI端口:HAL_SPI_MspInit(&hspi1); 最后就是读取ID命令了,如下图
此时Rxdata=0xEF14,这个就是W25X16的ID号。 读取ID正确了,剩下的就是对Flash的操作了。 |
微信公众号
手机版
unsigned char Data[6] = {0x90,0x00,0x00,0x00,0x00,0x00};
....
HAL_SPI_TransmitReceive(&hspi3, Data, Data, 6, 1000);
....
这样Data的后两个字节就是器件的ID号
二十四节气~大雪
一般不应该是0,如果读不到,应该是FF