yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
STM32-BoardCar📖
0. Get started quickly
  • 0.ReadMe
  • 1. Installation Instructions
  • 2. Version configuration
  • 3. Smart car installation video
  • 4. Precautions for use
1. Introduction to STM32 development board
  • 1. Learn about STM32
  • 2. Introduction to STM32 development board
  • 3. Development board pin assignment
  • 4. Introduction to HAL library and LL library
2. Setting up and using the development environment
  • 1. Common development tools
  • 2. STM32CubeMX Install - Use
  • 3. STM32CubeIDE Install - Use
  • 4. Common Driver Installation
  • 5. Program download and simulation
  • 6. Engineering experience and migration
3. Development board basic tutorial
  • 1. RGB searchlight (GPIO)
  • 2. Buzzer control (GPIO)
  • 3. Button control (EXTI)
  • 4. Serial communication (UASRT)
  • 5. Voltage detection (ADC)
  • 6. Internal temperature sensor(ADC)
  • 7. Independent watchdog(IWDG)
  • 8. Window watchdog(WWDG)
  • 9. Basic timer (TIM6)
  • 10. Universal Timer (TIM3)
  • 11. Advanced timers (TIM1)
  • 12. I2C Communication (IIC)
  • 13. Off-chip Flash (SPI)
  • 14. On-chip Flash (Flash)
  • 15. DMA:USART
  • 16. DMA:SPI
  • 17. DMA:I2C
  • 18. USB communication
  • 19. USB analog U disk
  • 20. FreeRTOS
4. Car expansion tutorial
  • 1. Servo control
  • 2. Basic use of ultrasonic steering gear gimbal
  • 3. Motor control
  • 4. OLED display light sensitivity value
  • 5. Infrared sensor
  • 6. Four-way tracking module
  • 7. Infrared remote control
  • 8. Ultrasonic ranging
  • 9. PS2 controller test
  • 10.K230 Vision Module
  • 11.AI voice interaction integration module
5. Robot car tutorials
  • 1. Car line patrol
  • 2. Ultrasonic follow
  • 3. Ultrasonic obstacle avoidance
  • 4. Ultrasonic obstacle avoidance (servo gimbal version)
  • 5. Infrared sensor obstacle avoidance
  • 6. Infrared remote control
  • 7. PS2 handle remote control
  • 8.K230 face tracking on PTZ
  • 9.K230 color tracking
  • 10.K230 Color Line Patrol
  • 11.K230 QR code command
  • 12.K230 machine code tracking
  • 13.K230 road sign indication action (voice)
  • 14.K230 color response (voice)
  • 15.K230 gesture control (voice)
  • 16.K230 Rock-Paper-Scissors Game (Voice)
6. Operation video
  • 1-How to install STM32CubeIDE software
  • 2-How to create Demo project
  • 3-How to download code into STM32 robot car
  • 4-How to open and compile a code file for STM32
  • 5-About IR control and Charge battery
Download
  • Code
  • SCH
  • Software File
  • STM32 Chip DataSheet
  • Installation manual
Download ZIP

Welcome to STM32-BoardCar repository

13. Off-chip Flash (SPI)

Off-chip Flash

Off-chip Flash1、Software-Hardware2、Brief principle2.1、Hardware schematic diagram2.2、Physical connection diagram2.3、Principle of control3、Engineering configuration3.1、Notes3.2、Pin configuration4、Main function4.1、User function4.2、HAL library function parsing5、Experimental phenomenon

This tutorial demonstrates: using SPI (SPI2) to control the external Flash (W25Q64) to read and write data, and print the data through the serial port (USART1)

1、Software-Hardware

  • STM32F103CubeIDE

  • STM32 Robot Development board

    USART: Chip internal peripheral

    Key, external Flash (W25Q64) : onboard

  • Type-C cable or ST-Link

    Download or simulate the program of the development board

2、Brief principle

2.1、Hardware schematic diagram

image-20231026115837749

2.2、Physical connection diagram

image-20231026122217527

image-20231020093159203

2.3、Principle of control

Write, read and erase the data of external flash by key control, and print the data through the serial port.

  • GPIO reading

By defining different functions for the key, the read and write operation of data in W25Q64 is realized.

KEY(Schematic name)Control pinFunction
KEY1PG3Add 1 to the count
KEY2PG4Reading count values
KEY3PG5Erasing data
  • External Flash

W25Q64 divides the capacity of 8M bytes into 128 blocks of 64K bytes each, and each block is further divided into 16 sectors of 4K bytes each. The minimum erasing unit for W25Q64 is one sector, which means that 4K bytes must be erased at a time.

Instruction list(truncated)

image-20231026182949170

Instructions for detailed use of the reference [W25Q64JV_ English Reference Manual]
  • SPI

Serial Peripheral Interface (SPI) is a high-speed, full-duplex, synchronous serial communication interface, which is often used to transfer data between microcontrollers, sensors and peripheral devices.

SPI pinsFunction
MISOMaster device data output line, from the master device to the slave device to send data
MOSIThe master device data input line transfers data from the slave device to the master device
SCLKClock signal line for timing control of synchronous data transmission
CSThe slave selection line is used to select a specific slave device to communicate with the master device
  • SPI transmission mode

Polarity of clock(CPOL):Controls the idle and active states of the clock signal (0: idle low, 1: idle high)

Phase of clock(CPHA):Sampling and transmission time of control data (0: sampling along odd hops, 1: sampling along even hops)

Polarity of clock(CPOL)Phase of clock(CPHA) 
00SCL idle state low level; The data is sampled on the rising edge and transmitted on the falling edge
01SCL idle state low level; Data is sampled on the falling edge and data is transmitted on the rising edge
10SCL idle state high level; Data is sampled on the falling edge and data is transmitted on the rising edge
11SCL idle state high level; The data is sampled on the rising edge and transmitted on the falling edge

image-20231026165627617

3、Engineering configuration

Project Configuration: Prompts for configuration options in the STM32CubeIDE project configuration process

3.1、Notes

Omitted project configuration: New project, chip selection, project configuration, SYS for pin configuration, RCC configuration, clock configuration, and project configuration content

The project configuration part, which is not omitted, is the key point to configure in this tutorial.

xxxxxxxxxx
Please refer to [2. Development environment construction and use: STM32CubeIDE installation and use] to understand how to configure the omitted parts of the project.

3.2、Pin configuration

  • Configure the specified pin function

You can directly select the corresponding pin number in the pin view, and the corresponding option will appear when the mouse is left clicked

42f83437848aad391548eb47dc66a0a6

  • GPIO

image-20231026184115145

  • SPI

image-20231026183410528

image-20231026183520841

  • USART

image-20231026183624230

image-20231026183728759

  • NVIC

    NVIC可修改中断优先级

image-20231026184000626

  • Generating code

image-20231020123054441

4、Main function

This section mainly introduces the functional code written by users. ** Detailed code can be opened by yourself in the project file we provide, and enter the Bsp folder to view the source code. **

4.1、User function

function:Spi_Flash_ReadID

Function prototypesu16 Spi_Flash_ReadID(void)
Functional DescriptionRead the W25Q64 chip ID
Input parametersNone
Return valueID number

function:Spi_Flash_Erase_Sector

Function prototypesvoid Spi_Flash_Erase_Sector(u32 Dst_Addr)
Functional DescriptionErases a sector
Input parametersSector address
Return valueNone

function:Spi_Flash_Write

Function prototypesvoid Spi_Flash_Write(u8 *pBuffer, u32 WriteAddr, u16 NumByteToWrite)
Functional DescriptionWrites data of the specified length starting at the specified address
Input parameters1Data storage area
Input parameters2Address to write to
Input parameters3Number of bytes written
Return valueNone

function:Spi_Flash_Read

Function prototypesvoid Spi_Flash_Read(u8 *pBuffer, u32 ReadAddr, u16 NumByteToRead)
Functional DescriptionReads data of the specified length starting at the specified address
Input parameters1Data storage area
Input parameters2Read address
Input parameters3The number of bytes read
Return valueNone

4.2、HAL library function parsing

The HAL library functions that were covered in the previous tutorial will not be covered

xxxxxxxxxx
If you want to find the HAL library and LL library function analysis involved in the entire tutorial, you can view the documents in the folder [8. STM32 Manual: STM32F1_HAL Library and LL Library_User Manual]

function:HAL_SPI_Init

Function prototypesHAL_StatusTypeDef HAL_SPI_Init(SPI_HandleTypeDef *hspi)
Functional DescriptionInitialize the SPI parameters
Input parametershspi:SPI handle address
Return valueHAL status value:HAL_OK、HAL_ERROR、HAL_BUSY、HAL_TIMEOUT

function:HAL_SPI_MspInit

Function prototypesvoid HAL_SPI_MspInit(SPI_HandleTypeDef *hspi)
Functional DescriptionInitialize the peripheral clock, GPIO, and NVIC of SPI
Input parametershspi:SPI handle address
Return valueNone

function:HAL_SPI_MspDeInit

Function prototypesvoid HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi)
Functional DescriptionUninitialize the SPI peripheral clock, GPIO, and NVIC
Input parametershspi:SPI handle address
Return valueNone

5、Experimental phenomenon

After downloading the program successfully, press the RESET button of the development board to open the serial debugging assistant to observe the phenomenon

xxxxxxxxxx
For program download, please refer to [2. Development environment construction and use: program download and simulation]

phenomenon:

Press RESET button: the serial debugging assistant will print the detection status of the external Flash chip;

Press KEY1: The serial debugging assistant will add 1 to the count value and write the value to the external Flash chip;

Press KEY2: The serial debugging assistant will output the numerical value stored in the specified sector of the external Flash chip;

Press KEY3: The serial debugging assistant will erase the specified sector data.

image-20231102194123013

I2C Communication (IIC)
On-chip Flash (Flash)

COMPANY

  • About us
  • Team Style
  • Blog

LEARNING & EXPLORATION

  • Tutorials
  • Edge AI hardware
  • Educational robots
  • Embedded intelligent hardware

WHERE TO BUY

  • Yahboom Online Store
  • Amazon
  • Alibaba
  • AliExpress
  • Mercado

TECHNOLOGY SUPPORT

  • Email: support@yahboom.com

BE A DISTRIBUTOR

  • Email: sales@yahboom.com
QR Code

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文