初始化通讯使用的目标引脚及端口时钟-天线测量手册
(1) 初始化通讯使用的目标引脚及端口时钟; (2) 使能 SPI外设的时钟; (3) 配置 SPI外设的模式、地址、速率等参数并使能 SPI 外设; (4) 编写基本 SPI按字节收发的函数; (5) 编写对 FLASH 擦除及读写操作的的函数; (6) 编写测试程序,对读写数据进行校验。 2. 代码分析 SPI 硬件相关宏定义 我们把 SPI 硬件相关的配置都以宏的形式定义到 “bsp_spi_ flash.h”文件中,见代码清 单 25-2。 代码清单 25-2 SPI 硬件配置相关的宏 1 /*SPI 接口定义-开头****************************/ 2 #define FLASH_SPIx SPI1 3 #define FLASH_SPI_APBxClock_FUN RCC_APB2PeriphClockCmd 4 #define FLASH_SPI_CLK RCC_APB2Periph_SPI1 5 6 //CS(NSS)引脚 片选选普通 GPIO 即可 7 #define FLASH_SPI_CS_APBxClock_FUN RCC_APB2PeriphClockCmd 8 #define FLASH_SPI_CS_CLK RCC_APB2Periph_GPIOC 9 #define FLASH_SPI_CS_PORT GPIOC 10 #define FLASH_SPI_CS_PIN GPIO_Pin_0 11 12 //SCK 引脚 13 #define FLASH_SPI_SCK_APBxClock_FUN RCC_APB2PeriphClockCmd 14 #define FLASH_SPI_SCK_CLK RCC_APB2Periph_GPIOA 15 #define FLASH_SPI_SCK_PORT GPIOA 16 #define FLASH_SPI_SCK_PIN GPIO_Pin_5 17 //MISO 引脚 18 #define FLASH_SPI_MISO_APBxClock_FUN RCC_APB2PeriphClockCmd 19 #define FLASH_SPI_MISO_CLK RCC_APB2Periph_GPIOA 20 #define FLASH_SPI_MISO_PORT GPIOA 21 #define FLASH_SPI_MISO_PIN GPIO_Pin_6 22 //MOSI 引脚 23 #define FLASH_SPI_MOSI_APBxClock_FUN RCC_APB2PeriphClockCmd 24 #define FLASH_SPI_MOSI_CLK RCC_APB2Periph_GPIOA 25 #define FLASH_SPI_MOSI_PORT GPIOA 26 #define FLASH_SPI_MOSI_PIN GPIO_Pin_7 27 28 #define FLASH_SPI_CS_LOW() GPIO_ResetBits( FLASH_SPI_CS_PORT, FLASH_SPI_CS_PIN ) 29 #define FLASH_SPI_CS_HIGH() GPIO_SetBits( FLASH_SPI_CS_PORT, FLASH_SPI_CS_PIN ) 30 31 /*SPI 接口定义-结尾****************************/ 以上代码根据硬件连接,把与 FLASH 通讯使用的 SPI 号 、GPIO 等都以宏封装起来, 并且定义了控制 CS(NSS)引脚输出电平的宏,以便配置产生起始和停止信号时使用。 初始化 SPI 的 GPIO 利用上面的宏,编写 SPI的初始化函数,见代码清单 25-3。 代码清单 25-3 SPI 的初始化函数(GPIO 初始化部分)
- 粉丝: 29
- 资源: 4162
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助