• 大小: 0.01M
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2024-04-21
  • 语言: C/C++
  • 标签: 嵌入式  STM32  flash  

资源简介

stm32f103控制w25q64

资源截图

代码片段和文件信息

/* USER CODE BEGIN Header */
/**
  ******************************************************************************
  * @file           : main.c
  * @brief          : Main program body
  ******************************************************************************
  * @attention
  *
  * 

© Copyright (c) 2019 STMicroelectronics.
  * All rights reserved.


  *
  * This software component is licensed by ST under BSD 3-Clause license
  * the “License“; You may not use this file except in compliance with the
  * License. You may obtain a copy of the License at:
  *                        opensource.org/licenses/BSD-3-Clause
  *
  ******************************************************************************
  */
/* USER CODE END Header */

/* Includes ------------------------------------------------------------------*/
#include “main.h“

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */

/* USER CODE END Includes */

/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */

/* USER CODE END PTD */

/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */

/* USER CODE END PD */

/* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM */

/* USER CODE END PM */

/* Private variables ---------------------------------------------------------*/
SPI_HandleTypeDef hspi2;

UART_HandleTypeDef huart1;

/* USER CODE BEGIN PV */

/* USER CODE END PV */

/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_SPI2_Init(void);
static void MX_USART1_UART_Init(void);
/* USER CODE BEGIN PFP */

/* USER CODE END PFP */

/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */

/* 添加“printf“打印功能 */
int fputc(int ch FILE *f)
{
    HAL_UART_Transmit(&huart1 (uint8_t *)&ch1 0xFFFF);
    return ch;
}

/* W25Q64的指令 */
uint8_t w25x_read_id = 0x90; // 读ID
uint8_t m_addr[3]    = {000}; // 测试地址0x000000
uint8_t check_addr   = 0x05; // 检查线路是否繁忙
uint8_t enable_write = 0x06; // 使能了才能改变芯片数据
uint8_t erase_addr   = 0x20; // 擦除命令
uint8_t write_addr   = 0x02; // 写数据命令
uint8_t read_addr    = 0x03; // 读数据命令

/* 读ID */
void ReadID(void)
{
uint8_t temp_ID[5] = {00000}; // 接收缓存

HAL_GPIO_WritePin(GPIOG GPIO_PIN_13 GPIO_PIN_RESET); // 使能CS
HAL_SPI_Transmit(&hspi2 &w25x_read_id 1 100); // 读ID发送指令
HAL_SPI_Receive(&hspi2 temp_ID 5 100); // 读取ID
HAL_GPIO_WritePin(GPIOG GPIO_PIN_13 GPIO_PIN_SET); // 失能CS

/* 测试打印 */
printf(“readID is %x%x\n“temp_ID[3]temp_ID[4]);
}

/* 检查是否繁忙 */
void CheckBusy(void)
{
uint8_t status=1;
uint32_t timeCount=0;
do
{

评论

共有 条评论