資源簡介
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
{
評論
共有 條評論