基于STM32F051库函数版本的SPI初始化

发布者:神雕最新更新时间:2017-11-04 来源: eefocus关键字:STM32F051  库函数  SPI初始化 手机看文章 扫描二维码
随时随地手机看文章

void SPI_Init(void)

{

  GPIO_InitTypeDef  GPIO_InitStruct;

  SPI_InitTypeDef   SPI_InitStruct;

  /*!< SPI_CS_GPIO, SPI_MOSI_GPIO, SPI_MISO_GPIO, SPI_SCK_GPIO Init */

  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOF| RCC_AHBPeriph_GPIOB, ENABLE);

  RCC_APB1PeriphClockCmd(FLASH_SPI2, ENABLE); 

  /*!< Configure SPI pins: SCK */

  GPIO_InitStruct.GPIO_Pin = SCK_PIN;

  GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;

  GPIO_InitStruct.GPIO_Speed = GPIO_Speed_Level_3;

  GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;

  GPIO_InitStruct.GPIO_PuPd  = GPIO_PuPd_UP; 

  GPIO_Init(SCK_PORT, &GPIO_InitStruct);

 

  /*!< Configure SPI pins: MISO */

  GPIO_InitStruct.GPIO_Pin = MISO_PIN;

  GPIO_Init(MISO_PORT, &GPIO_InitStruct);

 

  /*!< Configure SPI pins: MOSI */

  GPIO_InitStruct.GPIO_Pin =MOSI_PIN;

  GPIO_Init(MOSI_PORT, &GPIO_InitStruct);

  

  /* Connect PXx to SPI_SCK */

  GPIO_PinAFConfig( SCK_PORT ,  SCK_PIN , GPIO_AF_0);

 

  /* Connect PXx to SPI_MISO */

  GPIO_PinAFConfig( MISO_PORT ,  MISO_PIN , GPIO_AF_0); 

 

  /* Connect PXx to SPI_MOSI */

  GPIO_PinAFConfig( MOSI_PORT ,  MOSI_PIN ,  GPIO_AF_0 );

 

 /*!< Configure SPI_CS_PIN pin: */

  GPIO_InitStruct.GPIO_Pin = SPI_CS_PIN  ;

  GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;

  GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;

 GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;

  GPIO_InitStruct.GPIO_Speed = GPIO_Speed_Level_3;

  GPIO_Init(  SPI_CS _PORT   , &GPIO_InitStruct);

 

  SPI_FLASH_CS_HIGH();

 

  /*!< SD_SPI Config */

  SPI_InitStruct.SPI_Direction = SPI_Direction_2Lines_FullDuplex;

  SPI_InitStruct.SPI_Mode = SPI_Mode_Master;

  SPI_InitStruct.SPI_DataSize = SPI_DataSize_8b;

  SPI_InitStruct.SPI_CPOL = SPI_CPOL_High;

  SPI_InitStruct.SPI_CPHA = SPI_CPHA_2Edge;

  SPI_InitStruct.SPI_NSS = SPI_NSS_Soft;  //软件设定NSS位

  SPI_InitStruct.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_16;

  SPI_InitStruct.SPI_FirstBit = SPI_FirstBit_MSB;

  SPI_InitStruct.SPI_CRCPolynomial = 7;

  SPI_Init(SPI2, &SPI_InitStruct);

  SPI_RxFIFOThresholdConfig(SPI2, SPI_RxFIFOThreshold_QF);

  SPI_Cmd(SPI2, ENABLE); /*!< SD_SPI enable */


关键字:STM32F051  库函数  SPI初始化 引用地址:基于STM32F051库函数版本的SPI初始化

上一篇:STM32设置空闲管脚为模拟状态后再也无法烧录的解决方法
下一篇:STM32使用SWD默认管脚PA13 PA14

推荐阅读最新更新时间:2024-03-16 15:43

STM32标准库SPI初始化
SPI的初始化比较简单,但是能明白原理是最好的,毕竟出了问题以后好排除。 SPI的初始化过程: 1、初始化GPIO 2、初始化SPI_InitStructure结构体 3、使能SPI外设 SPI的初始化结构体如下图所示: typedef struct { uint16_t SPI_Direction; uint16_t SPI_Mode; uint16_t SPI_Daize; uint16_t SPI_CPOL; uint16_t SPI_A; uint16_t SPI_NSS; uint16_t SPI_BaudRatePr
[单片机]
STM8库函数开发手册(2) //中断、定时器4
第一部分 中断控制器库 itc.c 1.ITC_GetCPUCC() //读取CC寄存器 u8 u8_value;u8_value = ITC_GetCPUCC(); 2.ITC_DeInit() //恢复ITC相关寄存器到默认值 3. ITC_GetSoftIntStatus() //返回CC寄存器中的软件中断优先级位(I1,I0)的值 u8 u8_value;u8_value = ITC_GetSoftIntStatus(); 4. ITC_SetSoftwarePriority(IrqNum,PriorityValue) //设置指定中断源的软件优先级 其中IrqNum中断源定义: 其中Priori
[单片机]
STM8<font color='red'>库函数</font>开发手册(2) //中断、定时器4
用STM32点亮跑马灯(库函数)简洁版
用STM32的GPIO来点亮跑马灯 步骤: 1.新建工程:复制模板中的一切文件夹,注意删除USER中模板Template产生的三个文件以及OBJ中的文件(OBJ中产生的是编译过程中产生的文件)。 2.打开keil,对工程中的各县设置进行修改(包括:右键Manage Project Items里面的各个组及头文件;魔术棒中的Output选项卡中HEX文件和Folder的修改;C/C++选项卡中Define和头文件路径的修改) 3.build工程,查看设置是否正确,注意此时各个文件前面有可能没有小加号,解决办法是Translate一下,要是还不行就关了重开。 至此新建工程完成 想要对外设进行驱动就要相应的编写函数,我们在这里只将具体
[单片机]
AVR常用库函数整理
AVR常用库函数整理 1. Character Type Functions - 字符类型函数 2. Standard C Input/Output Functions - 标准输入输出函数 3. Standard Library Functions - 标准库和内存分配函数 4. Mathematical Functions - 数学函数 5. String Functions - 字符串函数 6. BCD Conversion Functions - BCD 转换函数 7. Memory Access Functions - 存储器访问函数 8. Delay Functions - 延时函数 9. LCD F
[单片机]
MSP432学习笔记:CCS的环境配置(库函数的导入)
近来入手一块MSP432,折腾了一晚上,终于把库函数导入进项目,可以愉快的写代码了,以下是我个人的解决办法 首先,打开CCS,点击view,然后点击resource explore,点击SimpleLink MSP432P4-SDK -v2.30.00.14 然后安装SimpleLink MSP432P4 SDK -v2.30.00.14 安装完成之后,新建CCS项目。 生成项目后,选择项目,点击属性,然后点击Build - ARM Compiler - Include Option 添加库函数文件的路径,我的是默认路径 C:tisimplelink_msp432p4_sdk_2_30_00_14source
[单片机]
MSP432学习笔记:CCS的环境配置(<font color='red'>库函数</font>的导入)
谈谈STM32F051的 ADC DMA用法
首先谈谈引脚 STM32F051R8T6 多达16个 12bit外部AD通道。同时还有片内温度。电压基准,VBAT三个通道。对一般的AD使用来说是完全够用了。16个AD通道分别分布在 AD0 -AD7 对应引脚 是PA0-PA7 AD8-AD9对应引脚PB0-PB1 AD10-AD11对应引脚是PC0-PC5。 在这里我们就以PA0作为一个输入在写个例子。 //#include stm32f0xx_lib.h #include stdint.h #include system_stm32f0xx.h #include stm32f0xx_gpio.h #include Main.h #include sys
[单片机]
msp430F149与cc2500通讯启用USART1,SPI初始化
刚开始接触这个SPI,又是与cc2500,看着英文手册,弄了老半天,才把读写寄存器给弄清,分享一下: //========================================================= //本模块为spi通讯模块,程序启用USART1,针对与cc2500的相互通讯 //========================================================= #include msp430x14x.h #include spi.h #include cc2500_def.h #define SPI_SEL P5SEL #define SPI_DIR
[单片机]
51单片机软件SPI初始化ILI9488-DPI模式程序
大家好,最近的项目用到ILI9488这个芯片的屏幕,用51单片机的IO口模拟SPI信号,发送初始化代码 设置成DPI-18bitRGB模式。并用LT768芯片来显示图片。下面是程序和ILI9488资料分享: 显示图片为18bitR6G6B6信号,由于便于测试,每种颜色的6根脚都接一起了,效果如下图: 单片机驱动ILI9488源程序如下: #define CS P13 #define CLK P14 #define DCX P15 #define SI P16 #define LCD_nRESET P00 void SPId_Init(void) { P1M
[单片机]
51单片机软件<font color='red'>SPI</font><font color='red'>初始化</font>ILI9488-DPI模式程序
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved