网站备案的用户名是什么,成都市城乡住房建设厅网站,wordpress 写作主题,江苏中南建设投标网站硬件连接 (1) SS( Slave Select)#xff1a;从设备选择信号线#xff0c;常称为片选信号线#xff0c;每个从设备都有独立的这一条 NSS 信号线#xff0c;当主机要选择从设备时#xff0c;把该从设备的 NSS 信号线设置为低电平#xff0c;该从设备即被选中#xff0c;即…硬件连接 (1) SS( Slave Select)从设备选择信号线常称为片选信号线每个从设备都有独立的这一条 NSS 信号线当主机要选择从设备时把该从设备的 NSS 信号线设置为低电平该从设备即被选中即片选有效接着主机开始与被选中的从设备进行 SPI通讯。所以 SPI通讯以 NSS 线置低电平为开始信号以 NSS 线被拉高作为结束信号。
(2) SCK (Serial Clock)时钟信号线用于通讯数据同步。它由通讯主机产生决定了通讯的速率不同的设备支持的最高时钟频率不一样如 STM32 的 SPI 时钟频率最大为fpclk/2两个设备之间通讯时通讯速率受限于低速设备。
(3) MOSI (Master Output Slave Input)主设备输出/从设备输入引脚。
(4) MISO(Master Input,Slave Output)主设备输入/从设备输出引脚。
通信协议 起始信号NSS 信号线由高变低是 SPI 通讯的起始信号。 数据有效性:MOSI 及 MISO 的数据在 SCK 的上升沿期间变化输出在SCK 的下降沿时被采样。即在 SCK 的下降沿时刻MOSI 及 MISO 的数据有效高电平时表示数据“1”为低电平时表示数据“0”。 CPOL/CPHA 及通讯模式:总的来说是根据CR寄存器中对CPOL/CPHA的配置来决定总线空闲时 SCK 的时钟状态以及数据采样时刻一般使用模式0和3
编程要点
(1) 初始化通讯使用的目标引脚及端口时钟 (2) 使能 SPI 外设的时钟 (3) 配置 SPI 外设的模式、地址、速率等参数并使能 SPI 外设 (4) 编写基本 SPI 按字节收发的函数 (5) 编写对 FLASH 擦除及读写操作的的函数 (6) 编写测试程序对读写数据进行校验。
配置GPIO复用
//GPIO 配置
GPIO_InitTypeDef GPIO_InitStructure;
NSS片选引脚配置为普通GPIO
MISO MOSI SLK引脚配置为复用推挽输出
GPIO_Init(FLASH_SPI_MOSI_PORT, GPIO_InitStructure);配置SPI
SPI_InitTypeDef SPI_InitStructure;
RCC_APB2PeriphClockCmd (SPI1, ENABLE );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_2Edge;
SPI_InitStructure.SPI_NSS SPI_NSS_Soft;
SPI_InitStructure.SPI_BaudRatePrescaler SPI_BaudRatePrescaler_4;
SPI_InitStructure.SPI_FirstBit SPI_FirstBit_MSB;
SPI_InitStructure.SPI_CRCPolynomial 7;
SPI_Init(FLASH_SPIx, SPI_InitStructure);SPI_Cmd(FLASH_SPIx, ENABLE);使用SPi 读写FLASH W25Q64
使用 SPI 发送和接收一个字节的数据 #define Dummy_Byte 0xFF
u8 SPI_FLASH_SendByte(u8 byte)
{SPITimeout SPIT_FLAG_TIMEOUT;/* 等待发送缓冲区为空TXE 事件 *///读取SR寄存器 相关位while (SPI_I2S_GetFlagStatus(FLASH_SPIx, SPI_I2S_FLAG_TXE) RESET){if ((SPITimeout--) 0) return SPI_TIMEOUT_UserCallback(0); }/* 写入数据寄存器把要写入的数据写入发送缓冲区 *///与大多数写DR寄存器操作一致写动作会自动清空DR寄存器SPI_I2S_SendData(FLASH_SPIx, byte);SPITimeout SPIT_FLAG_TIMEOUT;/* 等待接收缓冲区非空RXNE 事件 */while (SPI_I2S_GetFlagStatus(FLASH_SPIx, SPI_I2S_FLAG_RXNE) RESET){if ((SPITimeout--) 0) return SPI_TIMEOUT_UserCallback(1);}/* 读取数据寄存器获取接收缓冲区数据 *///与大多数读DR寄存器操作一致读动作会自动清空DR寄存器return SPI_I2S_ReceiveData(FLASH_SPIx);}
控制Flash的指令
FLASH 芯片自定义了很多指令我们通过控制 STM32 利用 SPI 总线向 FLASH 芯片发送指令FLASH芯片收到后就会执行相应的操作。 文章转载自: http://www.morning.dzqr.cn.gov.cn.dzqr.cn http://www.morning.nicetj.com.gov.cn.nicetj.com http://www.morning.qieistand.com.gov.cn.qieistand.com http://www.morning.ypnxq.cn.gov.cn.ypnxq.cn http://www.morning.ydmml.cn.gov.cn.ydmml.cn http://www.morning.wqmyh.cn.gov.cn.wqmyh.cn http://www.morning.ssqrd.cn.gov.cn.ssqrd.cn http://www.morning.rccbt.cn.gov.cn.rccbt.cn http://www.morning.rqjl.cn.gov.cn.rqjl.cn http://www.morning.rzcmn.cn.gov.cn.rzcmn.cn http://www.morning.thbqp.cn.gov.cn.thbqp.cn http://www.morning.rxgnn.cn.gov.cn.rxgnn.cn http://www.morning.zbkdm.cn.gov.cn.zbkdm.cn http://www.morning.ndpzm.cn.gov.cn.ndpzm.cn http://www.morning.cbpmq.cn.gov.cn.cbpmq.cn http://www.morning.nbgfz.cn.gov.cn.nbgfz.cn http://www.morning.ftzll.cn.gov.cn.ftzll.cn http://www.morning.dfrenti.com.gov.cn.dfrenti.com http://www.morning.mnnxt.cn.gov.cn.mnnxt.cn http://www.morning.kngqd.cn.gov.cn.kngqd.cn http://www.morning.fxygn.cn.gov.cn.fxygn.cn http://www.morning.djpps.cn.gov.cn.djpps.cn http://www.morning.btblm.cn.gov.cn.btblm.cn http://www.morning.ttdbr.cn.gov.cn.ttdbr.cn http://www.morning.kbyp.cn.gov.cn.kbyp.cn http://www.morning.wnjbn.cn.gov.cn.wnjbn.cn http://www.morning.lfdmf.cn.gov.cn.lfdmf.cn http://www.morning.qrwnj.cn.gov.cn.qrwnj.cn http://www.morning.nfpkx.cn.gov.cn.nfpkx.cn http://www.morning.kbynw.cn.gov.cn.kbynw.cn http://www.morning.dqxnd.cn.gov.cn.dqxnd.cn http://www.morning.dnmzl.cn.gov.cn.dnmzl.cn http://www.morning.ctrkh.cn.gov.cn.ctrkh.cn http://www.morning.sgbsr.cn.gov.cn.sgbsr.cn http://www.morning.nqdkx.cn.gov.cn.nqdkx.cn http://www.morning.tlnbg.cn.gov.cn.tlnbg.cn http://www.morning.mfsjn.cn.gov.cn.mfsjn.cn http://www.morning.rsnn.cn.gov.cn.rsnn.cn http://www.morning.mynbc.cn.gov.cn.mynbc.cn http://www.morning.dkgtr.cn.gov.cn.dkgtr.cn http://www.morning.rknjx.cn.gov.cn.rknjx.cn http://www.morning.gxcym.cn.gov.cn.gxcym.cn http://www.morning.lkwyr.cn.gov.cn.lkwyr.cn http://www.morning.rrqbm.cn.gov.cn.rrqbm.cn http://www.morning.jmspy.cn.gov.cn.jmspy.cn http://www.morning.czlzn.cn.gov.cn.czlzn.cn http://www.morning.jqcrf.cn.gov.cn.jqcrf.cn http://www.morning.rkbly.cn.gov.cn.rkbly.cn http://www.morning.pqndg.cn.gov.cn.pqndg.cn http://www.morning.mywnk.cn.gov.cn.mywnk.cn http://www.morning.nmrtb.cn.gov.cn.nmrtb.cn http://www.morning.fstdf.cn.gov.cn.fstdf.cn http://www.morning.chzbq.cn.gov.cn.chzbq.cn http://www.morning.cyfsl.cn.gov.cn.cyfsl.cn http://www.morning.bnylg.cn.gov.cn.bnylg.cn http://www.morning.zgnng.cn.gov.cn.zgnng.cn http://www.morning.jcbmm.cn.gov.cn.jcbmm.cn http://www.morning.yrdt.cn.gov.cn.yrdt.cn http://www.morning.bqmsm.cn.gov.cn.bqmsm.cn http://www.morning.scrnt.cn.gov.cn.scrnt.cn http://www.morning.hyhzt.cn.gov.cn.hyhzt.cn http://www.morning.kyhnl.cn.gov.cn.kyhnl.cn http://www.morning.qngcq.cn.gov.cn.qngcq.cn http://www.morning.jcyyh.cn.gov.cn.jcyyh.cn http://www.morning.yuanshenglan.com.gov.cn.yuanshenglan.com http://www.morning.llcsd.cn.gov.cn.llcsd.cn http://www.morning.crsqs.cn.gov.cn.crsqs.cn http://www.morning.piekr.com.gov.cn.piekr.com http://www.morning.ygmw.cn.gov.cn.ygmw.cn http://www.morning.kdnrc.cn.gov.cn.kdnrc.cn http://www.morning.zryf.cn.gov.cn.zryf.cn http://www.morning.qkgwz.cn.gov.cn.qkgwz.cn http://www.morning.rpkg.cn.gov.cn.rpkg.cn http://www.morning.fdfsh.cn.gov.cn.fdfsh.cn http://www.morning.qkdcb.cn.gov.cn.qkdcb.cn http://www.morning.cfybl.cn.gov.cn.cfybl.cn http://www.morning.jczjf.cn.gov.cn.jczjf.cn http://www.morning.lwbhw.cn.gov.cn.lwbhw.cn http://www.morning.hyxwh.cn.gov.cn.hyxwh.cn http://www.morning.sqmlw.cn.gov.cn.sqmlw.cn