news 2026/10/17 6:52:42

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【STM32标准库】铁头山羊--[SPI]IO引脚的初始化(笔记)

一.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.单片机的输出选择有:2MHz,10MHz,50MHz

2.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_Pin=GPIO_Pin_3; GPIO_SPI_Init.GPIO_Mode=GPIO_Mode_AF_PP; GPIO_SPI_Init.GPIO_Speed=GPIO_Speed_2MHz; GPIO_Init(GPIOB,&GPIO_SPI_Init); //PB4 MSIO IPU 2MHz RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); GPIO_SPI_Init.GPIO_Pin=GPIO_Pin_4; GPIO_SPI_Init.GPIO_Mode=GPIO_Mode_IPU; GPIO_SPI_Init.GPIO_Speed=GPIO_Speed_2MHz; GPIO_Init(GPIOB,&GPIO_SPI_Init); //PB5 MOSI AF_PP 2MHz RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); GPIO_SPI_Init.GPIO_Pin=GPIO_Pin_5; GPIO_SPI_Init.GPIO_Mode=GPIO_Mode_AF_PP; GPIO_SPI_Init.GPIO_Speed=GPIO_Speed_2MHz; GPIO_Init(GPIOB,&GPIO_SPI_Init); //PA15 普通IOI Out_PP 2MHz RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); GPIO_SPI_Init.GPIO_Pin=GPIO_Pin_15; GPIO_SPI_Init.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_SPI_Init.GPIO_Speed=GPIO_Speed_2MHz; GPIO_Init(GPIOA,&GPIO_SPI_Init); }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/17 6:52:23

Windows下Openclaw安装全指南:从环境配置到自主AI代理实战

在Windows上装Openclaw,我前前后后折腾了两轮才算把整个链路走顺。第一次纯粹是低估了环境依赖的麻烦程度,第二次又栽在配置文件的字段理解上。这项目本身很有意思——它本质上是一个本地运行的自主AI代理框架,你给它一个目标,它会…

作者头像 李华
网站建设 2026/10/17 6:48:14

2026年印尼商标注册与公司注册服务机构怎么选:续展抢注应对、法律顾问选型与合规路径拆解

内容摘要:印尼商标注册的周期、官费与审查顺序在 2026 年同时调整,机构选型也从比价转向比节点把控能力。本文拆解印尼商标注册与印尼商标续展的规则底座、印尼商标抢注的应对路径、印尼公司注册的资本新规,并给出印尼法律顾问的选型维度与本…

作者头像 李华
网站建设 2026/10/17 6:47:32

零基础用Unity制作贪吃蛇:从搭建场景到核心逻辑实战

有时候我刷到一些“零基础怎么学Unity”的提问,底下回复通常两极:一边说“先啃两本书再说”,另一边说“直接照搬教程就行”。这两种说法我都不太同意。尤其是看到有人问“我只是想做一个小游戏,比如贪吃蛇,有戏吗”的时候,我特别想拉把椅子坐过去聊半小时。因为贪吃蛇这个项目,…

作者头像 李华
网站建设 2026/10/17 6:47:23

棋牌游戏开发实战(七):资源分包与大厅加载优化

摘要:大厅能打开,玩法入口却还要等待,通常需要把首屏资源和玩法资源分开看。本文用可检查的加载控制代码说明并发请求合并、失败重试和过期回调,配合 Cocos Creator 3.8 接口示例讨论接入边界。大厅启动慢的时候,直接把…

作者头像 李华
网站建设 2026/10/17 6:46:42

Claude Code模板体系实战:从CLAUDE.md到团队协作的AI编程工作流

1. 为什么你需要为 Claude Code 建一套模板体系我先说一个可能戳中你痛点的场景:你刚在 Claude Code 里启动一个新会话,准备让它改一个三个月没碰过的模块,然后你花了十分钟重新告诉它项目的技术栈、目录结构、代码规范、有哪些坑不能踩……它…

作者头像 李华