STM32读写 W25X20 W25X10 ,硬件SPI;stm32;电子开发
2021-08-09 13:08:15 5KB stm32 spiflash 华邦
1
华邦W25系列SPI FLASH读写C语语言动源码(单片机),已在STM32单片机调试测试,可以做为你的学习设计参考。 ain.c文件: #include "stm32f10x_it.h" #include"hw_conf.h" #include "spi_flash.h" void delay(int d); u8 DataByte=0; u8 Tx_Buffer[] = {0x72,0x62,0x02,0x78,0x60,0x96,0x86,0x79,0x85,0x24,0x36,0x48}; u8 Rx_Buffer[BufferSize]; vu32 FLASH_ID = 0; int main(void) { #ifdef DEBUG debug(); #endif Setup_System(); SPI_FLASH_Init(); //SPI_FLASH_ByteWrite(0x72, 0x01F01F); //DataByte = SPI_FLASH_ByteRead(0x01F01F); //DataByte = SPI_Flash_ReadStatusRegister(); //SPI_FLASH_SectorErase(0x01F01F); //SPI_FLASH_BulkErase(0x01F01F); //SPI_FLASH_ChipErase(); //DataByte = SPI_FLASH_FasttRead(0x01F01F); //DataByte = SPI_Flash_ReadStatusRegister(); //DataByte = SPI_FLASH_ReadDeviceID(); //SPI_FLASH_ReadManuID_DeviceID(0x000000); //SPI_FLASH_ReadJedecID(); SPI_FLASH_PageWrite(Tx_Buffer, 0x01F01F, 10); SPI_FLASH_BufferRead(Rx_Buffer, 0x01F01F, 4); while (1) { if(Rx_Buffer[0]==0x72) { GPIO_WriteBit(GPIOC,GPIO_Pin_6,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOC,GPIO_Pin_6))); delay(100); } if(Rx_Buffer[1]==0x62) { GPIO_WriteBit(GPIOC,GPIO_Pin_7,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOC,GPIO_Pin_7))); delay(100); } if(Rx_Buffer[2]==0x02) { GPIO_WriteBit(GPIOC,GPIO_Pin_4,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOC,GPIO_Pin_4))); delay(100); } if(Rx_Buffer[3]==0x78) { GPIO_WriteBit(GPIOC,GPIO_Pin_5,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOC,GPIO_Pin_5))); delay(100); } } }
IIC接口E2PROM(AT24C64) 读写VERILOG 驱动源码+仿真激励文件: module i2c_dri #( parameter SLAVE_ADDR = 7'b1010000 , //EEPROM从机地址 parameter CLK_FREQ = 26'd50_000_000, //模块输入的时钟频率 parameter I2C_FREQ = 18'd250_000 //IIC_SCL的时钟频率 ) ( input clk , input rst_n , //i2c interface input i2c_exec , //I2C触发执行信号 input bit_ctrl , //字地址位控制(16b/8b) input i2c_rh_wl , //I2C读写控制信号 input [15:0] i2c_addr , //I2C器件内地址 input [ 7:0] i2c_data_w , //I2C要写的数据 output reg [ 7:0] i2c_data_r , //I2C读出的数据 output reg i2c_done , //I2C一次操作完成 output reg i2c_ack , //I2C应答标志 0:应答 1:未应答 output reg scl , //I2C的SCL时钟信号 inout sda , //I2C的SDA信号 //user interface output reg dri_clk //驱动I2C操作的驱动时钟 ); //localparam define localparam st_idle = 8'b0000_0001; //空闲状态 localparam st_sladdr = 8'b0000_0010; //发送器件地址(slave address) localparam st_addr16 = 8'b0000_0100; //发送16位字地址 localparam st_addr8 = 8'b0000_1000; //发送8位字地址 localparam st_data_wr = 8'b0001_0000; //写数据(8 bit) localparam st_addr_rd = 8'b0010_0000; //发送器件地址读 localparam st_data_rd = 8'b0100_0000; //读数据(8 bit) localparam st_stop = 8'b1000_0000; //结束I2C操作 //reg define reg sda_dir ; //I2C数据(SDA)方向控制 reg sda_out ; //SDA输出信号 reg st_done ; //状态结束 reg wr_flag ; //写标志 reg [ 6:0] cnt ; //计数 reg [ 7:0] cur_state ; //状态机当前状态 reg [ 7:0] next_state; //状态机下一状态 reg [15:0] addr_t ; //地址 reg [ 7:0] data_r ; //读取的数据 reg [ 7:0] data_wr_t ; //I2C需写的数据的临时寄存 reg [ 9:0] clk_cnt ; //分频时
699大洋买的SK-LINK I350-T4 intel英特尔I350AM4芯片服务器网卡PCI-E X4转四电口网卡,通过读卡器读出的(e2prom+spiflash)配置BIN文件, 可以直接用于的I350AM4 PCIE千兆网卡设计: st-25p40vp-spiflash.bin st-m95256wp-eeprom.bin
本资源为w25qxx系列flash的spi驱动代码 包含spi.h和spi.c和w25qxx.h和w25qxx.c四个驱动文件和头文件
2021-06-04 10:26:54 7KB spi flash w25qxx驱动 嵌入式
1
PCIE X4转4路千兆网intel_i350 e2prom+spiflash 4光口4电口配置文件,用于I350网卡硬件开发: i350_at25256_NET.bin i350_at25256_SFP.bin i350_m25p40_NET.bin i350_m25p40_SFP.bin
spiflash w25q128驱动函数 包含block擦数,sector擦数 页写 多页写 页读 多页读函数 已调试通过
2021-04-29 15:58:53 4KB spiflash w25q128
1
SPIFlash W25Q64 新唐单片机程序 可读,可写, 基本的操作
2021-04-21 16:23:49 2.39MB SPI Flash W25Q64 新唐单片机
1
很好用flash烧录工具,带回读和校验,支持众多flash型号。
2021-04-19 14:00:41 18.89MB flash tools software spiflash
1
本代码系参考I2C协议E2PROM的数据手册,纯手工编写,拥有大量的中文注释,并且配合测试代码,可以直接使用. 使用飓风2代FPGA,24C02 型号的E2PROM. 经测试在300MHZ的时钟频率下(测试代码和SRAM控制代码的时钟同步)可以稳定运行,欢迎参考. 自己编的程序,多要些分数,请见谅.
2021-04-17 21:16:44 835KB FPGA VHDL I2C E2PROM
1