实验名称
基于SPI Flash的断电状态保存系统
实验目的
-
掌握SPI Flash的基本读写操作
-
实现设备状态断电保存功能
-
学习STM32 HAL库的SPI驱动开发
硬件要求
-
STM32开发板
-
按键
-
SPI Flash模块
-
杜邦线若干
-
面包板
硬件连接
SPI Flash引脚 | STM32引脚 |
---|---|
CLK | SPI_SCK (PA5) |
DI | SPI_MISO (PA7) |
DO | SPI_MOSI (PA6) |
CS | NSS(PA4) |
VCC | 3.3V |
GND | GND |
按键连接:
-
按键一端接PA0,另一端接GND(上拉模式)
软件配置(STM32CubeMX)
-
SPI配置
- 选择SPI1
- Mode: Full-Duplex Master
- Hardware NSS: Disabled
- 其他参数设置
-
GPIO配置
- CS引脚:PA4,输出推挽模式,初始高电平
- 用户按键:PA0,输入模式,上拉
- 板载LED:PC13,输出开漏模式
-
时钟配置
系统时钟设置为系统配置的8分(因实验硬件限制)
按钮及其灯亮代码实现
uint8_t pre = 1;//按钮按下的前标志
uint8_t cur = 1;//按钮按下的后标志
uint8_t ledState = 0;//板载LED的状态标志
//读取flsh数据并进行判断,函数实现在fish读数据实现
ledState = LoadledState();
if(ledState == 1){
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);
}else{
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);
}
whi