STM32F407 SPI线的选择
发布日期:2021-06-30 22:01:51
浏览次数:3
分类:技术文章
本文共 1527 字,大约阅读时间需要 5 分钟。
前言
STM32F407的内建设备的管脚,一般都有多套。
如果想充分利用片上资源, 就可能遇到要调整内建设备管脚的情况。这次正好要调整板子, 为了上外部内存, 换了STM34F407ZGT6.
将STM32F407VGT6的管脚定义挪过来时,本来想将SPI版的SD卡操作换成SDIO的操作. 发现不行,因为串口都用满了,不能为了更稳定快速的操作SD卡,就将串口砍掉(因为SDIO用的是一套固定的管脚,从PC6~PC15 + PB8~PB9, 那就要将串口4,5,6都砍掉,那老大要砍我了)。
以前的SPI管脚定义是同事选的,我也尝试选选,看看SPI怎么选最合适。有2个SPI存储,都接在SPI上,因为可能存在互相拷贝的情况,那最好不要用一套SPI线+不同的片选。
试验
MCU = STM32F407ZGT6为了走等长线, 尽量将SPIX_SCK, SPIX_MISO, SPIX_MOSI 选在相邻的管脚上如果3条线无法在一起,也要将SPIX_MISO, SPIX_MOSI选在相邻的管脚上不用换硬件片选, 省了SPIX_NSS在STM32F407中:* UART和SPI都有2套管脚可选* SDIO, FSMC就只能是一套固定的管脚硬件资源占用情况* PB3 被SWO用了* PA7 被RMII_CRS_DV用了* PB13 被RMII_TXD1用了// SPI1_NSS = PA4 PA15SPI1_SCK = PA5 PB3SPI1_MISO = PA6 PB4SPI1_MOSI = PA7 PB5* SPI1选择1 = PA5(SPI1_SCK), PB4(SPI1_MISO), PB5(SPI1_MOSI)就这一个选择, 只能用SPI1选择1// SPI2_NSS = PB12 PB9SPI2_SCK = PB13 PB10SPI2_MISO = PB14 PC2SPI2_MOSI = PB15 PC3* SPI2选择1 = PB10(SPI2_SCK), PB14(SPI1_MISO), PB15(SPI1_MOSI)* SPI2选择2 = PB10(SPI2_SCK), PC2(SPI1_MISO), PC3(SPI1_MOSI)可以看出SPI2选择1有力于走等长线,所以选SPI2选择1// SPI3_NSS = PA4 PA15SPI3_SCK = PC10 PB3SPI3_MISO = PC11 PB4SPI3_MOSI = PC12 PB5* 到这,因为PB3, PB4, PB5, 被SWO 和 SPI1用掉了,就只能从PC10, PC11, PC12中选。如果这3条线也被用掉了,就无法再用SPI3PC10,PC11被串口4用掉了.PC12被串口5用掉了。看看串口4,串口5是否可以用备用引脚.USART1_TX = PA9 PB6USART1_RX = PA10 PB7USART2_TX = PD5 PA2USART2_RX = PD6 PA3// 串口3有3套管脚可用USART3_TX = PB10 PC10 PD8USART3_RX = PB11 PC11 PD9UART4_TX = PA0 PC10UART4_RX = PA1 PC11// 串口5只有1套管脚可用UART5_TX = PC12UART5_RX = PD2USART6_TX = PC6 PG14USART6_RX = PC7 PG9PA0被硬件接口管脚PA0用掉了,PA1被RMII_REF_CLK用掉了, 所以串口4只能用PC10, PC11串口5只有一套管脚(PC12, PD2)可用,也没办法挪了所以SPI3就没办法用了
转载地址:https://lostspeed.blog.csdn.net/article/details/103451320 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月19日 17时34分00秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
2021年不可错过的17种JS优化技巧(一)
2019-04-30
月薪15~20k的前端面试问什么?
2019-04-30
在 Vue 中用 Axios 异步请求API
2019-04-30
MySQL进阶查询(SELECT 语句高级用法)
2019-04-30
Mysql 之主从复制
2019-04-30
【工具使用】新版CSDN-markdown编辑器使用指南
2019-04-30
【NLP学习笔记】中文分词(Word Segmentation,WS)
2019-04-30
【超越白皮书7】你需要知道关于ETH2.0的几个事实
2019-04-30
对于时间复杂度的通俗理解
2019-04-30
如何输入多组数据并输出每组数据的和?
2019-04-30
行阶梯型矩阵
2019-04-30
MATLAB指定路径保存图片方法
2019-04-30
JavaScript 表单操作与MD5加密
2019-04-30
JAVA学习笔记6 - 数组
2019-04-30
JAVA学习笔记10 - 继承
2019-04-30
Android 开发学习笔记 00 - Getting Started
2019-04-30
【学习笔记】Android Activity
2019-04-30
Android使用Retrofit_00_Getting Started
2019-04-30
Android使用Retrofit_01_OAuth2 + GitHub
2019-04-30