评论
贡献者
这取决于其他引脚分配 – STM32 MCU 有点奇怪,因为对于给定的引脚号,只有一个端口可以启用中断。这决定了哪些引脚可用于限制和系统控制输入。
不适用于引脚/端口分配 – 最接近默认值的可能是generic_map.h。
我想这些对于标准的EEPROM 插件是没问题的。地址在#define 语句中,因此可以轻松更改。 |
作者
所以基本上你是说我应该把我所有的输入都放在一个没有 SPI 和 I2C 的端口上,我的输出可以和 SPI 和 I2C 放在同一个端口上,对吧? |
贡献者
您可以在任何您喜欢的端口上输入 (GPIO),但两个输入不应共享相同的引脚号。例如,在 A.7 和 B.7 上输入将只允许其中之一分配中断。路由到其他外围设备(如 I2C 或 SPI)的输入引脚使用不同的中断路由,因此不会阻塞引脚号(对于 GPIO 中断)。 |
我正在围绕 stm32f411(与 blackpill 中的控制器相同)设计自己的控制器,我想使用 I2C FRAM MB85RC16PN或MB85RC64VPNF,并且还将使用 Trinamic TMC5160 和 SPI。
我想为 I2C 和 SPI 通信分配适当的端口和引脚,并确保这些分配不会与代码中的任何其他分配冲突。
乍一看我选择了 I2C1 (PB6/PB7) 和 SPI1 (PA4/PA5/PA6/PA7)
我应该改变这个吗?
我应该如何在代码中分配提到的端口和引脚,我知道它应该在 XXXX_map.h 中但不确定使用的定义。(项目中使用的所有默认定义是否有位置?)
另外使用提到的 FRAM 有什么问题吗(第一个没有硬件地址引脚)?