资讯动态

【STM32标准库】铁头山羊--[SPI]IO引脚的初始化(笔记)

发布时间:2026/10/17 6:52:49 来源:尧图企业网站定制
一.SPI模块简介SPI是单片机上的片上外设有SPI1和SPI2二.W25Q64简介1.W25Q64是一种Flash芯片(SPI)2.Flash相当于电脑的硬盘断电不丢数据3.为什么单片机内部有Flash还要外接一个Flash模块单片机的Flash可以想像为电脑内部硬盘用来存储编写的程序而W25Q64 Flash芯片可以想象为移动硬盘可以把一些单独的数据存储在里面比较方便管理W25Q64引脚参数三.定位SPI的引脚位置1.SPI内部结构框图2.SPI引脚位置SPI1_NSS只有做从机才用SPI2_无重映射四.选择IO引脚的模式接线图引脚配置五.选择IO引脚的最大输出速度1.单片机的输出选择有2MHz10MHz50MHz2.W25Q64如何选择呢看时钟频率最高多少就是多少。3.确定引脚参数4.初始化IO引脚#include stm32f10x.h void App_SPI1_Init(void); int main(void) { App_SPI1_Init(); while(1) { } } void App_SPI1_Init(void) { //开启AFIO模块 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SPI1,ENABLE); //PB3 SCK AF_PP 2MHz RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); GPIO_InitTypeDef GPIO_SPI_Init; GPIO_SPI_Init.GPIO_PinGPIO_Pin_3; GPIO_SPI_Init.GPIO_ModeGPIO_Mode_AF_PP; GPIO_SPI_Init.GPIO_SpeedGPIO_Speed_2MHz; GPIO_Init(GPIOB,GPIO_SPI_Init); //PB4 MSIO IPU 2MHz RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); GPIO_SPI_Init.GPIO_PinGPIO_Pin_4; GPIO_SPI_Init.GPIO_ModeGPIO_Mode_IPU; GPIO_SPI_Init.GPIO_SpeedGPIO_Speed_2MHz; GPIO_Init(GPIOB,GPIO_SPI_Init); //PB5 MOSI AF_PP 2MHz RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); GPIO_SPI_Init.GPIO_PinGPIO_Pin_5; GPIO_SPI_Init.GPIO_ModeGPIO_Mode_AF_PP; GPIO_SPI_Init.GPIO_SpeedGPIO_Speed_2MHz; GPIO_Init(GPIOB,GPIO_SPI_Init); //PA15 普通IOI Out_PP 2MHz RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); GPIO_SPI_Init.GPIO_PinGPIO_Pin_15; GPIO_SPI_Init.GPIO_ModeGPIO_Mode_Out_PP; GPIO_SPI_Init.GPIO_SpeedGPIO_Speed_2MHz; GPIO_Init(GPIOA,GPIO_SPI_Init); }

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑