- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STM32经典学习资料SPI
SPI总线
与IIC类似,SPI也是一种通信协议。今天我们就以WX25X16芯片为例来介绍SPI.首先我们来看下硬件连接。
、从原理图可以看到该芯片需要单片机控制的管脚有4个,分别是CS,DO,DIO,CLK.其中CS是片选信号,只有将该位拉低才能选中该芯片。DO,DIO分别是输出和输入。CLK是时钟信号。
SPI通信的步骤如下所示:
获取地址1
获取地址2
擦除扇区
写入数据
好的,下面我们对每个步骤进行分析
在对芯片操作前先要对端口及SPI外设进行相应的设置:
/*
函数名:SPI_FLASH_Init(void)
功能 :对端口和SPI初始化
输入 :无
输出 :无
调用 :被主函数调用
*/
void SPI_FLASH_Init(void)
{
SPI_InitTypeDef SPI_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
/* Enable SPI1 and GPIO clocks */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOD, ENABLE);
/*! SPI_FLASH_SPI Periph clock enable */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);
/*将PA5(CLK)配置成复用推挽输出 */
GPIO_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_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: data input on the DIO pin is sampled on the rising edge of the CLK.
// Data on the DO and DIO pins are clocked out on the falling edge of CLK.
/*将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.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指定了数据
您可能关注的文档
- Soundbook便携蓝牙音箱使用手册.doc
- Spring中的事务管理技术.doc
- SPSS.教程(统计软件).doc
- spss复习重点.doc
- Spss教程2软件基本功能介绍.doc
- spss的应用.doc
- SP安装JAVA游戏改中文名的方法.doc
- SQL-Server课内实验报告.docx
- SQL2005实习报告.doc
- SQLServer2000数据库的安装及数据库问题解决.doc
- Sony索尼TVs, Monitors & Projectors KP-53XBR4CT Operating Instructions_英文说明书用户手册.pdf
- Sony索尼TVs, Monitors & Projectors KP-46S3K Operating Instructions_英文说明书用户手册.pdf
- Sony索尼Headphones, Audio & Video MHC-VX8 Operating Instructions_英文说明书用户手册.pdf
- Sony索尼Headphones, Audio & Video MHC-RG444S Operating Instructions_英文说明书用户手册.pdf
- Sony索尼Headphones, Audio & Video MHC-RV2 使用說明書_繁体中文.pdf
- Sony索尼Headphones, Audio & Video MHC-WZ8D Operating Instructions(第2份)_英文.pdf
- Sony索尼Headphones, Audio & Video MHC-GN1100D Operating Instructions_英文说明书用户手册.pdf
- Sony索尼Headphones, Audio & Video SBH52 Help Guide (Web manual)_英文说明书用户手册.pdf
- Sony索尼Headphones, Audio & Video MHC-V4D Operating Instructions_英文说明书用户手册.pdf
- Sony索尼Headphones, Audio & Video MHC-RG470 Operating Instructions_英文说明书用户手册.pdf
文档评论(0)