STM32驱动SPI接口FLASH

STM32驱动SPI接口FLASH

ID:37553496

大小:172.50 KB

页数:14页

时间:2019-05-25

STM32驱动SPI接口FLASH_第1页
STM32驱动SPI接口FLASH_第2页
STM32驱动SPI接口FLASH_第3页
STM32驱动SPI接口FLASH_第4页
STM32驱动SPI接口FLASH_第5页
资源描述:

《STM32驱动SPI接口FLASH》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、SPI总线与IIC类似,SPI也是一种通信协议。今天我们就以WX25X16芯片为例来介绍SPI.首先我们来看下硬件连接。、从原理图可以看到该芯片需要单片机控制的管脚有4个,非别是CS,DO,DIO,CLK.其中CS是片选信号,只有将该位拉低才能选中该芯片。DO,DIO分别是输出和输入。CLK是时钟信号。SPI通信的步骤如下所示:1)获取地址12)获取地址23)擦除扇区4)写入数据好的,下面我们对每个步骤进行分析(1)在对芯片操作前先要对端口及SPI外设进行相应的设置:/*函数名:SPI_FLASH_Init(void)功能:对端口和SPI初始化输入:无输出:无调用:被主函数调用*/voidSP

2、I_FLASH_Init(void){SPI_InitTypeDefSPI_InitStructure;GPIO_InitTypeDefGPIO_InitStructure;/*EnableSPI1andGPIOclocks*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA

3、RCC_APB2Periph_GPIOD,ENABLE);/*!

4、_InitStructure.GPIO_Pin=GPIO_Pin_5;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_Init(GPIOA,&GPIO_InitStructure);/*将PA6(DO)设置成浮空输入*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;GPIO_Init(GPIOA,&GPIO_InitStructure);/将PA7(DIO)设为浮空输入/GPIO_InitStructure.GPIO_

5、Pin=GPIO_Pin_7;GPIO_Init(GPIOA,&GPIO_InitStructure);/将PA4(CS)设为推挽输出/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIOA,&GPIO_InitStructure);/拉高CS,失能芯片,该语句是宏定义,就是置高PA4/SPI_FLASH_CS_HIGH();/*SPI配置///W25X16:datainputontheDIOpinissampledontherisingedgeof

6、theCLK.//DataontheDOandDIOpinsareclockedoutonthefallingedgeofCLK./*将SPI设为全双工模式*/SPI_InitStructure.SPI_Direction=SPI_Direction_2Lines_FullDuplex;/*将SPI设为主模式*/SPI_InitStructure.SPI_Mode=SPI_Mode_Master;/*将SPI通信的数据大小设为8位*/SPI_InitStructure.SPI_DataSize=SPI_DataSize_8b;/*将CLK的高电平设为空闲*/SPI_InitStructure.

7、SPI_CPOL=SPI_CPOL_High;/*设置在第二个时钟沿捕获数据*/SPI_InitStructure.SPI_CPHA=SPI_CPHA_2Edge;/*指定NSS信号由软件管理*/SPI_InitStructure.SPI_NSS=SPI_NSS_Soft;/SPI_BaudRatePrescaler用来定义波特率预分频的值,这个值用以设置发送和接收的SCK时钟/SPI_InitStructure.SPI_BaudRatePrescaler=SPI_BaudRatePrescaler_4;/SPI_FirstBit指定了数据传输从高位还是低位开始/SPI_InitStructu

8、re.SPI_FirstBit=SPI_FirstBit_MSB;/SPI_CRCPolynomial定义了用于CRC值计算的多项式/SPI_InitStructure.SPI_CRCPolynomial=7;SPI_Init(SPI1,&SPI_InitStructure);/*EnableSPI1*/SPI_Cmd(SPI1,ENABLE);}(2)获取器件地址1因为SPI总线上可以挂很多的器

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。