#include "spi.h"

#include <STM32F10X_SPI.h>
#include <STM32F10X_GPIO.h>
#include <STM32F10X_RCC.h>//包含头文件

//串行外设接口SPI的初始化,SPI配置成主模式
//本例程选用SPI1对W25X16进行读写操作,对SPI1进行初始化
void SPIx_Init(void)
{
[color=blue] /*定义结构体,下面NSS配置时也要用到GPIO所以这里一起定义*/[/color]
SPI_InitTypeDef SPI_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;

[color=blue]/* 使能 SPI1 & GPIOA 时钟 */[/color]
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1|RCC_APB2Periph_AFIO, ENABLE);

[color=blue]/* Configure SPI1 pins: NSS, SCK, MISO and MOSI */[/color]
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);

[color=blue]//SPI1 NSS for W25X16[/color]
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOC, &GPIO_InitStructure);

GPIO_SetBits(GPIOC, GPIO_Pin_4);

[color=blue]//SPI1 NSS for Ethernet[/color]
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_SetBits(GPIOA, GPIO_Pin_4);

[color=blue]/* SPI1 configuration */ [/color]
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; //SPI1设置为两线全双工
SPI_InitStructure.SPI_Mode = SPI_Mode_Master; //设置SPI1为主模式
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; //SPI发送接收8位帧结构
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High; //串行时钟在不操作时,时钟为高电平
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge; //第二个时钟沿开始采样数据
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; //NSS信号由软件(使用SSI位)管理
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8; //定义波特率预分频的值:波特率预分频值为8
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; //数据传输从MSB位开始
SPI_InitStructure.SPI_CRCPolynomial = 7; //CRC值计算的多项式
SPI_Init(SPI1, &SPI_InitStructure);
/* Enable SPI1 */
SPI_Cmd(SPI1, ENABLE); //使能SPI1外设
}

STM32 SPI 主模式下配置(神州三号开发板spi.c解析上)相关推荐

  1. linux桥接设置静态,centos6.10 桥接模式下配置静态ip

    centos6.10 桥接模式下配置静态ip主要是修改以下三个地方: /etc/sysconfig/network-scripts/ifcfg-eth0(这个文件名版本不同文件名也不同,可以先cd / ...

  2. MySQL MGR 单主模式下单点故障时的节点角色切换规则

    MGR单主模式下,有一个节点可读可写,其余节点都是只读,其中表现为super_read_only被自动设为了ON. 那么,如果可读可写的节点异常宕机了,会进行怎样的切换呢? 在选择新的可写角色时,主要 ...

  3. 【OS】Linux环境下配置固定IP地址--静态IP地址(不能上外网问题)

    [OS]Linux环境下配置固定IP地址--静态IP地址(不能上外网问题) ---red hat重启网卡 service network restart /etc/rc.d/init.d/networ ...

  4. Qt:Qt实现Winsock网络编程—非阻塞模式下的简单远程控制的开发(WSAAsyncSelect)

    Qt实现Winsock网络编程-非阻塞模式下的简单远程控制的开发(WSAAsyncSelect) 前言 这边博客应该是 Qt实现Winsock网络编程-TCP服务端和客户端通信(多线程) 的姐妹篇,上 ...

  5. iMX6UL配置MCP2515模块(SPI转CAN)——基于迅为iTOP-iMX6UL开发板

    写在前面   在文章"嵌入式Linux的CAN总线配置--基于迅为iTOP-4412开发板"中我给4412开发板配置了SPI转CAN模块,使用的是不带设备树的内核.在本篇文章中,要 ...

  6. 正点原子Linux开发板 spi内核驱动 0.96寸ips屏教程

    正点原子Linux开发板 spi内核驱动 0.96寸ips屏教程 首先选择模块 设备树配置 spi驱动程序(用的spi_driver) app 最近做下底层SPI驱动来驱动IPS屏,本来想实现这种效果 ...

  7. 迅为国产开发板值得入手的三款开发板

    迅为国产开发板值得入手的三款开发板 瑞芯微RK3568: RK3568处理器 瑞芯微 RK3568 芯片采用 22nm 制程工艺,搭载一颗四核 Cortex-A55 处理器和 Mali G52 2EE ...

  8. Linux开发环境配置--正点原子阿尔法开发板

    Linux开发环境配置–正点原子阿尔法开发板 文章目录 Linux开发环境配置--正点原子阿尔法开发板 1.网络环境设置 1.1添加网络适配器 1.2虚拟网络编辑器设置 1.3Ubuntu和Windo ...

  9. stm32—洋桃一号开发板U盘测试相关问题

    发现的问题 在使用洋桃一号开发板测试U盘插拔时,发现洋桃电子官方例程对于Query376Interrupt();函数的疑问. 1,在CH376.h文件中#define CH376_INT GPIO_P ...

  10. VMware在NAT模式下配置静态IP

    1. 虚拟机网络连接方式 安装好虚拟机以后,在网络连接里面可以看到多了两块网卡: 其中VMnet1是虚拟机Host-only模式的网络接口,VMnet8是NAT模式的网络接口. 虚拟机常见有三种网络连 ...

最新文章

  1. pycharm 自动函数注释
  2. python中字符串格式化
  3. Hadoop架构-YARN
  4. php一个英文几个字符,PHP指定截取字符串中的中英文或数字字符的实例分享
  5. D3DPOOL(资源池)
  6. nginx的upstream目前支持5种方式的分配
  7. eclipse如何调试(Debug)程序(zhuan)
  8. 【转】构建Android平台Google Map应用
  9. java 嵌套类: Nested classes
  10. 元素赋值、增加元素和删除元素
  11. C# Linq to sql 实现 group by 统计多字段 返回多字段
  12. adjoint-io bulletpoofs 性能测试结果
  13. 改进初学者的PID-测量的比例编码
  14. h5页面可以获取安卓和ios平台,可获取手机类型,但是不能获取手机型号
  15. 小米 秋招 笔试 编程题 句子反转
  16. 发一个笔筒式的摄像头驱动(台湾原相科技)
  17. 如何将doc格式转换成jpg图片格式
  18. Gate Developer 软件快捷键
  19. 计算机图形学01:直线生成算法(DDA算法)
  20. 2020年Q3房产行业网络关注度分析报告

热门文章

  1. 水利系统防雷,如何做好洪水预报警报系统的雷电防护
  2. 矩阵卷积运算的三种方式及C语言实现
  3. maria安装包mysql_mariadb安装
  4. 计算机怎么用函数算出成绩自评,SPSSAU一众新功能上线:高级公式、综合得分一键计算!...
  5. SPSS得出因子后怎么计算综合得分
  6. 基于DBSCAN聚类算法的超像素实时分割
  7. 张量分解--非负矩阵分解 (NMF)
  8. 涨点神器!特征金字塔技术总结
  9. MTK 驱动部分双分区升级原理
  10. 输出101到200的素数python_python 判断101-200之间有多少个素数,并输出所有素数。...