对于STM32开发板例子,采用SPI访问Flash的方式,觉得比较困惑,特做深入分析。基本源码如下,分析内容以黑色字体标注。
开始非常疑惑为什么连接Flash设备的引脚采用GPIO引脚,实际是:GOPI重映射的具体信息在《【中文】STM32F系列ARM内核32位高性能微控制器参考手册V10_1》的8.3.10 SPI 1复用功能重映射。
SPI1重映像
复用功能 |
SPI1_REMAP = 0 |
SPI1_REMAP = 1 |
SPI1_NSS | PA4 | PA15 |
SPI1_SCK | PA5 | PB3 |
SPI1_MISO | PA6 | PB4 |
SPI1_MOSI | PA7 | PB5 |
void SPI_FLASH_Init(void)
{
SPI_InitTypeDef SPI_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
// 由于开发板中SPI CF卡和Flash采用线路复用,因此,先要将CF的片选引脚进行禁用
/* Disable SD CS */
GPIO_InitStructure.GPIO_Pin =